Home

Page 72
Page 72
background image

 

 
Сегменты  с  номерами 1-3 должны  быть  полностью  понятны  студентам,  рассматриваем 

сегмент 4. В  этом  сегменте  клиент  передает  серверу 1460 байт  данных,  относительный  номер 
первого байта в этой последовательности – 1. Следовательно, ожидаемая квитанция на этот сегмент 
должна иметь поле Acknowledged Number равный 1461. В сегменте 5 клиент передает серверу еще 
1460 байт данных, таким образом клиент ожидает, что сервер подтвердит ему получение уже 2920 
байт  данных,  для  этого  после Acknowledged Number сегмента  с  квитанцией  должно  быть  равно 
2921.  Сервер  мог  бы  послать  две  квитанции  в  ответ,  с  номерами  подтверждений 1461 и 2921, но 
вместо этого сервер шлет в ответ единственный сегмент 6, в котором поле Acknowledged Number 
принимает  относительное  значение 2921. Что  это  значит?  Можно  ли  предполагать,  что  сегмент 
номер 4 НЕ  подтвержден,  а  сегмент  номер 5 подтвержден?  Вспомним,  что  мы  говорили  о 
квитировании  в TCP: посланный  в  поле Acknowledged Number номер  подтверждения  говорит  об 
успешном приеме ВСЕХ байт, не включая байт с номером, равным Acknowledged Number (так как 
Acknowledged Number это номер ОЖИДАЕМОГО байта). Отсюда следует, что получение сегмента 
номер 6 является  для  клиента  квитанцией  и  на  сегмент 4 и  на  сегмент 5. Крайне  важно,  чтобы 
студенты хорошо поняли данный принцип. Аналогично подвергаем анализу сегменты 7, 8, 9. 

Теперь необходимо продемонстрировать на практике процедуру закрытия TCP соединения. 

Для  этого  можно  воспользоваться  предыдущим  файлом TCP7.cap – утилита sock, работающая  в 
режиме  клиента,  записывающего  данные  на  сервер  разрывает  соединение  с  сервером,  когда  все 
необходимые  данные  записаны.  Т.е.  в  прошлом  примере  после  передачи  четырех  сегментов,  в 
каждом из которых передается порция данных размером 1460 байт клиент разрывает соединение с 
сервером. Отметим, что в момент, когда передача необходимых данных окончена, относительный 
Sequence Number клиента равен 5841 (так как передано 2х2920 байт, первый из которых имел номер 
1), а относительный Sequence Number сервера равен 1, так как сервер вообще не передавал данные в 
соединение – только квитанции. Убедимся в этом, проанализировав последнюю квитанцию сервера, 
сегмент 9. 
 


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.