Основные понятия:

 

Основывается на протоколе IP для передачи и маршрутизации.
Сегмент заворачивается в IP пакет.

СегментБлок единичного пакета/сообщения.
Клиент и СерверTCP сервер слушает определенный сокет (привязка к IpAddress + Port).
TCP клиент подключается к серверу, устанавливается соединение.
Логическое соединение

Между 2 сторонами устанавливается логическое соединение, в рамках которого идет передача данных.

При этом соединение само по себе не имеет механизмов для определения разрыва сети, падения приложения одной из сторон или падения сервера.

Потоковый (stream) передача

Отправка и получение данных идут в виде потока байт.

Необходима реализация механизмов для определения границ сообщения в передаваемых данных
(

  • либо все сообщения имеют фиксированную длину,
  • либо у сообщений есть заголовок фиксированной длины, в котором указана длина блока данных

)

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

 

Теги:
Создал(а) Alexandr Fokin 2022/07/09 16:44