MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Реализация сети в операционной системе Linux

Название:Реализация сети в операционной системе Linux
Просмотров:104
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:Общий обзор. Более специфическое исследование сетевой активности. Пройдемся через вызовы функций. Разберём основные структуры данных и участки кода.

Часть полного текста документа:

Реализация сети в операционной системе Linux
    Глеб Пахаренко
    Рассмотрим подробнее что происходит с пакетом при попадании в нашу машину. Сначала он обрабатывается драйвером аппаратуры(сетевой карты и т.д) если пакет предназначен нам то он посылается на выше лежащий уровень - сетевой там определяется для кого он предназначен: нам или кому-то другому, для этого просматривается кэш маршрутизации, если там нет маршрута то 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;
    struct ipv6hdr *ipv6h;
    struct arphdr *arph;
    struct ipxhdr *ipxh;
    unsigned char *raw;
    } nh;
    /* Link layer header */
    union
    {
    struct ethhdr *ethernet;
    unsigned char *raw;
    } mac;
    struct dst_entry *dst;
    /*
    * This is the control buffer. It is free to use for every
    * layer. Please put your private variables there. If you
    * want to keep them across layers you have to do a skb_clone()
    * first. This is owned by whoever has the skb queued ATM.
    */
    char cb[48];
    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. ............






Похожие работы:

Название:Організація маршрутних автобусних перевезень пасажирів на прикладі ВАТ "Атасс-Боріспіль"
Просмотров:475
Описание: Вміст   Вступ РОЗДІЛ 1. ЗАГАЛЬНА ХАРАКТЕРИСТИКА ОБ'ЄКТУ ДОСЛІДЖЕННЯ 1.1 Характеристика ВАТ «Атасс-Бориспіль» 1.2 Характеристика автобусних маршрутів №754 та №5 1.3 Аналіз стану організації перевезень пас

Название:Задача о составлении маршрута коммивояжера. Метод ветвей и границ
Просмотров:326
Описание: Задача о составлении маршрута коммивояжера. Метод ветвей и границ Введение Актуальность данной темы заключается в следующем, Для решения оптимизационных и других задач

Название:Открытие нового маршрута для улучшения транспортного обслуживания населения. Санитарная очистка городов
Просмотров:340
Описание: Оглавление   1. Городской транспорт 1.1 Выбор вида пассажирского транспорта на вновь открываемый маршрут 2. Санитарная очистка городов 2.1 Определение объемов накопленных твердых бытовых отходов, потребн

Название:Совершенствование транспортного процесса перевозки пассажиров по маршрутам, обслуживаемым ГПКК "ДПАТП" г. Дивногорска
Просмотров:325
Описание: Федеральное агентство по образованию Федеральное государственное образовательное учреждение высшего профессионального образования «Сибирский федеральный университет» Политехнический институт СФУ

Название:Расчет развозочно-сборочных маршрутов
Просмотров:317
Описание: ИСХОДНЫЕ ДАННЫЕ Из пункта А (база) доставляется груз в 11 других пунктов, перечисленных в исходных данных, из которых в свою очередь необходимо в пункт А доставить груз, например возвратную тару (рисунок 1). Коли

 
     

Вечно с вами © MaterStudiorum.ru