Содержание

Слайд 2

Поле флаги Поле флаги Значение бита =1 URG Флаг важной информации.

Поле флаги

Поле флаги Значение бита =1
URG Флаг важной информации. Указатель

важной информации имеет смысл, если urg=1 (Del или Ctrl-С).
ACK Номер октета, который должен прийти следующим, правилен.
PSH Этот сегмент требует выполнения операции push. Получатель должен передать эти данные прикладной программе как можно быстрее.
RST Прерывание связи.
SYN Флаг для синхронизации номеров сегментов, используется при установлении связи.
FIN Отправитель закончил посылку байтов.
Слайд 3

Опции TCP Размер поля Опции переменен и дополняется до кратного 32-бит

Опции TCP

Размер поля Опции переменен и дополняется до кратного 32-бит с

помощью поля заполнитель. В TCP определены следующие опции:
0 Конец списка опций. 1 Никаких операций. Используется для заполнения поля опции до числа октетов, кратного 4. 2 Максимальный размер сегмента (MSS).
Слайд 4

Установление соединения Сервер откликается, посылая свой SYN-сегмент, содержащий идентификатор ISN (Initial Sequence Number) Клиент Сервер

Установление соединения

Сервер откликается, посылая свой SYN-сегмент,
содержащий идентификатор ISN (Initial Sequence

Number)

Клиент

Сервер

Слайд 5

Установление-разрыв соединения Для установление связи требуется обмен тремя сегментами, а для

Установление-разрыв соединения

Для установление связи требуется обмен тремя сегментами, а для разрыва

- четырьмя. Но протокол допускает совмещение первого ACK и второго FIN в одном сегменте, сокращая полное число закрывающих сегментов с четырех до трех.
Машина состояний для протокола TCP не предусматривает изменения состояний при посылке или получении обычных пакетов, содержащих данные
Слайд 6

Клиент С установливает FTP-соединения с сервером s c -> s:syn(ISNc) s

Клиент С установливает FTP-соединения с сервером s

c -> s:syn(ISNc) s -> c:syn(ISNs),

ack(ISNc) c -> s: ack(ISNs) (Связь установлена) c -> s: данные и/или s -> c: данные
Проблема двух армий
Машина состояний для протокола TCP не предусматривает изменения состояний при посылке или получении обычных пакетов, содержащих данные
Слайд 7

Машина состояний для TCP

Машина состояний для TCP

Слайд 8

Скользящее окно Нужно учитывать, что потерей пакета будет считаться, как вариант

Скользящее окно

Нужно учитывать, что потерей пакета будет считаться, как вариант потери

информационного сегмента, так и потеря отклика на него. Эти два варианта не различимы.
Проблема сверхбольшого буфера
Слайд 9

Медленный старт cwnd - congestion window ssthreth - slow start threshold

Медленный старт

cwnd - congestion window
ssthreth - slow start threshold

Слайд 10

CWND Окно перегрузки (CWND) позволяет согласовать полную загрузку виртуального соединения и

CWND

Окно перегрузки (CWND) позволяет согласовать полную загрузку виртуального соединения и текущие

возможности канала, минимизируя потери пакетов при перегрузке.
T <= (MSS/RTT)×(1/SQRT{p}), где MSS - максимальный размер сегмента, p - вероятность потери пакета; Т [Мбит/с] пропускная способность канала.
Слайд 11

Зависимость пропускной способности от вероятности потери пакета Отсюда следует, что каналы

Зависимость пропускной способности от вероятности потери пакета

Отсюда следует, что каналы с

BER ~10-3 не способны эффективно использовать свою полосу пропускания. Это относится практически ко всем мобильным каналам.
Слайд 12

RTTm = a×RTTm + (1-a)×RTTi, RTTm = RTTm + g(RTTi-RTTm) D

RTTm = a×RTTm + (1-a)×RTTi,

RTTm = RTTm + g(RTTi-RTTm) D = D

+ d(|RTTi - RTTm| - D) RTO = RTTm + 4D,

window > RTT×B/MSS

B - полоса пропускания канала в бит/с, а MSS - максимальный размер сегмента в битах, а window - в сегментах.
D - среднее отклонение RTT от равновесного значения, а коэффициенты g = 0,125, D = 0,25. Чем больше g, тем быстрее растет RTO по отношению к RTT.
Для того чтобы точнее отслеживать вариации RTT, временные метки помещаются в каждый посылаемый сегмент.

Слайд 13

Таймеры TCP RTO – таймер повторной передачи Таймер запросов - persist

Таймеры TCP

RTO – таймер повторной передачи
Таймер запросов - persist timer
Таймер keepalive
2MSL-таймер

(Maximum Segment Lifetime) контролирует время пребывания канала в состоянии TIME_WAIT. Выдержка таймера по умолчанию равно 2 мин
Если в ходе TCP-сессии получено сообщение ICMP(4), то cwdn делается равным одному сегменту, а ssthresh не изменяется. На ICMP-сообщения о недостижимости сети или ЭВМ программы TCP-уровня не реагируют вообще
Слайд 14

Алгоритм Нагля (1984; RFC-896) В режиме удаленного терминала (telnet/ssh) при нажатии

Алгоритм Нагля (1984; RFC-896)

В режиме удаленного терминала (telnet/ssh) при нажатии любой

клавиши формируется и посылается 41-октетный сегмент, который содержит всего один байт полезной информации
Нагль предложил при однобайтовом обмене посылать первый байт, а последующие буферизовать до прихода подтверждения получения посланного (работа с мышкой!)
Слайд 15

Синдром узкого окна Существует еще одна проблема при пересылке данных по

Синдром узкого окна

Существует еще одна проблема при пересылке данных по каналам

TCP, которая называется синдром узкого окна (silly window syndrome; Clark, 1982). Такого рода проблема возникает в том случае, когда данные поступают отправителю крупными блоками, а интерактивное приложение адресата считывает информацию побайтно. Предположим, что в исходный момент времени буфер адресата полон и передающая сторона знает об этом (window=0). Интерактивное приложение считывает очередной октет из TCP-потока, при этом TCP-агент адресата поcылает уведомление отправителю, разрешающее ему послать один байт. Этот байт будет послан и снова заполнит до краев буфер получателя, что вызовет отправку ACK со значением window=0.