Курсовая работа: Реализация сети в операционной системе Linux

Пробуждение процесса

Вызов соответствуюшей функции доставки(udp ||tcp) в буфер пользователя

Возврат

IP forwarding

Рассмотрим подробнее процесс форвардинга пакетов

Сначала идет проверка TTL и уменьшение его на 1 Проверка пакета на наличие действительного маршрута если такого нет то отсылается соответствующее icmp сообщение копирование пакета в новый буфер и освобождение старого Установка нужных ip опций фрагменторование если необходимо отправка пакета на нужный девайс

DEVICE_rx() девайсно зависимая функция,

пример drivers/net/de600.c

здесь я попытаюсь перевести замечательные комментарии автора

Linux driver for the D-Link DE-600 Ethernet pocket adapter.

*

* Portions (C) Copyright 1993, 1994 by Bjorn Ekwall

* The Author may be reached as [email protected]

/*

* Если у нас хороший пакет то забираем его из адаптера

*/

static void

de600_rx_intr(struct net_device *dev)

{

struct sk_buff *skb;

unsigned long flags;

int i;

int read_from;

int size;

register unsigned char *buffer;

save_flags(flags);

cli();

/* Определяем размер пакета */

size = de600_read_byte(RX_LEN, dev); /* нижниябайт */

К-во Просмотров: 1526
Бесплатно скачать Курсовая работа: Реализация сети в операционной системе Linux