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

вызываем pskb_trim

вызываем ip_route_input

Процесс маршрутизации

Как уже говорилось есть тоюлица соседей, FIB,routingcacheТаблица соседей содержит адреса(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 -девайс

hh_cache -указатель на аппаратный кэш

sk_buff_head arp_queuq -очередь arp пакетов

есть local -в ней находятся свои интерфейсы

и main в ней наверное всё остальное

Forwarding Information Database

struct fib_table в include/net/ip_fib.h

содержит указатели на различные функции

tb_stamp

tb_id -255 для local и 254 для main

td_data -hash fib таблица

struct fn_hash -net/ipv4/fib_hash.c

struct fn_zone *fn_zones[33] -указатели на зоны

struct fn_zone *fn_zone_list указатель на первую не пустую зону

struct fn_zone содержит информацию про зону и маршруты для неё

struct fib_node ** fz_hash -указывает на кэш записей этой зоны

int fz_nent количество записей

int fx_divisor числу бакетов для зоны (в основном 16 кроме зоны 0000

loopback девайса)

int fz_order индекс зоны в родительской fn_hash

struct fib_node -содержит информацию по девайсу в fib_info(include/net/ip_fib.h)

метрику ,протокол и т.д

Routing Cache

Это наиболее быстрый способ нахождения маршрута Когда ip нужен маршрут ,то он определяет ячейку в хэше,которая указывает на цепочку маршрутов и идёт по этой цепочке пока не найдет нужный маршруты имеют таймеры и частоту использования ,наиболее частые перемещаются в начало.

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