TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
■ Ошибка в одном из битов во время пересылки в носителе.
■ Перегруженный маршрутизатор отбросил датаграмму, чтобы освободить свое буферное пространство.
■ Временно недоступен путь к точке назначения.
Рис. 6.2. Доставка в IP по принципу наилучшей попытки
Все операции по обеспечению надежности доставки данных осуществляются на уровне TCP. Восстановление испорченных данных зависит от действий на этом уровне.
6.3
Основными функциями IP являются: прием данных от TCP или UDP, создание датаграммы, маршрутизация ее по сети и доставка приложению-получателю. Каждая датаграмма IP маршрутизируется отдельно. Для маршрутизации датаграммы в IP существуют два средства:
■ маска подсети
■ таблица маршрутизации IP (таблица маршрутов)
6.4 Использование маски подсети
Предположим, что компьютер имеет IP-адрес 130.15.12.131 и подключен к локальной сети, а данные нужно послать:
Из: 130.15.12.131
В: 130.15.12.22
Можно предположить, что обе системы находятся в одной и той же подсети. Компьютер должен проверить, верно ли такое предположение. Проверка выполняется по маске подсети. Допустим, что хост имеет маску подсети:
255.255.255.0
т.е. есть маска состоит из 24 единиц и 8 нулей:
11111111111111111111111100000000
Вспомним, что единицы в маске подсети идентифицируют сеть и часть адреса для подсетей. Так как части для сети и подсети в адресах источника и назначения — 130.15.12, значит оба хоста находятся в одной подсети.
Компьютер фактически выполняет операцию "логическое И" между маской и каждым из IP-адресов. В результате нули маски подсети очищают часть адреса для хоста, оставляя только части для сети и подсети.
В этом примере маршрутизация является прямой. Это означает, что датаграмма должна быть помещена в кадр и передана непосредственно в точку назначения локальной сети, как показано на рис. 6.3.
Рис. 6.3. Обрамление кадром и передача датаграммы
Адрес назначения, помещенный в заголовок кадра, должен быть физическим адресом системы назначения. Чтобы определить существование элемента для физического адреса 130.15.12.22, проверяется таблица протокола ARP. Если в таблице нет нужной записи, для ее формирования используется протокол ARP.
6.5 Хост в таблице маршрутизации IP
Предположим, что нужно переслать данные:
Из: 130.15.12.131
В: 192.45.89.5
Быстрая проверка маски подсети показывает, что система назначения не принадлежит локальной подсети. В этом случае IP должен обратиться к локальной таблице маршрутизации.
Таблица маршрутизации хоста обычно очень проста. На рис. 6.4 показана локальная сеть, которая связана с удаленными сайтами посредством единственного маршрутизатора. Если точка назначения не находится в локальной сети, у хоста нет другого выбора, как обратиться к маршрутизатору.
Рис. 6.4. Перенаправление трафика через маршрутизатор по умолчанию
Каждый настольный компьютер или хост локальной сети имеет таблицу маршрутизации, которая сообщает IP, как маршрутизировать датаграммы к системам, не подключенным к локальной сети. Для указания пути к удаленному месту эта таблица нуждается в единственной записи (для маршрутизации по умолчанию):
default 130.15.12.1
Другими словами, нужно направлять любые нелокальные датаграммы на маршрутизатор по умолчанию с IP-адресом 130.15.12.1 (отметим, что адрес назначения 0.0.0.0 используется в таблице маршрутизации для значения по умолчанию).
6.6 Маршрутизация по следующему попаданию
Для сохранения простоты таблицы маршрутизации хоста IP может не анализировать полный маршрут к точке назначения. Требуется только выяснить следующее попадание (next hop иногда переводится как следующий участок. — Прим. пер.) и направить датаграмму туда.
Чтобы отправить датаграмму на интерфейс маршрутизатора 130.15.12.1, ее надо поместить в кадр, заголовок которого содержит физический адрес сетевого адаптера этого маршрутизатора.
Когда маршрутизатор получит кадр, он удалит заголовок и завершающую часть кадра, а также исследует заголовок датаграммы IP, чтобы решить, куда ее нужно направить далее.
6.7 Еще один пример таблицы маршрутизации хоста
Иногда таблицы маршрутизации хостов не столь просты. Рассмотрим, например, два маршрутизатора подсети 128.121.50.0 (см. рис. 6.5). Второй маршрутизатор управляет небольшой локальной сетью с несколькими рабочими станциями.
Рис. 6.5. Выбор маршрутизатора
Маршрутизатор tigger управляет локальной сетью, и его таблицу маршрутизации можно вывести командой netstat -nr. В выводе используется термин шлюз — gateway, а не маршрутизатор — router. (Другие компьютеры могут выводить таблицу в несколько ином формате. Она будет содержать похожую, но не идентичную информацию. Например, некоторые системы могут выводить столбец со сведениями о расстоянии до следующей точки назначения.)
Командой netstat выводятся сведения о том, где и как будет маршрутизироваться трафик tigger.