Главная страница

Учебник для вузов в. Олифер Н. Олифер Компьютерные Принципы, технологии, протоколы


Скачать 22.28 Mb.
НазваниеУчебник для вузов в. Олифер Н. Олифер Компьютерные Принципы, технологии, протоколы
АнкорOlifer_V_G__Olifer_N_A_-_Kompyuternye_seti_-_2010.pdf
Дата12.03.2017
Размер22.28 Mb.
Формат файлаpdf
Имя файлаOlifer_V_G__Olifer_N_A_-_Kompyuternye_seti_-_2010.pdf
ТипУчебник
#3698
страница52 из 99
1   ...   48   49   50   51   52   53   54   55   ...   99
ГЛАВА 16 Протокол межсетевого
взаимодействия
Эта глава посвящена протоколу IP (Intranet Protocol — межсетевой протокол), описанному в докумен­
те RFC 751. В каждой очередной сети, лежащей на пути перемещения пакета, протокол IP обращается
к средствам транспортировки этой сети, чтобы с их помощью передать пакет на маршрутизатор,
ведущий к следующей сети, или непосредственно на узел-получатель. Таким образом, одной из
важнейших функций IP является поддержание интерфейса с нижележащими технологиями сетей,
образующих составную сеть. Кроме того, в функции протокола IP входит поддержание интерфейса с
протоколами вышележащего транспортного уровня,
в частности с протоколом TCP, который решает
все вопросы обеспечения надежной доставки данных по составной сети в стеке TCP/IP.
Протокол IP относится к протоколам без установления соединений, он поддерживает обработку
каждого ІР-пакета как независимой единицы обмена, не связанной с другими пакетами. В протоколе
IP нет механизмов, обычно применяемых для обеспечения достоверности конечных данных. Если
во время продвижения пакета происходит какая-либо ошибка, то протокол 1Р по своей инициативе
ничего не предпринимает для исправления этой ошибки. Например, если на промежуточном марш­
рутизаторе пакет был отброшен из-за ошибки по контрольной сумме, то модуль IP не пытается
заново послать потерянный пакет. Другими словами, протокол IP реализует политику доставки «по
возможности» (с максимальными усилиями).
В этой главе мы подробно рассмотрим основную функцию протокола IP —■
маршрутизацию. Осно­
вательно изучим структуру таблиц маршрутизации как без использования, так и с использованием
масок. Приведем примеры применения масок одинаковой и переменной длины, перекрывающихся
адресных пространств, разделения на подсети и объединения подсетей. Также мы исследуем воз­
можности протокола IP, связанные с фрагментацией пакетов.

Формат IP-пакета
515
Формат ІР-пакета
Имеется прямая связь между количеством полей заголовка пакета и функциональной сложностью протокола, который работает с этим заголовком. Чем проще заголовок — тем проще соответствующий протокол. Большая часть действий протокола связана с обработ­
кой той служебной информации, которая переносится в полях заголовка пакета. Изучая назначение каждого поля заголовка ІР-пакета, мы получаем не только формальные знания о структуре пакета, но и знакомимся с основными функциями протокола IP.
ІР-пакет состоит из полей заголовка и данных. Далее перечислены поля заголовка, по­
казанные на рис. 16.1.
4 бита
Номер
версии
4 бита
Длина
заголовка
вбит
Тип сервиса
16 бит
Общая длина
PR I D I Т I Rl
16 бит
Идентификатор пакета
3 бита
Флаги
13 бит
Смещение фрагмента
T
d i
м
вбит
вбит
16 бит
Время жизни
Протокол верхнего
уровня
Контрольная сумма
32 бита
ІР-адрес источника
32 бита
ІР-адрес назначения
Параметры и выравнивание
Рис. 16.1. Структура заголовка ІР-пакета
Поле номера версии занимает 4 бита и идентифицирует версию протокола IP. Сейчас повсеместно используется версия 4 (IPv4), хотя все чаще встречается и новая версия
(IPv
6
).
Значение длины заголовка ІР-пакета также занимает 4 бита и измеряется в 32-битных словах. Обычно заголовок имеет длину в 20 байт (пять 32-битных слов), но при добавлении некоторой служебной информации это значение может быть увеличено за счет дополни­
тельных байтов в поле параметров. Наибольшая длина заголовка составляет 60 байт.
Поле типа сервиса (Type of Service, ToS) имеет и другое, более современное название — байт дифференцированного обслуживания, или DS-байт. Этим двум названиям соот­
ветствуют два варианта интерпретации этого поля. В обоих случаях данное поле служит одной цели — хранению признаков, которые отражают требования к качеству обслужива­
ния пакета. В прежнем варианте первые три бита содержат значение приоритета пакета: от самого низкого — 0 до самого высокого — 7. Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Следующие три бита поля ToS определяют критерий выбора маршрута. Если бит
D (Delay - задержка) установлен в 1, то маршрут должен выбираться для минимизации за­
держки доставки данного пакета, установленный бит Т (Throughput — пропускная способ­
ность) - для максимизации пропускной способности, а бит R (Reliability — надежность) — для максимизации надежности доставки. Оставшиеся два бита имеют нулевое значение.

516
Глава 16. Протокол межсетевого взаимодействия
Стандарты дифференцированного обслуживания, принятые в конце 90-х годов, дали новое название этому полю и переопределили назначение его битов. В DS-байте также использу­
ются только старшие
6
бит, а два младших бита остаются в качестве резерва. Назначение битов DS-байта рассмотрено в разделе «Дифференцированное обслуживание» главы 18.
Поле общей длины занимает 2 байта и характеризует общую длину пакета с учетом за­
головка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве компьютеров и сетей столь большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уров­
ня, несущего IP-пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной 1500 байт, умещающиеся в поле данных кадра Ethernet. В стандартах TC P/IP предусматривается, что все хосты должны быть готовы принимать пакеты длиной вплоть до 576 байт (независимо от того, приходят ли они целиком или фрагментами).
Идентификатор пакета занимает 2 байта и используется для распознавания пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета. Все части
(фрагменты) одного пакета должны иметь одинаковое значение этого поля.
Флаги занимают 3 бита и содержат признаки, связанные с фрагментацией. Установлен­
ный в 1 бит DF (Do not Fragment — не фрагментировать) запрещает маршрутизатору фрагментировать данный пакет, а установленный в 1 бит MF (More Fragments — больше фрагментов) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Оставшийся бит зарезервирован.
Поле смещения фрагмента занимает 13 бит и задает смещение в байтах поля данных этого фрагмента относительно начала поля данных исходного (нефрагментированного) пакета.
Используется при сборке/разборке фрагментов пакетов. Смещение должно быть кратно
8
байт.
Поле времени жизни (Time То Live, TTL) занимает один байт и используется для задания предельного срока, в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником. По истечении каждой секунды пре­
бывания на каждом из маршрутизаторов, через которые проходит пакет во время своего
«путешествия» по сети, из его текущего времени жизни вычитается единица; единица вычитается и в том случае, если время пребывания было меньше секунды. Поскольку со­
временные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно интерпретировать как максимальное число транзитных узлов, которые разрешено пройти пакету. Если значение поля времени жизни становится нулевым до того, как пакет достигает получателя, пакет уничтожается. Таким образом, время жизни является своего рода часовым механизмом самоуничтожения пакета.
Поле протокола верхнего уровня занимает один байт и содержит идентификатор, ука­
зывающий, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета. Значения идентификаторов для разных протоколов приводятся в до­
кументе RFC 1700, доступном по адресу http://www.iana.org. Например,
6
означает, что в па­
кете находится сообщение протокола TCP, 17 — протокола UDP, 1 — протокола ICMP.
Контрольная сумма заголовка занимает 2 байта (16 бит) и рассчитывается только по за­
головку. Поскольку некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, поле времени жизни), контрольная сумма проверяется и повтор­
но рассчитывается на каждом маршрутизаторе и конечном узле как дополнение к сумме всех 16-битных слов заголовка. При вычислении контрольной суммы значение самого поля

Схема IP-маршрутизации
517
контрольной суммы устанавливается в нуль. Если контрольная сумма неверна, то пакет отбрасывается, как только обнаруживается ошибка.
Поля ІР-адресов источника и приемника имеют одинаковую длину — 32 бита.
Поле параметров является необязательным и используется обычно только при отладке сети. Это поле состоит из нескольких подполей одного из восьми предопределенных типов.
В этих подполях можно указывать точный маршрут, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности или временные отметки.
Так как число подполей в поле параметров может быть произвольным, то в конце заголовка должно быть добавлено несколько нулевых байтов для выравнивания заголовка пакета по
32-битной границе.
Далее приведена распечатка значений полей заголовка одного из реальных IP-пакетов, за­
хваченных в сети Ethernet средствами анализатора протоколов сетевого монитора (Network
Monitor, NM) компании Microsoft. В данной распечатке NM в скобках дает шестнадцате­
ричные значения полей, кроме того, программа иногда представляет числовые коды полей в виде, более удобном для чтения. Например, дружественный программный интерфейс
NM интерпретирует код
6
в поле протокола, помещая туда название соответствующего протокола — TCP (см. строку, выделенную полужирным шрифтом).
I P : V e r s i o n - 4 ( 0 x 4 )
I P: H e a d e r L e n g t h = 20 ( 0 x 1 4 )
I P: S e r v i c e T y p e = 0 ( 0 x 0 )
I P: P r e c e d e n c e = R o u t i n e
I P :
. . . 0 . . . . =
N o r m a l D e l a y
I P :
__ 0 . . . = N o r m a l
T h r o u g h p u t
I P :
.....0 . . = N o r m a l
R e l i a b i l i t y
I P : T o t a l L e n g t h = 54
( 0 x 3 6 )
I P : I d e n t i f i c a t i o n - 3 1 7 4 6 ( 0 x 7 C 0 2 )
I P: F l a g s S u m m a r y = 2 ( 0 x 2 )
I P: ............ 0 = L a s t f r a g m e n t i n d a t a g r a m
I P: .......... 1 . = C a n n o t f r a g m e n t d a t a g r a m
IP: F r a g m e n t O f f s e t = 0 ( 0 x 0 ) b y t e s
I P: T i m e t o L i v e - 1 2 8 ( 0 x 8 0 )
IP: Protocol - T CP - T r a n s m i s s i o n Control
IP: C h e c k s u m = 0 x E B 8 6
IP: S o u r c e A d d r e s s = 1 9 4 . 8 5 . 1 3 5 . 7 5
IP: D e s t i n a t i o n A d d r e s s = 1 9 4 . 8 5 . 1 3 5 . 6 6
IP : D a t a : N u m b e r o f d a t a b y t e s r e m a i n i n g = 3 4 ( 0 x 0 0 2 2 )
Схема ІР-маршрутизации
Рассмотрим механизм ІР-маршрутизации на примере составной сети, представленной на рис. 16.2. В этой сети 20 маршрутизаторов (изображенных в виде пронумерованных ква­
дрантных блоков) объединяют 18 сетей в общую сеть; N1, N 2,..., N18 — это номера сетей.
На каждом маршрутизаторе и конечных узлах А и В функционируют протоколы IP.
К нескольким интерфейсам (портам) маршрутизаторов присоединяются сети. Каждый интерфейс маршрутизатора можно рассматривать как отдельный узел сети: он имеет сетевой адрес и локальный адрес в той подсети, которая к нему подключена. Например, маршрутизатор под номером 1 имеет три интерфейса, к которым подключены сети N1,
N2, N3. На рисунке сетевые адреса этих портов обозначены ІРц, IP
12
и IP
13
. Интерфейс

518
Глава 16. Протокол межсетевого взаимодействия
1Рц является узлом сети N1, и следовательно, в поле номера сети порта 1Рц содержится номер N1. Аналогично интерфейс IP
12
— это узел в сети N2, а порт IP
13
— узел в сети N3.
Таким образом, маршрутизатор можно рассматривать как совокупность нескольких узлов, каждый из которых входит в свою сеть. Как единое устройство маршрутизатор не имеет выделенного адреса, ни сетевого, ни локального.
Таблица маршрутизации узла В
Таблица маршрутизации
маршрутизатора 4
О.
Н
X
С
л
е
д
у
ю
щ
и
й
м
а
р
ш
р
у
ти
за
то
р
В
хо
д
н
о
й
и
н
те
р
ф
е
й
с
Ч
и
с
л
о
х
о
л
о
в
N1
ІРі?
IP
41
1
N2

IP
41
0
N3
IPl2
IP41
1
N4
ІР21
IP
41
1
N5
-
IP
42
0
N6
ІР21
,р4,\
По умолчанию
m m
1
P
51
IP42
__
Н
о
м
е
р
"
с
е
ти
С
л
е
д
у
ю
щ
и
й
м
а
р
ш
р
у
ти
за
то
р
В
хо
д
н
о
й
и
н
те
р
ф
е
й
с
Ч
и
с
л
о
х
о
п
о
в
N1
іріз
ІРв
1
N2
іріз
ІРв
1
N3
-
ІРв
0
N4
1
Р
31
ІРв
1
N5
іріз
ІРв
2
N6
1
Р
31
ІРв
2
По умолчанию ІР
31
ІРв
-
Узел А
Рис. 16.2. Принципы маршрутизации в составной сети
В сложных составных сетях почти всегда существуют несколько альтернативных марш­
рутов для передачи пакетов между двумя конечными узлами. Так, пакет, отправленный из узла Л в узел В, может пройти через маршрутизаторы 17,12,5,4 и 1 или маршрутизаторы
17,13,7,6 и 3. Нетрудно найти еще несколько маршрутов между узлами А и В.

Схема ІР-маршрутизации
519
ПРИМЕЧАНИЕ--------------------------------------------------------------------------------------------------------- -----
При наличии у маршрутизатора блока управления (например, по протоколу SNMP) этот блок име­
ет собственные локальный и сетевой адреса, по которым к нему обращается центральная станция
управления. Эти адреса выбираются из того же пула, что и адреса физических интерфейсов марш­
рутизатора. В технической документации такого рода адреса называются адресами обратной петли
(looopback address), или адресами виртуальных интерфейсов (virtual interface address). В отличие от
адресов 127.х.х.х, зарезервированных для передачи данных между программными компонентами,
находящимися в пределах одного компьютера, адреса виртуальных интерфейсов предполагают об­
ращение к ним извне.
Задачу выбора маршрута из нескольких возможных решают маршрутизаторы, а также конечные узлы. Маршрут выбирается на основании имеющейся у этих устройств инфор­
мации о текущей конфигурации сети, а также на основании критерия выбора маршрута.
В качестве критерия часто выступает задержка прохождения маршрута отдельным па­
кетом, средняя пропускная способность маршрута для последовательности пакетов или наиболее простой критерий, учитывающий только количество пройденных на маршруте промежуточных маршрутизаторов (ретрансляционныхучастков, илихопов). Полученная в результате анализа информация о маршрутах дальнейшего следования пакетов помеща­
ется в таблицу маршрутизации.
Упрощенная таблица маршрутизации
Используя условные обозначения для сетевых адресов маршрутизаторов и номеров сетей, показанные на рис. 16.2, посмотрим, как могла бы выглядеть таблица маршрутизации, на­
пример, в маршрутизаторе 4 (табл. 16.1).
Таблица 16.1. Таблица маршрутизации маршрутизатора 4
Адрес назначения
Сетевой адрес следующего
маршрутизатора
Сетевой адрес
выходного порта
Расстояние до сети
назначения
N1
IPl2(Rl)
IP
41
1
N2
-
IP
41
0 (подсоединена)
N3
IP 12 ( R l )
IP
41
1
N4
IP
21
(R 2 )
IP
41
1
N5
-
IP
42
0 (подсоединена)
N6
IP
21
(R 2 )
IP
21
2
IP*
IP
21
(R 2 )
IP
41
2
Маршрут по умолчанию
IP
51
(R 5 )
IP
42
-
ПРИМЕЧАНИЕ ........................................................................ ..............................................
1   ...   48   49   50   51   52   53   54   55   ...   99


написать администратору сайта