Управление перегрузкой ТСР

Теперь рассмотрим величину данных отправленных в единицу времени от Вашего компьютера к серверу. Для этого воспользуемся одной из графических утилит 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-фрагменты приходят в порядке, отличающемся от порядка их посылки.