Курсовая работа: Реализация сети в операционной системе Linux
Проверяем ошибки
Определяем Маршрут
Проверяем кэш
Смотрим в FIB
Создаем новую запись в таблице маршрутизации
Заполняем её и возвращаем
Сохраняем указатель на запись маршрутизации в сокете
Вызываем протокольно зависимую функцию connect
Устанавливаем сокет в соединенный
Также надо не забыть закрыть сокет
Close вызывает sock_close in socket.c
void sock_release(struct socket *sock)
{
if (sock->ops)
sock->ops->release(sock);
...........................
}
а та через цепочку вызовов протокольнозависимую функцию
Дополнительныефункции
void inet_sock_release(struct sock *sk) -net/ipv4/af_inet.c
назвние говорит за себя + хороший комментарий Алана Коха
fib_lookup() - include/net/ip_fib.h
возвращает маршрут .Написана русским -Кузнецов!
fn_hach_lookup net/fib_hash.c
возвращаетмаршрутпоадресу
inet_create net/ipv4/af_inet.c
создаетсокет
inet_release <||>
ip_route_connect