Сети ЭВМ и телекоммуникации

advertisement
Сети ЭВМ и телекоммуникации
Стеки протоколов
• Стек протоколов – это иерархически организованная
совокупность протоколов, достаточная для
реализации взаимодействия узлов в
компьютерной сети.
• Существующие стеки протоколов:
TCP/IP,
IPX/SPX,
NetBIOS/SMB,
DECnet ,
SNA,
VOIP и SIP.
• Все протоколы (кроме SNA) одинаковы на
физическом и на канальном уровне, но на других
уровнях используют разные протоколы.
IPX/SPX
• IPX/SPX (Internetwork Packet eXchange/Sequenced Packet
eXchange - межсетевой обмен
пакетами/последовательный обмен пакетами) —
стек протоколов, используемый в сетях Novell NetWare.
• Протокол IPX обеспечивает сетевой уровень (доставку
пакетов, аналог IP), SPX — транспортный и сеансовый
уровни (аналог TCP).
• Изначально был разработан Novell для DOS и широко
применялся как в корпоративных сетях, так и для
сетевых игр. Клиент был выполнен в виде резидентной
программы. Первые реализации требовали создания
исполняемого файла под каждую сетевую карту.
NetBIOS
•
NetBIOS (Network Basic Input/Output System) — протокол для работы в локальных сетях
на персональных ЭВМ типа IBM/PC. Протокол расширяет стандартные функции BIOS,
обеспечивая поддержку сети.
•
Был разработан фирмой Sytek Corporation по заказу IBM в 1983 году. Включает в себя
интерфейс сеансового уровня (NetBIOS interface), в качестве транспортных протоколов
использует TCP и UDP.
•
NetBEUI – протокол расширенного пользовательского интерфейса NetBIOS, предоставляет
функции сеансового, транспортного и сетевого уровня. Но невозможна маршрутизация
на этом протоколе.
•
NetBIOS может работать поверх разных протоколов, например: NetBEUI, IPX и стек
протоколов TCP/IP. Используется в небольших сетях (до 200 рабочих станций).
•
NetBIOS обеспечивает:
– регистрацию и проверку сетевых имен;
– установление и разрыв соединений;
– связь с гарантированной доставкой информации;
– связь с негарантированной доставкой информации;
– поддержку управления и мониторинга драйвера и сетевой карты.
•
Пакет NETBIOS поддерживает как режим сессий (работа через соединение),
так и режим дейтограмм (без установления соединения). 16-и символьные
имена объектов в netbios распределяются динамически. netbios имеет
собственную dns, которая может взаимодействовать с dns-интернета.
•
Приложения могут через netbios найти нужные им ресурсы, установить связь
и послать или получить информацию. NETBIOS использует для службы имен
порт 137, для службы дейтограмм - порт 138, а для сессий - порт 139.
•
Любая сессия начинается с netbios-запроса, задания ip-адреса и определения
tcp-порта удаленного объекта, далее следует обмен NETBIOS-сообщениями,
после чего сессия закрывается.
•
Все оконечные узлы netbios делятся на три типа:
–
–
–
Широковещательные ("b") узлы;
узлы точка-точка ("p");
узлы смешанного типа ("m").
Формат кадра сообщения NetBIOS
Длина (Length), 2 байта. Указывает
длину поля заголовка NBF (включая
поле длины).
Разделитель (Delimiter), 2 байта.
Объявляет, что следующие за ним
данные предназначены для
интерфейса NetBIOS.
Команда (Command), 1 байт.
Определяет функцию сообщения.
Сообщения с кодами в диапазоне
от 00 до 0Е передаются как кадры
ненумерованной информации, в то
время как коды команд, начиная с
OF и до 1F, пересылаются как
протокольные блоки данных
информационного формата LLC (Iformat LPDU).
Данные 1 (Datal), 1 байт. Содержит необязательные данные, специфические для типа
сообщения.
Данные 2 (Data2), 2 байта. Содержит необязательные данные, специфические для
типа сообщения.
Коррелятор передачи (Transmit Correlator), 2 байта. Представляет собой
шестнадцатеричное значение от 0001 до FFFF, используемое для связи запроса с
ответом.
Коррелятор ответа (Response Correlator), 2 байта. Объявляет шестнадцатеричное
число от 0001 до FFFF, которое указывает на значение, ожидаемое в поле коррелятора
передачи в ответном сообщении.
Имя назначения (Destination Name), 16 байтов. Определяет имя NetBIOS системы,
которой предназначено сообщение (не включается в пакеты, доставляемые в рамках
сессии).
Имя источника (Source Name), 16 байтов. Идентифицирует NetBIOS имя локальной
системы (не включается в пакеты, доставляемые в рамках сессии).
Номер сессии назначения (Destination Number), 1 байт. Указывает номер сессии
системы-получателя (не включается в служебные пакеты дейтаграмм, диагностики и
сервиса имен).
Номер сессии источника (Source Name), 1 байт. Указывает номер сессии системыотправителя (не включается в служебные пакеты дейтаграмм, диагностики и сервиса
имен).
Необязательное поле (Optional), переменная длина. Размещает в себе
содержательные данные, передаваемые в рамках сессии и пакетами дейтаграмм (не
включается в служебные пакеты диагностики и имен).
Перечень команд
• 00 — запрос добавления группового имени (ADD GROUP NAME QUERY).
• 01 — запрос добавления имени (ADD NAME QUERY).
• 02 - конфликт имен (NAME IN CONFLICT).
• 03 — запрос статуса (STATUS QUERY).
• 07 — прекращение трассировки (TERMINATE TRACE).
• 08 — дейтаграмма (DATAGRAM).
• 09 — широковещательная передача дейтаграммы (DATAGRAM BROADCAST).
• OA - запрос имени (NAME QUERY).
• 0D — ответ на запрос добавления имени (ADD NAME RESPONSE).
• 0E - имя распознано (NAME RECOGNIZED).
• OF — ответ на запрос статуса (STATUS RESPONSE).
• 13 — прекращение (локальное и удаленное) трассировки (TERMINATE TRACE).
• 14 — подтверждение приема данных (DATA ACK).
• 15 — любой не последний сегмент (DATA FIRST MIDDLE).
• 16 — последний сегмент (DATA ONLY LAST).
• 17 — подтверждение сессии (SESSION CONFIRM).
• 18 — завершение сессии (SESSION END).
• 19 — инициализация сессии (SESSION INITIALIZE).
• 1A — данные не приняты (NO RECEIVE).
• IB - ожидание приема (RECEIVE OUTSTANDING).
• 1С — продолжение приема (RECEIVE CONTINUE).
• IF — сессия активна (SESSION ALIVE).
Формат кадра протокола NBFCP
• Для подключения терминальной
системы к локальной сети или к
другой терминальной системе
разработан протокол NBFCP (NetBios
frames control protocol, код поля
протокола = 803F ), который, в
свою очередь, базируется на
протоколе PPP.
код
описание
класса
1
Зарезервировано
2
Сервер внешнего порта PPP
NetBIOS
3
Зарезервировано
4
Сервер локального доступа
PPP NetBIOS
5
Зарезервировано
6
Мост PPP NetBIOS
7
Зарезервировано
8
Терминальная система PPP
nbtstat
Служит для отображения статистики протокола NetBIOS поверх
TCP/IP (NetBT), таблиц имен NetBIOS для локального и
удаленного компьютеров, а также кэша имен NetBIOS.
Примеры:
• nbtstat -a CORP07 определить таблицу имен удаленного компьютера, имеющего
имя NetBIOS CORP07,
• nbtstat -A 10.0.0.99 определить таблицу имен NetBIOS удаленного компьютера,
имеющего IP-адрес 10.0.0.99,
• nbtstat -n определить таблицу имен локального компьютера,
• nbtstat –c определить содержимое кэша имен NetBIOS локального компьютера,
nbtstat -R очистить кэш имен NetBIOS и перезагрузить записи #PRE из локального
файла Lmhosts,
• nbtstat -RR освободить имена NetBIOS, зарегистрированные на сервере WINS, и
снова зарегистрировать их,
• nbtstat -S 5 просмотреть статистику сеанса NetBIOS по IP-адресу с обновлением
каждые пять секунд.
Протокол WINS
Протокол WINS разработан компанией MicroSoft
для операционной среды Windows и
предназначен для расширения возможностей
NetBIOS.
WINS-запросы обычно транспортируются в UDPдейтограммах. При этом используется порт
отправителя=137.
Идентификатор позволяет связать запрос с
откликом. Далее следует 2 байта флагов, в случае
запроса туда записывается 0. За ним размещается
два октета, содержащие число вопросов, 2 октета
числа ответов и еще 4 нулевых октетов.
Завершается кадр запроса двумя октетами поля
типа (00 21 -> статус узла NetBIOS) и полем класса
(для Интернет 00 01 -> (IN,1)). Такие запросы
позволяют получить дополнительные данные
(имя узла, его MAC-адрес, NetBIOS-имя, имя
группы) об ЭВМ с заданным IP-адресом. Причем
эта ЭВМ может находиться где угодно в Интернет,
но непременно работать в OS Windows.
SMB
• SMB (Server Message Block) — сетевой протокол
прикладного уровня для удалённого доступа к файлам,
принтерам и другим сетевым ресурсам, а также для
межпроцессного взаимодействия.
• Первая версия протокола была разработана
компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах.
• Вторая (SMB 2.0) была создана Microsoft и появилась в
Windows Vista.
• В настоящее время SMB связан главным образом с
операционными системами Microsoft Windows, где
используется для реализации сети Microsoft Windows и
совместного использования файлов и принтеров.
В 1992 году появилась Samba — свободная реализация протокола SMB для UNIXподобных операционных систем (изначально для SunOS).
В Windows 2000 впервые появился SMB непосредственно поверх TCP (без NetBIOS);
для этого используется порт 445 (SMB через NBT использовал порт 139).
SMB 2.0. Протокол был значительно упрощен (в SMB было более 100 команд, а в
SMB 2 — всего 19); при этом была повышена производительность (благодаря
механизму кэширования, возможности совмещать несколько команд SMB 2 в
одном сетевом запросе и увеличенным буферам чтения и записи), особенно в
сетях с высокой латентностью, улучшена масштабируемость и добавлена
возможность автоматического продолжения сеанса в случае временного
отсоединения от сервера. SMB 2 использует тот же порт (445) как и SMB, но другой
заголовок пакетов (0xFF 'S' 'M' 'B' в SMB, 0xFE 'S' 'M' 'B' в SMB 2).
Клиенты соединяются с сервером, используя протоколы TCP/IP (а,
точнее, NetBIOS через TCP/IP), NetBEUI или IPX/SPX. После того, как соединение
установлено, клиенты могут посылать команды серверу (SMB-команды или SMBs),
который дает им доступ к ресурсам и позволяет открывать, читать файлы, писать в
файлы и, вообще, выполнять весь перечень действий, которые можно выполнять с
файловой системой.
Структура заголовка SMВ
8
16
24
32 bits
Command
RCLS
Reserved
ERR
ERR
(cont)
REB/FLG
Reserved
Reserved
Reserved
Reserved
Tree ID
Process ID
User ID
Multiplex ID
WCT
VWV
BCC
BUF
SMB header structure
Command — команда протокола.
RCLS — код класса ошибки.
ERR — код ошибки.
Tree ID (TID) — идентификатор соединения с
сетевым ресурсом.
Process ID (PID) — идентификатор
клиентского процесса фактического
соединения.
User ID (UID) — идентификатор
пользователя; используется сервером для
проверки прав доступа пользователя.
Multiplex ID (MID) — идентификатор группы
пользователя; используется сервером для
проверки прав доступа группы пользователя.
WCT — количество параметров, следующих
за заголовком.
BCC — количество байт данных, следующих
за параметрами.
Пример обмена пакетами протокола Microsoft
SMB между клиентом и сервером
1. Клиент и сервер устанавливают сеанс NetBIOS.
2. Клиент и сервер договариваются о диалекте
протокола SMB.
3. Клиент начинает работу (сеанс) на сервере.
4. Клиент соединяется с совместно используемым
ресурсом на сервере.
5. Клиент открывает файл совместно используемого
ресурса.
6. Клиент читает данные из файла.
Стек протоколов OSI
•
•
•
•
•
•
Протоколы стека OSI отличает большая сложность и неоднозначность
спецификаций. Эти свойства явились результатом общей политики
разработчиков стека, стремившихся учесть в своих протоколах все многообразие
уже существующих и появляющихся технологий.
На физическом и канальном уровнях стек OSI поддерживает протоколы Ethernet,
Token Ring, FDDI, а также протоколы LLC, X.25 и ISDN, то есть использует все
разработанные вне стека популярные протоколы нижних уровней, как и
большинство других стеков.
Сетевой уровень включает сравнительно редко используемые протоколы
Connection-oriented Network Protocol (CONP) и Connectionless Network Protocol
(CLNP). Как следует из названий, первый из них ориентирован на соединение
(connection-oriented), второй – нет (connectionless).
Более популярны протоколы маршрутизации стека OSI: ES-IS (End SystemIntermediate System) между конечной и промежуточной системами и IS-IS
(Intermediate System-Intermediate System) между промежуточными системами.
Транспортный уровень стека OSI в соответствии с функциями, определенными
для него в модели OSI, скрывает различия между сетевыми сервисами с
установлением соединения и без установления соединения, так что
пользователи получают требуемое качество обслуживания независимо от
нижележащего сетевого уровня. Чтобы обеспечить это, транспортный уровень
требует, чтобы пользователь задал нужное качество обслуживания.
Службы прикладного уровня обеспечивают передачу файлов, эмуляцию
терминала, службу каталогов и почту. Из них наиболее популярными являются
служба каталогов (стандарт X.500), электронная почта (X.400), протокол
виртуального терминала (VTP), протокол передачи, доступа и управления
файлами (FTAM), протокол пересылки и управления работами (JTM)
Распределение протоколов по уровням модели OSI
7
6
5
4
3
2
1
HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP,
Прикладной
SMB, NFS, RTSP
Представления XDR, AFP, TLS, SSL
ISO 8327 / CCITT
Сеансовый
X.225, RPC, NetBIOS, ASP
Транспортный TCP, UDP, SCTP, SPX, RTP, ATP, DCCP, GRE
IP, PPP, ICMP, IGMP, CLNP, OSPF, RIP, IPX,
Сетевой
DDP, ARP, RARP, BGP
Ethernet, Token ring, HDLC, X.25, Frame
Канальный
relay, ISDN, ATM, MPLS
электрические
Физический
провода, радиосвязь, волоконнооптические провода, Wi-Fi
Стек протоколов TCP/IP
5
Прикладной
«7 уровень»
HTTP, RTP, FTP, DNS, RIP
4
Транспортный
TCP, UDP, SCTP, DCCP, OSPF
3
Сетевой
IP (IP), ICMP и IGMP, ARP
2
Канальный
1
Физический
Ethernet, IEEE 802.11 Wireless Ethernet, SLIP, Token
Ring, ATM и MPLS
физическая среда и принципы кодирования
информации
Стек протоколов TCP/IP из пособия системного администратора
Принципы взаимодействия
протоколов разных уровней
• В ходе обмена информацией протоколы тесно
общаются друг с другом:
– Приложения обмениваются информацией между
собой при помощи протоколов прикладного
уровня;
– Протоколы прикладного уровня при обмене
данными полагаются на работу транспортных
протоколов;
– Транспортные протоколы осуществляют передачу
данных используя услуги сетевых протоколов
(маршрутизация).
Примеры сетевых услуг
•
•
•
•
•
Хранение данных;
Поиск информации;
Почтовые услуги;
Передача сообщений и блоков данных;
Организация сеансов взаимодействия.
Межсетевой протокол IP
• Цель – передать IP-пакет через ряд
взаимосвязанных сетей.
• Передача ip-пакета от узла к узлу
осуществляется на основе интерпретации
ip-адреса.
• Выбор пути ip-пакета называется
маршрутизацией.
• В ряде случаев на маршруте пакет может
быть фрагментирован.
Маршрутизация
• Маршрутизация (Routing) — процесс определения маршрута
следования информации в сетях связи.
• Маршруты могут быть:
– статические маршруты – задаваться административно,
– динамические маршруты – вычисляться с помощью алгоритмов
маршрутизации, базируясь на информации о топологии и состоянии
сети, полученной с помощью протоколов маршрутизации.
• Статическими маршрутами могут быть:
– маршруты, не изменяющиеся во времени;
– маршруты, изменяющиеся по расписанию;
– маршруты, изменяющиеся по ситуации — административно в
момент возникновения стандартной ситуации.
• Маршрутизация в компьютерных сетях обычно выполняется
специальными программно-аппаратными средствами —
маршрутизаторами. В простых конфигурациях может
выполняться компьютерами общего назначения.
Таблица маршрутизации
• Таблица маршрутизации — электронная таблица (файл) или база данных,
хранящаяся на маршрутизаторе или сетевом компьютере, описывающая
соответствие между адресами назначения и интерфейсами, через которые
следует отправить пакет данных до следующего маршрутизатора.
• Таблица маршрутизации обычно содержит:
– адрес сети или узла назначения, либо указание, что маршрут является
маршрутом по умолчанию;
– маску сети назначения (для IPv4-сетей маска /32 (255.255.255.255) позволяет
указать единичный узел сети);
– шлюз, обозначающий адрес маршрутизатора в сети, на который необходимо
отправить пакет, следующий до указанного адреса назначения;
– интерфейс (в зависимости от системы это может быть порядковый номер, GUID
или символьное имя устройства);
– метрику — числовой показатель, задающий предпочтительность маршрута.
Чем меньше число, тем более предпочтителен маршрут (интуитивно
представляется как расстояние).
• В таблице может быть один, а в некоторых операционных системах и
несколько шлюзов по умолчанию.
Протоколы маршрутизации
•
•
•
•
•
Внутренний протокол маршрутизации RIP
Протокол OSPF (алгоритм Дейкстры)
Протокол IGRP
Внешний протокол BGP
Бесклассовая интердоменная маршрутизация
(CIDR)
Схемы маршрутизации
•
•
Anycast (дословно — «посылка кому-нибудь») – метод
рассылки пакетов (реализованный в протоколе IPv6),
позволяющий устройству посылать данные
ближайшему из группы получателей.
Из-за особенностей топологии сети или её политики
ближайший узел не обязательно будет географически
ближайшим.
Broadcast (широковещание ) – схема возможна только
в пределах одного сегмента сети. Однако пакеты
данных могут быть посланы из-за пределов сегмента, в
которой будет осуществлено широковещание. Нагрузка
на сеть в случае широковещания не отличается от
обычной передачи данных одному адресату, поскольку
пакеты данных не размножаются (в отличие от
групповой передачи, multicast).
Multicast (групповая передача) — специальная форма
широковещания, при которой сетевой пакет
одновременно направляется определённому
подмножеству адресатов — не одному (unicast), и не
всем (broadcast).
Наряду с приложениями, устанавливающими связь
между источником и одним получателем, существуют
такие, где требуется, чтобы источник посылал
информацию сразу группе получателей.
Версия 4 (IPv4)
0
1
2
3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Версия
IHL
Тип обслуживания
Идентификатор
Время жизни (TTL)
Протокол
Длина пакета
Флаги
Смещение фрагмента
Контрольная сумма заголовка
IP-адрес отправителя (32 бита)
IP-адрес получателя (32 бита)
Параметры (от 0 до 10-ти 32-х битных слов)
Данные (до 65535 байт минус заголовок)
• IHL — длина заголовка IP-пакета в 32-битных словах (dword). Это поле
указывает на начало блока данных в пакете. Минимальное корректное
значение для этого поля равно 5.
• Идентификатор — значение, назначаемое отправителем пакета и
предназначенное для определения корректной последовательности
фрагментов при сборке дейтаграммы. Для фрагментированного пакета все
фрагменты имеют одинаковый идентификатор.
• Флаги:
– Первый бит должен быть всегда равен нулю,
– Второй бит DF (don’t fragment) определяет возможность фрагментации пакета,
– Третий бит MF (more fragments) показывает, не является ли этот пакет
последним в цепочке пакетов.
• Смещение фрагмента — значение, определяющее позицию фрагмента в
потоке данных.
• Время жизни (TTL) — число маршрутизаторов, которые должен пройти
этот пакет. При прохождении маршрутизатора это число уменьшатся на
единицу. Если значения этого поля равно нулю то, пакет должен быть
отброшен и отправителю пакета может быть послано сообщение Time
Exceeded (ICMP код 11 тип 0).
• Протокол — идентификатор протокола следующего уровня (номер
протокола следующего уровня).
• Контрольная сумма заголовка — вычисляется с использованием операций
поразрядного сложения 16-разрядных слов заголовка по модулю 2.
Тип обслуживания
• Тип обслуживания (Type of Service, TOS) — байт, содержащий
набор критериев, определяющих тип обслуживания IP-пакетов.
Поле приоритет предоставляет возможность присвоить код приоритета
каждой дейтограмме:
0 Обычный уровень
1 Приоритетный
2 Немедленный
3 Срочный
4 Экстренный
5 ceitic/ecp
6 Межсетевое управление
7 Сетевое управление
Биты TOS
Биты C, D, T и R характеризуют пожелание
относительно способа доставки дейтограммы:
–
–
–
–
D=1 требует минимальной задержки,
T=1 - высокую пропускную способность,
R=1 - высокую надежность,
C=1 - низкую стоимость.
TOS играет важную роль в маршрутизации пакетов.
Интернет не гарантирует запрашиваемый TOS, но
многие маршрутизаторы учитывают эти запросы
при выборе маршрута.
Значения TOS для разных протоколов
FTP управление
FTP данные
1
Максим.
пропускная
способность
0
0
TFTP
DNS
Процедура
Миним.
задержка
Максим.
Миним.
Код TOS
надежность стоимость
0
0
0x10
1
0
0
0x08
1
0
0
0
0x10
1
0
0
0
0x10
0
0
0
0
0x00
0
0
0
0
0x00
Telnet
1
0
0
0
0x10
ICMP
0
0
0
0
0x00
IGP
0
0
1
0
0x04
SMTP управление
SMTP данные
1
0
0
0
0x10
0
1
0
0
0x08
SNMP
0
0
1
0
0x04
NNTP
0
0
0
1
0x02
UDP
TCP
Коды протоколов Интернет
Код
Сокращенное
Описание
протокола
название
Интернет
протокола
0
Зарезервировано
1
ICMP
Протокол контрольных сообщений [rfc792]
2
IGMP
Групповой протокол управления [rfc1112]
3
GGP
Протокол маршрутизатор-маршрутизатор [RFC-823]
4
IP
IP поверх IP (инкапсуляция/туннели)
5
ST
Поток [rfc1190]
6
TCP
Протокол управления передачей [RFC-793]
7
UCL
UCL
8
EGP
Протокол внешней маршрутизации [RFC-888]
9
IGP
Протокол внутренней маршрутизации
17
UDP
Протокол дейтограмм пользователя [RFC-768]
27
RDP
Протокол для надежной передачи данных [RFC-908]
Поле опции
(дополнительные параметры)
• Поле опции не обязательно присутствует в каждой
дейтограмме.
• Размер поля опции зависит от того, какие опции
применены. Если используется несколько опций, они
записываются подряд без каких-либо разделителей.
• Каждая опция содержит один октет кода опции, за
которым может следовать октет длины и серия октетов
данных.
• Если место, занятое опциями, не кратно 4 октетам,
используется заполнитель.
Формат поля опции
• Флаг копия равный 1 говорит о том, что опция должна быть
скопирована во все фрагменты дейтограммы.
• Значения разрядов 2-битового поля класс опции:
–
–
–
–
0 – дейтограмма пользователя или сетевое управление;
1 – зарезервировано для будущего использования;
2 – отладка и измерения (диагностика);
3 – зарезервировано для будущего использования.
Значения классов и номеров опций
Класс
опции
Номер
опции
Длина
описания
Назначение
0
0
-
Конец списка опций. Используется, если опции не
укладываются в поле заголовка (смотри также поле
"заполнитель")
0
1
-
Никаких операций (используется для выравнивания
октетов в списке опций)
0
2
11
Ограничения,связанные с секретностью (для
военных приложений)
0
3
*
Свободная маршрутизация. Используется для того,
чтобы направить дейтограмму по заданному
маршруту
0
7
*
Запись маршрута. Используется для трассировки
0
8
4
Идентификатор потока. Устарело.
0
9
*
Жесткая маршрутизация. Используется, чтобы
направить дейтограмму по заданному маршруту
2
4
*
Временная метка Интернет
Временные метки и маршрутизация
• Опция записать маршрут создает дейтограмму, где
зарезервировано место, куда каждый маршрутизатор
по дороге должен записать свой IP-адрес (например,
утилита traceroute). Формат опции записать маршрут
в дейтограмме представлен ниже.
Формы маршрутизации
• Существует две формы маршрутизации:
– Свободная маршрутизация;
– Жесткая маршрутизация.
Жесткая маршрутизация означает, что адреса определяют точный маршрут
дейтограммы. Проход от одного адреса к другому может включать только одну
сеть.
Свободная маршрутизация отличается от предшествующей возможностью
прохода между двумя адресами списка более чем через одну сеть.
Поле длина задает размер списка адресов, а указатель отмечает адрес очередного
маршрутизатора на пути дейтограммы.
Порядок просмотра
маршрутной таблицы
• Просмотр маршрутной таблицы происходит в три этапа:
– Ищется полное соответствие адресу места назначения. В
случае успеха, пакет посылается соответствующему
маршрутизатору или непосредственно интерфейсу адресата.
Связи точка-точка выявляются именно на этом этапе.
– Ищется соответствие адресу сети места назначения. В случае
успеха система действует также как и в предшествующем
пункте. Одна запись в таблице маршрутизации соответствует
всем ЭВМ, входящим в данную сеть.
– Осуществляется поиск маршрута по умолчанию и, если он
найден, дейтограмма посылается в соответствующий
маршрутизатор.
Запись маршрута
• Опция временные метки работает также как и опция запись
маршрута.
• Каждый маршрутизатор на пути дейтограммы делает запись в
одном из полей дейтограммы (два слова по 32 разряда).
Смысл полей длина и указатель идентичен тому, что сказано о предыдущих
опциях.
4-битовое поле переполнение содержит число маршрутизаторов, которые не
смогли записать временные метки из-за ограничений выделенного места в
дейтограмме.
Временные метки
Значения поля флаги задают порядок записи временных меток
маршрутизаторами:
Значение Назначение
флага
0
Записать только временные метки; опустить ip-адреса.
1
Записать перед каждой временной меткой ip-адрес (как в формате
на предыдущем рисунке).
3
ip-адреса задаются отправителем; маршрутизатор записывает
только временные метки, если очередной IP-адрес совпадает с
адресом маршрутизатора
Временные метки должны содержать время в миллисекундах,
отсчитанное от начала суток.
Заголовок сегмента TCP
Флаги (управляющие биты):
URG — «Указатель важности»;
ACK — «Номер подтверждения» ;
PSH (Push function) —инструктирует
получателя протолкнуть данные,
накопившиеся в приемном буфере, в
приложение пользователя;
RST (Reset the connection)— оборвать
соединения;
SYN (Synchronize sequence numbers) —
синхронизация номеров
последовательности;
FIN (FIN bit) — флаг указывает на
завершение соединения.
Бит
0
0—3
4—9
10 — 15
Порт источника
16 — 31
Порт назначения
32
Номер последовательности
64
Номер подтверждения
96
Смещен
Зарезерв
ие
ировано
данных
Флаги
Размер Окна
Указатель
важности
128
Контрольная сумма
160
Опции (необязательное, но используется
практически всегда)
160/
192+
Данные
Указатель важности – 16-битовое значение положительного смещения от порядкового
номера в данном сегменте.
Поле указывает порядковый номер байта, которым заканчиваются важные данные.
Поле принимается во внимание только для пакетов с установленным флагом URG.
Номер последовательности
Выполняет две задачи:
– Если установлен флаг SYN, то это начальное значение номера
последовательности — ISN (Initial Sequence Number), и первый байт
данных, которые будут переданы в следующем пакете, будет иметь
номер последовательности, равный ISN + 1.
– В противном случае, если SYN не установлен, первый байт данных,
передаваемый в данном пакете, имеет этот номер
последовательности.
Поскольку поток TCP в общем случае может быть длиннее, чем число
различных состояний этого поля, то все операции с номером
последовательности должны выполняться по модулю 2^32. Это
накладывает практическое ограничение на использование TCP.
Если скорость передачи коммуникационной системы такова,
чтобы в течение MSL (максимального времени жизни сегмента)
произошло переполнение номера последовательности, то в сети
может появиться два сегмента с одинаковым номером,
относящихся к разным частям потока, и приёмник получит
некорректные данные.
Download