Изменения документа TCP
Редактировал(а) Alexandr Fokin 2022/12/12 12:13
<
>
отредактировано Alexandr Fokin
на 2022/07/09 17:41
на 2022/07/09 17:41
отредактировано Alexandr Fokin
на 2022/07/10 01:34
на 2022/07/10 01:34
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -14,7 +14,7 @@ 14 14 |(% style="width:215px" %)Клиент и Сервер|(% style="width:1307px" %)TCP сервер слушает определенный сокет (привязка к IpAddress + Port). 15 15 TCP клиент подключается к серверу, устанавливается соединение. 16 16 |(% style="width:215px" %)Логическое соединение|(% style="width:1307px" %)((( 17 -Между 2 сторонами устанавливается логическое соединение, в рамках которого идет передача данных. 17 +Между 2 сторонами устанавливается логическое соединение, в рамках которого идет передача данных. Соединение является дюплексным. 18 18 19 19 При этом соединение само по себе не имеет механизмов для определения разрыва сети, падения приложения одной из сторон или падения хоста (другая сторона вполне может еще некоторое время предпринимать попытки выполнить отправку или получение данных, в некоторых случаях (в момент падения приложения, после перезагрузки хоста) разрыв сессии может быть обнаружен). В некоторых случаях имеет смысл реализации пульса для отслеживания состояния соединения. 20 20 ... ... @@ -41,7 +41,11 @@ 41 41 42 42 Возможно ситуация, когда сегмент подтверждения может быть утерян (или же еще не успел прийти), и сегмент будет выслан повторно, но такое поведение не приведет к повреждению передаваемых данных. 43 43 44 +---- 45 + 44 44 Отметим, что возможна ситуация, когда сегменты достигли клиента, отправитель получил подтверждение, но приложение или хост упали, не выполнив окончательную обработку данных из этих сегментов. 47 + 48 +При отправке данных через сокет, возврат управления из функции отправки не означает, что данные были доставлены или даже отправлены. Данные все еще могут находиться в буфере и ожидать отправки (например ожидать заполнения блока). Задержка возврата управления может быть вызвана переполнением буфера отправки. 45 45 ))) 46 46 |(% style="width:215px" %)Гарантия порядка получения 47 47 (за счет нумерации данных)|(% style="width:1307px" %)((( ... ... @@ -52,6 +52,7 @@ 52 52 |(% style="width:215px" %)Гарантия целостности данных 53 53 (за счет контрольной суммы)|(% style="width:1307px" %)Перед отправкой в заголовок сегмента включается блок с контрольной суммой данных. При получении сегмента, контрольная сумма сверяется для проверки изменения содержимого сегмента. 54 54 |(% style="width:215px" %)Окно приема|(% style="width:1307px" %)Можно представить в виде некоторого буфера двигающегося вдоль данных по мере их приема. 59 +Обозначает ограничение буфера памяти приемника. 55 55 Если сегмент не попадает в окно приема, то он отбрасывается. 56 56 Если сегмент приходит повторно (данный сегмент уже получен), то он отбрасывается. 57 57 Если сегмент попадает в окно приема, но не является следующим по порядку, то он буферизуется, до того момента, как будут получены расположенные по порядку перед ним сегменты (и будет выведен в поток чтения после них).