Протоколы - TCP 

Page / - Изменено Alexandr Fokin в 2022/07/09 16:44 

TCP 
Изменено Alexandr Fokin
в 2022/07/09 16:44

Оглавление

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