Курсовая работа: Реализация сети в операционной системе Linux
unsigned char *head; /* Head of buffer */
unsigned char *data; /* Data head pointer */
unsigned char *tail; /* Tail pointer */
unsigned char *end; /* End pointer */
void (*destructor)(struct sk_buff *); /* Destruct function */
#ifdef CONFIG_NETFILTER
/* Can be used for communication between hooks. */
unsigned long nfmark;
/* Cache info */
__u32 nfcache;
/* Associated connection, if any */
struct nf_ct_info *nfct;
#ifdef CONFIG_NETFILTER_DEBUG
unsigned int nf_debug;
#endif
#endif /*CONFIG_NETFILTER*/
#if defined(CONFIG_HIPPI)
union{
__u32 ifield;
} private;
#endif
#ifdef CONFIG_NET_SCHED
__u32 tc_index; /* traffic control index */
#endif
};
там же содержится масса полезных функций для работы с sk_buff. все протоколы используют ету структуру добавляя заголовки своего уровня
Маршрутизация
Уровень IPиспользует 3 структуры для маршрутизации FIBгде хранятся все маршруты routingcacheгде находятся наиболее часто используемые neibourtableсписок компьютеров физически соединенных с данным
FIBсодержит 32 зоны по одной на каждый бит ipадреса каждая зона содержит точки входа для хостов и сетей которые задайтся данной маской подсети 255.0.0.0 имеет 8 значащих бит и поэтому в восьмой зоне 255.255.255.0 в 24 зоне