Home

Page 61
Page 61
background image

 

 

заявленными «обязательно пересекаемыми» могут и не поддерживать данную опцию 

 достаточно, чтобы ее поддерживали лишь те маршрутизаторы, которые  перечислены 

отправителем. Такая ситуация называется «маршрутизация от источника», так как отправитель 
пакета сам определяет, какие маршрутизаторы должен пройти пакет. Так же данную опцию 
называют «мягкая маршрутизация от источника», так как пакет может пересекать любые 
маршрутизаторы, важно лишь, чтобы он обязательно в строгом порядке пересек завяленные 
отправителем маршрутизаторы, какие еще маршрутизаторы он пересечет –

 не оговаривается. Как 

обеспечивается такая передача пакетов, особенно в условиях поддержки данной опции не всеми 
маршрутизаторами сети? Очень просто –

 поле Destination Address пакета заполняется не адресом 

конечного получателя, как мы обычно привыкли, а адресом первого маршрутизатора, который 
необходимо пересечь. Разумеется, обычные маршрутизаторы и перенаправляют пакет этому 
самому первому маршрутизатору в списке, заданном отправителем, как будто конечному

 

получателю, не подозревая, что это лишь заявленный отправителем маршрутизатор, а не 
истинный получатель пакета. Когда пакет будет доставлен на первый маршрутизатор из списка 
(его адрес указан в поле 

Destination Address пакета), маршрутизатор, получивший данный пакет 

проверяет, нет ли в пакете опции 

LSRR. Если такой опции нет, то маршрутизатор и есть истинный 

получатель пакета, если опция есть, то проверяется, не больше ли поле длины в опции поля 
Pointer (алгоритм проверки Указателя описан в предыдущих примерах).  

Формат опции при этом таков: 

 

 

Type 

Length  Pointer  IP второго маршрутизатора, третьего и т.д., IP получателя пакета 

 

 

Поле  Type  принимает  значение  10000011  (131),  (опция  -  копируемая  во 

фрагменты, так как логично, если уж отправитель требует следования пакетов 
по  определенному  маршруту,  то  все  фрагменты  отправлять  по  этому 
маршруту),  поле  длина  показывает,  как  обычно  длину  опции,  поле  Pointer 

показываем  маршрутизаторам,  из  какого  байта  поля  данных  нужно  извлечь 
адрес  следующего  получателя  пакета  (маршрутизатора  или  узла).  Начальное 
значение  Pointer  =  3.  В  поле  данных  записаны  четырехбайтовыми  словами 
адреса  второго,  третьего  и  т.д.  маршрутизаторов,  которые  пакету  необходимо 
пересечь,  последним  в  поле  данных  указывается  адрес  конечного  узла 
получателя.  

 

Рассмотрим  логику  работы  маршрутизатора,  обрабатывающего  опцию: 

если указатель больше, чем длина опции, это значит, что маршрутизатор и есть 
истинный получатель пакета, а если нет, это значит что данный маршрутизатор 
–  лишь  один  из  перечисленных  отправителем  пакета.  Тогда  маршрутизатор 
поступает следующим образом: начиная с байта, на который указывает Pointer 
извлекается  четырехбайтовое  слово,  помещается  в  поле  Destination  Address 

пакета,  а  адрес  маршрутизатора,  который  это  сделал,  записывается  вместо 
только  считанного  адреса  в  позицию,  указанную  полем  Pointer,    после  чего 
поле Pointer увеличивается на 4. Таким образом, маршрутизатор переадресует 
пакет  следующему  маршрутизатору  из  списка,  заданного  отправителем,  при 
этом  увеличение  указателя  на  4  означает,  что  следующий  маршрутизатор 
будет  брать  адрес  очередного  следующего  маршрутизатора  из  следующего 
четырехбайтового слова.  

Таким  образом,  пакет,  посланный  отправителем  путешествует  по 

составной  сети  в  направлении  первого  маршрутизатора  из  списка,  так  как, 


Copyright © 2022 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.