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