Опция записи маршрута
Опции маршрутизации и временных меток являются самыми интересными, так как они обеспечивают способ наблюдения или управления тем, как межсетевые шлюзы маршрутизируют дейтаграммы. Опция запись маршрута позволяет источнику создать пустой список IP-адресов и заставить каждый шлюз, обрабатывающий дейтаграмму, добавлять свой IP-адрес к этому списку. Рисунок 7.11 показывает формат опции записи маршрута.
Как описано выше, поле КОД содержит номер опции и класс опции( 7 для записи маршрута). Поле ДЛИНА указывает общую длину опции в том виде, в котором она представлена в IP-дейтаграмме, включая первые три октета. Поля, начиная с поля, помеченного ПЕРВЫЙ IP-АДРЕС, составляют область, зарезервированную под хранение межсетевых адресов. Поле УКАЗАТЕЛЬ определяет смещение внутри опции первого свободного слота.
0 8 16 24 ------------------------------------------- | КОД(7) | ДЛИНА | УКАЗАТЕЛЬ | ---------------------------------------------------------- | Первый IP-адрес | ---------------------------------------------------------- | Второй IP-адрес | ---------------------------------------------------------- | ....... | ----------------------------------------------------------
Рисунок 7.11 Формат опции записи маршрута в IP-дейтаграмме
Всякий раз, когда машина обрабатывает дейтаграмму, имеющую опцию записи маршрута, она добавляет свой адрес к списку записи маршрута(в опции должно быть выделено достаточно места исходным отправителем для того, чтобы поместились все нужные элементы). При добавлении себя к списку машина сначала сравнивает поля указателя и длины. Если указатель больше, чем длина, то список полон, и машина отправляет дейтаграмму, не добавляя нового элемента. Если список не полон, машина вставляет 4-байтовый IP-адрес в позицию, определенную УКАЗАТЕЛЕМ, и увеличивает значение УКАЗАТЕЛЯ на четыре.
При прибытии дейтаграммы машина-получатель должна выделить и обработать список IP-адресов. Если получатель обрабатывает дейтаграмму обычным образом, он будет игнорировать записанный путь. Отметим, что отправитель должен разрешить наличие опции записи маршрута, а получатель должен быть согласен обработать полученный список; сама по себе машина не получит автоматически информацию о пройденном пути автоматически, если она включит опцию записи маршрута.