Изменения документа TCP
Редактировал(а) Alexandr Fokin 2022/12/12 12:13
<
>
отредактировано Alexandr Fokin
на 2022/07/09 16:53
на 2022/07/09 16:53
отредактировано Alexandr Fokin
на 2022/07/09 17:13
на 2022/07/09 17:13
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,25 +1,28 @@ 1 1 ---- 2 2 3 -**Основные понятия:**3 +**Основные моменты:** 4 4 5 5 |(% style="width:546px" %) |(% style="width:960px" %)((( 6 6 Основывается на протоколе IP для передачи и маршрутизации. 7 - Сегмент заворачивается в IP пакет.7 +TCP сегмент заворачивается в IP пакет. 8 8 ))) 9 9 |(% style="width:546px" %)Сегмент|(% style="width:960px" %)Блок единичного пакета/сообщения. 10 +Сегмент содержит данные и заголовок необходимой для работы информацией. 10 10 |(% style="width:546px" %)Клиент и Сервер|(% style="width:960px" %)TCP сервер слушает определенный сокет (привязка к IpAddress + Port). 11 11 TCP клиент подключается к серверу, устанавливается соединение. 12 12 |(% style="width:546px" %)Логическое соединение|(% style="width:960px" %)((( 13 13 Между 2 сторонами устанавливается логическое соединение, в рамках которого идет передача данных. 14 14 15 -При этом соединение само по себе не имеет механизмов для определения разрыва сети, падения приложения одной из сторон или падения сер вера.16 +При этом соединение само по себе не имеет механизмов для определения разрыва сети, падения приложения одной из сторон или падения хоста. В некоторых случаях имеет смысл реализации пульса для отслеживания состояния соединения. 16 16 18 +Взаимодействие 19 + 17 17 1. Установка соединения 18 18 1. Обмен данными. 19 19 1. Закрытие соединения. 20 20 ))) 21 -|(% style="width:546px" %)Потоков ый(stream) передача|(% style="width:960px" %)(((22 - Отправкаиполучениеданныхидут в виде потока байт.24 +|(% style="width:546px" %)Потоковая (stream) передача|(% style="width:960px" %)((( 25 +Данные раскладываются в tcp сегменты, но стороны оперирует интерфейсами в виде потока байт. 23 23 24 24 Необходима реализация механизмов для определения границ сообщения в передаваемых данных 25 25 ( ... ... @@ -32,6 +32,8 @@ 32 32 |(% style="width:546px" %)Гарантия доставки сегментов.|(% style="width:960px" %)((( 33 33 При отправке данных (сегментов) каждая сторона фиксирует статус отправки и ожидает подтверждения. Если подтверждение не происходит в течении определенного времени, то один или группа сегментов (зависит от реализации) посылается повторно. 34 34 38 +Возможно ситуация, когда сегмент подтверждения может быть утерян (или же еще не успел прийти), и сегмент будет выслан повторно, но такое поведение не приведет к повреждению передаваемых данных. 39 + 35 35 Отметим, что возможна ситуация, когда сегменты достигли клиента, отправитель получил подтверждение, но приложение или хост упали, не выполнив окончательную обработку данных из этих сегментов. 36 36 ))) 37 37 |(% style="width:546px" %)Гарантия порядка получения (за счет нумерации данных)|(% style="width:960px" %)((( ... ... @@ -41,7 +41,8 @@ 41 41 ))) 42 42 |(% style="width:546px" %)Гарантия целостности данных за счет контрольной суммы|(% style="width:960px" %)Перед отправкой в метаданные сегмента включается блок с контрольной суммой данных. При получении сегмента, контрольная сумма сверяется для проверки изменения содержимого сегмента. 43 43 |(% style="width:546px" %)Окно приема|(% style="width:960px" %)Можно представить в виде некоторого буфера двигающегося вдоль данных по мере их приема. 44 -Если сегмент не попадает в окно приема то он отбрасывается. 49 +Если сегмент не попадает в окно приема, то он отбрасывается. 50 +Если сегмент приходит повторно (данный сегмент уже получен), то он отбрасывается. 45 45 Если сегмент попадает в окно приема, но не является следующим по порядку, то он буферизуется, до того момента, как будут получены расположенные по порядку перед ним сегменты (и будет выведен в поток чтения после них). 46 46 |(% style="width:546px" %)Окно передачи|(% style="width:960px" %)Можно представить в виде некоторого буфера двигающегося вдоль данных по мере их передачи. 47 47 Определяет, какие сегменты можно отправить в текущий момент времени.