logo
Мет по сетям (протоколам)

Протокол тср

ТСР (Transmission Control Protocol) протокол обеспечивает сквозную доставку данных прикладным процессам на взаимодействующих по сети узлах. ТСР — надёжный потоковый протокол с установлением соединения и последующим двунаправленным обменом данными. Смысл приведённых характеристик поясняет представленная в таблице 3.4.1 структура TCP пакета.

Source Port, Destination Port, Checksum, Data имеют тот же смысл, что и поля порт источника, порт получателя, контрольная сумма и данные в структуре UDP пакета.

SN – порядковый номер первого байта в поле данных пакета среди байтов передаваемого файла в текущем соединении. Например, если в TCP пакете в поле данных содержатся байты с 2001 по 3000, то SN=2001. После достижения максимально возможного значения (232-1) нумерация байтов начинается с 0. При использовании пакета для подтверждения (данные не передаются) в поле SN записывается увеличенный на 1 номер последнего переданного байта.Таблица 3.4.1. Структура ТСР пакета.

←——————————————Слово 32 бита (4-е байта)————————————————→

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

Source Port

Destination Port

Sequence Number (SN)

Acknowledgment Sequence Number (ACK SN)

Data Offset

0

U

A

P

R

S

F

Window

Checksum

Urgent Pointer

Options (Padding)

Data

….

Data

ACK SN – порядковый номер ожидаемого байта, т. е. предыдущие байты до ACK SN – 1 включительно приняты успешно. Поле имеет смысл при установленном флаге А.

Data Offset – длина заголовка ТСР пакета в 32-битных словах. Минимальное значение поля равно 5 (поле options отсутствует), максимальное – 15 (60 байт).

Флаги:

U – активизировано (имеет смысл) поле Urgent Pointer.

A – активизировано (имеет смысл) поле ACK SN.

P – немедленное выталкивание данных из буфера процессу-получателю.

R – аварийный разрыв соединения и очистка всех буферов.

S – запрос на установление соединения.

F – последний пакет с данными.

Window – размер окна в байтах. Для ускорения процесса передачи в протоколе TCP используется метод скользящего окна. Этот метод позволяет источнику передавать пакеты, не дожидаясь прихода подтверждения приёма предыдущих данных. Объём в байтах передаваемых таким образом данных и определяет значение поля. Значение поля задает получатель в пакете-подтверждении. Источник последовательно отправляет данные в ТСР пакетах в пределах окна до получения подтверждения со значениями ACK SN и Window. После получения подтверждения байты до ACK SN – 1 считаются переданными и удаляются из буфера. Тем временем, байты данных продолжают передаваться в пределах указанного в поле Window количества. Если объём переданных и неподтверждённых данных достиг значения окна (Window), то передача прекращается до получения подтверждения. Если источник получает пакет-подтверждение со значением ACK SN меньшим, чем он принял раньше (заблудившийся пакет), то этот пакет игнорируется.

Urgent Pointer – указатель (pointer) длины в байтах строчных (urgent) данных перед отправляемыми данными. Эти строчные данные могут быть использованы для задания режима работы прикладного процесса-получателя. Значение поля имеет смысл при установленном флаге U.

Options – необязательное поле опций дополнительных услуг протокола. Максимальный размер поля – 40 байт. При использовании поля оно всегда дополняется (padding — набивка) нулевыми байтами до целого числа 4-байтовых слов.