TCP
Версия 1.1 от Alexandr Fokin на 2022/07/09 16:44
Основные понятия:
Основывается на протоколе IP для передачи и маршрутизации. | |
Сегмент | Блок единичного пакета/сообщения. |
Клиент и Сервер | TCP сервер слушает определенный сокет (привязка к IpAddress + Port). TCP клиент подключается к серверу, устанавливается соединение. |
Логическое соединение | Между 2 сторонами устанавливается логическое соединение, в рамках которого идет передача данных. При этом соединение само по себе не имеет механизмов для определения разрыва сети, падения приложения одной из сторон или падения сервера. |
Потоковый (stream) передача | Отправка и получение данных идут в виде потока байт. Необходима реализация механизмов для определения границ сообщения в передаваемых данных
) |
Гарантия доставки сегментов. | При отправке данных (сегментов) каждая сторона фиксирует статус отправки и ожидает подтверждения. Если подтверждение не происходит в течении определенного времени, то один или группа сегментов (зависит от реализации) посылается повторно. |
Гарантия порядка получения (за счет нумерации данных) | В метаданные сегмента записывается порядковый номер первого байта данных, который используется принимающей стороной для восстановления последовательности сегментов (т.к. они могут быть получены не в том порядке, в котором было отправлены). |
Гарантия целостности данных за счет контрольной суммы | Перед отправкой в метаданные сегмента включается блок с контрольной суммой данных. При получении сегмента, контрольная сумма сверяется для проверки изменения содержимого сегмента. |
Окно приема | |
Окно передачи |