Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Роль компьютерных сетей в мире телекоммуникаций...docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
73.78 Кб
Скачать
  1. Реализация скользящего окна выбор таймаута реакция на перегрузку сети протокола tcp

Особенность алгоритма – окно определено на множестве нумерованный байт в неструктурированном потоке данных. Квитанция посылается либо положительная, либо учитывается её отсутствие. В качестве квитанции используется сообщение, которое содержит число на единицу превышающее максимальный номер байта, полученного в сегменте.

При выборе таймаута учитывается скорость, надежность, протяженность физических линий и т.п. В протоколе TCP таймаут определяется с помощью сложного адаптивного алгоритма, который при каждой передаче засекает время от отправки сегмента до квитанции. Получаемые значения усредняются с весовыми коэффициентами, возрастающими от предыдущего замера к последующему. Это делается, чтобы усилить влияние последних замеров. В качестве таймаута выбирается среднее время оборота, умноженное на коэффициент (обычно >2).

Изменяя величину окна можно влиять на нагрузку сети. При переполнении приемного буфера конечного узла перегруженный протокол отправляет квитанцию, помещая в нее уменьшенный размер окна. Если он совсем отказывается от приема, то в квитанции указывается 0 размер. Даже после этого приложение может послать сообщение на отказавшийся от приема порт (для этого оно помечается пометкой срочно). В таком случае порт обязан принять сегмент, даже если для этого придется вытеснить из буфера уже находившиеся там данные. После приема квитанции с нулевым значением, протокол отправитель время от времени делает контрольную попытку продолжить обмен. Если приемник готов принимать, то он отсылает квитанцию с ненулевым размером окна. Если переполняется буфер маршрутизатора, то они централизованно изменяют размер окна, посылая уведомления конечным узлам.

  1. Формат сообщений tcp

Сообщения протокола TCP называются сегментами.

Сегмент состоит из:

  • Блок данных

  • Заголовок

  • Порт источника SOURSE PORT (2 байта) идентифицирует процесс отправитель

  • Порт назначения DESTINATION PORT (2 байта) идентифицирует процесс-получатель

  • Последовательный номер SEQUENCE NUMBER (4 байта) указывает № байта, который определяет смещение сегмента относительно потока отправленных данных

  • Подтвержденный номер ACKNOWLEDGMENT NUMBER (4 байта) содержит максимальный № байта, полученный в сегменте, увеличенный на 1. Это значение используется в качестве квитанции

  • Длина заголовка HLEN (4 бита) указывает длину заголовка сегмента TCP, измеренная в 32ух битовых словах. Длина заголовка может меняться, в зависимости от значений в поле опции.

  • Поле резерв RESERVED (6 бит) зарезервировано для последующего использования

  • Кодовые биты CODE BITS (6 бит) содержит служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующего бита этого поля.

  • URG – срочное сообщение

  • ASC – квитанция на прием сегмента

  • PSH – запрос на отправку сообщения без ожидания заполнения буфера.

  • RST - запрос на восстановление соединения

  • SYN – сообщения, используемые для синхросчетчиков передачи данных при установлении соединения

  • FIN – признак достижения передающей стороной последнего байта в потоке передачи данных.

  • Поле окно WINDOWS (2 байта) содержит объявляемое значение размера окна в байтах.

  • Контрольная сумма CHECK SUM (2 байта) рассчитывается по сегменту.

  • Указатель срочности URGENT POINTER (2 байта) используется совместно с кодовым битом URG, указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера.

  • Опции OPTIONS (от 0 до 3 байт) используется для решения вспомогательных задач, например при выборе максимального размера сегмента.

  • Дополнительное поле PADDING (переменная длина) используется для доведения размера заголовка до целого числа 32-битовых слов