Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 11:

Управление перегрузкой и основные алгоритмы работы TCP

Опции

Заголовок TCP может содержать до 40 байт информации опций. Опции передают дополнительную информацию для пункта назначения или выравнивают другие опции. Определены две категории опций: однобайтовая и многобайтовая опция. Первая категория имеет два типа опций: оконечная опция и нет операции. Вторая категория содержит три типа опций: размер максимального сегмента, коэффициент масштаба, а также метку времени ( Рис. 11.4.).

Опции

Рис. 11.4. Опции

Конец опции. Это опция в 1 байт используется для заполнения поля опции, чтобы выровнять формат. Она должна быть использована только как последняя опция и только с одного конца. После этой опции приемник ищет полезную нагрузку. Иногда поле опции может содержать более чем один байт. Это означает, что необходимо выровнять поле опции, используя несколько опций типа "нет операции" (ничего не делать), после чего поставить конец опции ( Рис. 11.5.). Конец опции несет три значения информации для конечного пункта, она указывает, что:

  1. нет больше опций в заголовке;
  2. остаток от последнего 32-битового слова – это мусор и его можно не обрабатывать;
  3. данные от прикладной программы стартуют с начала следующего 32-битового слова.
Конец опции

Рис. 11.5. Конец опции

Нет операций. Эта опция ( Рис. 11.6.) в один байт используется как разделитель между опциями. Например, она может применяться для выравнивания следующей опции до 32-битовой границы.

Опция "нет операции"

Рис. 11.6. Опция "нет операции"

Максимальный размер сегмента (MSS – Maximum segment size). Эта опция определяет размер наибольшего куска данных, который может быть получен пунктом назначения сегмента TCP. Вопреки своему имени она определяет максимальный размер данных, но не максимальный размер сегмента. В то же время, поле длиной 16 бит может быть значением 65 535 байт. Значение по умолчанию — 536.

Максимальный размер данных определяется в течение фазы установления соединения. Размер определяется пунктом назначения сегмента, но не источником. Так, сторона 1 определяет MSS стороны 2. Сторона 2 определяет, что должно быть MSS, посланным со стороны 1. Если ни та, ни другая сторона не определяет размер, он выбирается по умолчанию.

Эта опция применяется только в сегментах, которые осуществляют соединение. Она не может использоваться в сегментах в течение передачи. Рис. 11.7. показывает формат этой опции. Он содержит код опции, общую длину опции и значение опции.

Опция "максимальный размер сегмента"

Рис. 11.7. Опция "максимальный размер сегмента"

Масштабный коэффициент окна. Поле размера окна в заголовке определяет размер скользящего окна. Это поле 16 бит длины, что означает, что окно может иметь рамки от 0 до 65 535. Хотя этот размер окна кажется очень большим, он еще может не быть эффективным, в частности, если данные проходят среду с высокой пропускной способностью с малыми задержками передачи.

Возьмем, например, канал оптического кабеля (OC-24), имеющего пропускную способность 1 244 160 Мбит/с и соединяющего два компьютера куском 6000 миль. Когда одна станция посылает данные другой, требуется по меньшей мере 64 мс, чтобы принять подтверждение. В течение этого периода могут быть посланы 10 Мбайт. Однако размер окна позволяет станции послать только 65 535 байт.

Для того чтобы увеличить размер окна, используется масштабный коэффициент окна. Новый размер окна находится повышением в 2 раза числа, заданного масштабным коэффициентом окна. Затем этот результат умножается на значение размера окна в заголовке.

Размер нового окна = размер окна, определенный в заголовке x 2масштабный элемент окна.

Например, если значение масштабного коэффициента окна равно 3, действующий размер окна есть восьмикратное значение размера окна. Масштабный коэффициент может иметь значение не более 16 — наибольшее из позволяемых TCP/IP, то есть максимальный размер окна может быть 216 x 216 = 232 и совпадать с максимальным значением порядкового номера. Заметим, что размер окна не может быть больше, чем максимальное значение порядкового номера.

Масштабный коэффициент окна может быть определен только во время фазы установления соединения. Во время передачи данных размер окна (заданный заголовком) может изменяться, но он может быть умножен на тот же самый масштабный коэффициент. Формат опции масштабного коэффициента показан на Рис. 11.8. Он содержит код опции, общую длину опции и значение масштабного коэффициента.

Опция "масштабный коэффициент окна"

Рис. 11.8. Опция "масштабный коэффициент окна"

Масштабный коэффициент иногда называют сдвигающим счетчиком, потому что умножение числа на величину 2 – это то же самое, что операция побитового сдвига влево.

Метка времени. Это 10-битовая опция с форматом, показанным на Рис. 11.9. Поле метки времени заполняется источником, когда сегмент покидает источник. Пункт назначения получает сегмент и накапливает значение метки времени. Когда пункт назначения посылает подтверждение байтов в этом сегменте, он вводит накопленное предыдущее значение в поле "эхо ответа". Источник, когда получает подтверждение, проверяет текущее время по сравнению с этим значением. Разность – это время прохождения "туда и обратно". Время "туда и обратно" может быть использовано TCP динамически для определения времени повторной передачи, как это уже обсуждалось.

Опция "метка времени"

Рис. 11.9. Опция "метка времени"
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова
Алексей Гончаренко
Алексей Гончаренко
Россия
Айбек Куттымурат
Айбек Куттымурат
Казахстан, Алматы