Глеб Пахаренко
Рассмотрим подробнее что происходит с пакетом при попадании в нашу машину. Сначала он обрабатывается драйвером аппаратуры(сетевой карты и т.д) если пакет предназначен нам то он посылается на выше лежащий уровень - сетевой там определяется для кого он предназначен: нам или кому-то другому, для этого просматривается кэш маршрутизации, если там нет маршрута то Forwarding Information Base (FIB), если пакет предназначен другому компьютеру то ядро шлёт его на соответствующее устройство (сетевую карту) ,если нам ,то через транспортный и вышележащие уровни приложению. Обмен данными между приложением и ядром осуществляется через абстракцию сокета. В Линухе используется BSD сокеты.
Рассмотрим поподробнее структуру пакета
Ключ к быстрому обмену данными в использовании структуры sk_buf и передачи на вышестоящие уровни только указателя на неё
описание структуры лежит в linux/skbuff.h
Возможно вы искали - Реферат: Усложнение решающего правила при управлении в задачах распознавания образов
еёполя
struct sk_buff {
/* These two members must be first. */
struct sk_buff * next; /* Next buffer in list */
struct sk_buff * prev; /* Previous buffer in list */
Похожий материал - Реферат: История информатики как науки о знаниях и технологиях
struct sk_buff_head * list; /* List we are on */
struct sock *sk; /* Socket we are owned by */
struct timeval stamp; /* Time we arrived */
struct net_device *dev; /* Device we arrived on/are leaving by */
/* Transport layer header */
Очень интересно - Реферат: Исполнитель алгоритмов – человек
union
{
struct tcphdr *th;
struct udphdr *uh;
struct icmphdr *icmph;
Вам будет интересно - Реферат: Алгоритм определения динамических характеристик гидроупругих систем для управления гидросооружениями
struct igmphdr *igmph;
struct iphdr *ipiph;
struct spxhdr *spxh;
unsigned char *raw;
} h;
Похожий материал - Реферат: Компьютерное моделирование плохо структурируемых экосистем
/* Network layer header */
union
{
struct iphdr *iph;