Управление перегрузкой ТСР
Теперь рассмотрим величину данных отправленных в единицу времени от Вашего компьютера к серверу. Для этого воспользуемся одной из графических утилит Wireshark—Time-Sequence-Graph(Stevens).
Выберите ТСР - сегмент среди захваченных пакетов. Затем выберите пункт меню: Statistics>TCP Stream Graph>Time-Sequence Graph (Stevens). Вы увидите график как на рисунке 3.4. Здесь каждая точка представляет собой отправленный ТСР - сегмент, изображенный против момента времени, в который он был отправлен.
Рис.3.4. Вид графического анализатора Ethereal
Контрольные вопросы
9. Определите начало и конец фазы медленного старта.
10. Прокомментируйте различия между захваченными данными и идеализированным поведением, изученным на лекции.
11. Сколько уровней имеет стек протоколов TCP/IP? Каковы их функции? Какие особенности этого стека обуславливают его лидирующее положение в мире сетевых технологий?
12. Нарисуйте диаграмму, отражающую передачу пакетов при установлении связи (рукопожатие ТСР).
13. В чем особенности реализации метода скользящего окна в протоколе TCP.
ЛАБОРАТОРНАЯ РАБОТА №4
Ethereal Lab: протокол сетевого уровня IP
Цель работы – исследование IP протокола на основе детального изучения полей IP-дейтаграммы и анализа следов дейтаграмм, отправленных и полученных при выполнении программы Traceroute.
Основные теоретические сведения
Межсетевой протокол IP специфицирован в RFC 791. Его основные характеристики перечислены ниже:
· реализует обмен информации пакетами – IP-сегментами (максимальный размер IP-сегмента - 65535 байт);
· является протоколом взаимодействия без установления логического соединения;
· для адресации узлов сети используется адрес длиной 4 байта;
· обеспечивает в случае необходимости фрагментацию IP-сегментов;
· IP-сегменты имеют конечное время жизни в сети;
· не гарантирует надежность доставки IP-сегментов адресату;
· не имеет средств управления интенсивностью передачи IP-сегментов посылающей стороной (flow control);
· не гарантирует правильную последовательность IP-сегментов на принимающей стороне.
Заголовок IP-сегмента
На рис. 4.1 приведен формат заголовка IP-сегмента.
Рис. 4.1 Формат заголовка IP сегмента
· Версия – 4- битовое поле, содержащее номер версии протокола IP (номер текущей версии равен 4);
· Длина заголовка – 4-битовое поле, содержащее длину заголовка IP-сегмента в 32-битных словах. Минимальная (и типичная) длина заголовка - пять слов.
· Тип обслуживания – байт, содержащий набор критериев, определяющих тип обслуживания IP-сегментов.
· Длина сегмента – двухбайтовое поле, содержащее длину (в байтах) всего IP-сегмента, включая длину заголовка. Максимальная длина IP-сегмента (включая заголовок) - 65535 байт. Спецификация IP протокола устанавливает, что любой узел сети должен быть способен обрабатывать IP-сегменты длиной, по крайней мере, не менее 576 байт (что соответствует 512 байтам данных при возможной длине заголовка до 64 байт). На практике же узлы сети могут обрабатывать IP-сегменты много длиннее, чем 576 байт (как правило, допустимая длина IP-сегмента связана с максимальной длиной кадра нижележащего сетевого уровня).
· Идентификатор – двухбайтовое поле, содержащее уникальный идентификатор IP-сегмента, присваиваемый ему посылающим узлом. Это поле используется для распознавания фрагментов одного IP-сегмента (в ситуациях, когда в ходе перемещения по глобальной сети единый IP-сегмент был разбит на несколько фрагментов по причине его недопустимо большой длины).
· DF, MF – биты, используемые при обработке фрагментированных IP-сегментов.
o Если бит DF (Don't Fragment) установлен в 1, то это означает, что IP-сегмент не может быть разбит на фрагменты ни при каких условиях (даже, если он не может быть передан без этого далее к адресату и должен быть уничтожен).
o Бит MF (More Fragments) указывает, является (MF=0) или нет (MF=1) данный IP-"подсегмент" последним в цепочке IP-"подсегментов", в которую был преобразован (фрагментирован) исходный IP-сегмент.
· Смещение фрагмента – 13-битное поле, используемое только в IP-сегменте, являющемся фрагментом (IP-фрагментом) другого (исходного) IP-сегмента. Это поле содержит смещение данных, содержащихся в IP-фрагменте, по отношению к началу данных исходного IP-сегмента. Смещение измеряется в восьмибайтных единицах, поэтому 13 битов достаточно для представления смещения в IP-сегменте максимальной возможной длины (8 * 2^13 - 1 = 65535).
· Время жизни – однобайтовое поле, заполняемое создающим IP-сегмент узлом сети. Оно определено количеством единиц времени жизни IP-сегмента в сети. Каждый транзитный узел сети, через который проходит IP-сегмент, уменьшает содержимое этого поля по крайней мере на 1. Таким образом, на практике, время жизни (TTL - Time To Live) – это максимальное количество узлов, которое может пройти до своего уничтожения IP-сегмент. Каждый IP-модуль на любом узле сети обязан уничтожать IP-сегменты, для которых поле "время жизни" стало равным нулю. Этим предотвращается появление в сети IP-сегментов, "блуждающих" по ней бесконечное время. При этом узлу-источнику уничтоженного IP-сегмента посылается ICMP-сегмент, извещающий об этом событии.
· Транспорт – поле размером в байт, содержащее идентификатор протокола более высокого (обычно, транспортного) уровня, для которого предназначены данные IP-сегмента. В таблице 4.1. приведены идентификаторы некоторых протоколов.
Таблица 4.1
Идентификаторы некоторых протоколов
Идентификатор | Сокращённое название | Имя протокола |
ICMP | Межсетевой протокол управляющих сообщений | |
IGMP | Межсетевой протокол группового управления | |
TCP | Протокол управления передачей | |
UDP | Протокол дейтаграмм пользователя |
· Контрольная сумма заголовка – двухбайтовое поле, содержащее контрольную сумму заголовка IP-сегмента (обращаем внимание, что для данных IP-сегмента контрольная сумма не подсчитывается; контролировать данные – задача протоколов транспортного уровня).
· Адрес источника и адрес приемника – четырехбайтовые IP-адреса узлов сети.
· Дополнительные данные заголовка – последовательность полей произвольной длины, описывающих необязательные данные заголовка. Такие данные используются для специальных целей (управление сетью, секретность и т.п.).
· Данные выравнивания – не имеющие смысла данные, включаемые в заголовок только для выравнивания его длины до границы четырехбайтового слова.
IP-адрес
IP-адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет. Часто говорят, что IP-адрес присваивается узлу сети (например, хосту); это верно в случае, если узел является хостом с одним IP-интерфейсом, иначе следует уточнить, об адресе какого именно интерфейса данного узла идет речь. Далее для краткости там, где это не вызовет неверного толкования, вместо адреса IP-интерфейса узла сети говорится об IP-адресе хоста.
IP-адреса принято записывать разбивкой всего адреса по октетам, каждый октет записывается в виде десятичного числа, числа разделяются точками.
Например, адрес
записывается как
10100000.01010001.00000101.10000011 = 160.81.5.131
IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть. Положение границы сетевой и хостовой частей (обычно оно характеризуется количеством бит, отведенных на номер сети) может быть различным, определяя различные типы IP-адресов (A, B, C, D и E).
Фрагментация IP-сегментов
Для того, чтобы существовала возможность передачи IP-сегментов через сети различного типа, межсетевой протокол обеспечивает адаптацию их размера к требованиям каждой сети.
Изменение размера IP-сегмента реализуется механизмом, называемым фрагментацией. IP-модуль на любом узле сети должен иметь возможность:
· разбивать полученный им IP-сегмент на IP-фрагменты необходимого размера перед их передачей через конкретную сеть;
· восстанавливать исходный IP-сегмент из получаемых им IP-фрагментов.
Каждый IP-фрагмент представляет собой полноценный IP-сегмент со своим собственным IP-заголовком. Однако заголовки всех IP-фрагментов содержат одинаковый идентификатор, совпадающий с идентификатором исходного IP-сегмента. Это позволяет распознавать все IP-фрагменты, относящиеся к одному исходному IP-сегменту.
IP-фрагменты в своих заголовках содержат поле Смещение фрагмента, описывающее смещение данных IP-фрагмента в данных исходного IP-сегмента. Это поле позволяет корректно восстановить данные исходного IP-сегмента в принимающем IP-фрагменты узле даже в ситуации, когда IP-фрагменты приходят в порядке, отличающемся от порядка их посылки.