Socket Buffers

struct sk_buff struct sk_buff

struct sock ktime_t struct net_device

tstamp;

struct dst_entry

unsigned int len, u16

data_len mac_len, hdr_len;

union {

_wsum csum;

struct {

u16 csum_start;

_u16 csum_offset;

_u32 u8

_be16

void int priority;

local_df:1, cloned:1, ip_summed:2, nohdr:1, nfctinfo:3;

pkt_type:3, fclone:2, ipvs_property:1;

nf_trace:1;

protocol;

(*destructor)(struct sk_buff *skb); iif;

sk_buff_data_t sk_buff_data_t sk buff data t transport_header;

network_header;

mac_header;

/* These elements must be at the end, see alloc_skb() for details. */ sk_buff_data_t tail;

sk_buff_data_t end;

unsigned char *head,

unsigned int truesize;

atomic_t users;

Socket buffers are used to exchange data between the network implementation levels without having to copy packet data to and fro — this delivers considerable speed gains. The socket structure is one of the cornerstones of the network layer because it is processed on all levels both when packets are analyzed and generated.

Continue reading here: Data Management Using Socket Buffers

Was this article helpful?

0 0