Реализация сети в операционной системе Linux
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: виды рефератов, банк курсовых работ бесплатно
| Добавил(а) на сайт: Ада.
Предыдущая страница реферата | 15 16 17 18 19 20 21 22 23 24 25 | Следующая страница реферата
return;
}
/* Иначе*/
skb->dev = dev;
skb_reserve(skb,2); /* Align */
/* 'skb->data' указывет на начало буфера данных. */
buffer = skb_put(skb,size);
/* копируем пакет в буфер */
de600_setup_address(read_from, RW_ADDR);
for (i = size; i > 0; --i, ++buffer)
*buffer = de600_read_byte(READ_DATA, dev);
/* Определяем тип протокола
skb->protocol=eth_type_trans(skb,dev);
/*Передаем на верхний уровень см net/core/dev.c
netif_rx(skb);
/* обновляем статистику */
dev->last_rx = jiffies;
((struct net_device_stats *)(dev->priv))->rx_packets++; /* количество получений */
((struct net_device_stats *)(dev->priv))->rx_bytes += size; /* количество полученных байт */
/*
* Если случится что-то плохое во время доставки, netif_rx()
* сделало a mark_bh(INET_BH) для нас и будет работать
* когда мы войдем в bottom-halv.
*/
}
ip_finish_output() net/ipv4/ip_output
определяет девайс для данного маршрута
вызывает функцию девайса[=dev_queue_xmit]
ip_forward -net/ipv4/ip_forward
в этом файле хорошие комментарии
проверяем роутер
если пакет никому не предназначен то дропаем
если плохой TTL аналогично
если неможет пакет отфорвардится то отправляем icmp пакет ICMP_DEST_UNREACH
если необходимо шлем пакет ICMP HOST REDIRECT
копируем и уничтожаем старый пакет
уменьшаем TTL
если необходимо устанавливаем нужные опции ip_forward_options в
ip_forward_finish
ip_rcv net/ipv4/ip_input.c главная функция получения ip пакета
проверяем ошибки
плохая длина
версия
чексумма
вызываем pskb_trim
вызываем ip_route_input
Процесс маршрутизации
Как уже говорилось есть тоюлица соседей, FIB,routing cache Таблица соседей содержит адреса(mac) компьютеров которые физически соединены с нами. Linux использует АRP для определения адресов ета таблица динамическая хотя администраторы могут задать статические записи. Стуктуры связанные с етой таблицей описаны в include/net/neighbour.h основные структуры. struct neigh_table -их целый связаный список struct neigh_parms -список содержит разнообразную статистику struct neighbour -hash таблица соседей ассоциированных с данной таблицей struct pneig_entry -hash всех девайсов
поля struct neighbour
struct net_device -девайс
Рекомендуем скачать другие рефераты по теме: реферати, скачать дипломную работу.
Категории:
Предыдущая страница реферата | 15 16 17 18 19 20 21 22 23 24 25 | Следующая страница реферата