Linux - статьи



   Товары для художников.             

Реализация сети в операционной - часть 2


unsigned int len; /* Length of actual data */ unsigned int data_len; unsigned int csum; /* Checksum */ unsigned char __unused, /* Dead field, may be reused */ cloned, /* head may be cloned (check refcnt to be sure). */ pkt_type, /* Packet class */ ip_summed; /* Driver fed us an IP checksum */ __u32 priority; /* Packet queueing priority */ atomic_t users; /* User count - see datagram.c,tcp.c */ unsigned short protocol; /* Packet protocol from driver. */ unsigned short security; /* Security level of packet */ unsigned int truesize; /* Buffer size */

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 где хранятся все маршруты routing cache где находятся наиболее часто используемые neibour table список компьютеров физически соединенных с данным

FIB содержит 32 зоны по одной на каждый бит ip адреса каждая зона содержит точки входа для хостов и сетей которые задайтся данной маской подсети 255.0.0.0 имеет 8 значащих бит и поэтому в восьмой зоне 255.255.255.0 в 24 зоне

файл /proc/net/route содержит FIB

routing cache хэш-таблица которая содержит до 256 цепочек меаршрутов если подходящий маршрут не найден в кэше то он добавляется туда из FIB устаревшие записи по истечении некоторого времени удаляются содержимое кэша можно увидеть в /proc/net/rt_cache




Содержание  Назад  Вперед