Тайм-ауты и повторные передачи TCP

         

Удаленный конец вышел из строя и перезагрузился



Удаленный конец вышел из строя и перезагрузился

В этом примере мы увидим, что произойдет, если сервер выйдет из строя и перезагрузится. Первоначальный сценарий такой же как и раньше, однако после того, как мы убедились, что соединение функционирует, мы отсоединили сервер от Ethernet, перезагрузили его и затем вновь подсоединили его к Ethernet. Мы ожидаем, что следующая проба "оставайся в живых" сгенерирует сброс (reset) от сервера, потому что сервер сейчас ничего не знает об этом соединении. Ниже приводится интерактивная сессия:


bsdi % sock -K svr4 echo опция -K для включения "оставайся в живых"
hi there проверяем, что соединение функционирует
hi there это отражается эхом с удаленного конца
здесь сервер перезагружен, пока отсоединен кабель Ethernet
read error: Connection reset by peer

На рисунке 23.2 показан вывод команды tcpdump. (Мы удалили все связанное с установлением соединения и объявлением окна.)


1 0.0 bsdi.1057 > svr4.echo: P 1:10(9) ack 1
2 0.006406 ( 0.0064) svr4.echo > bsdi.1057: P 1:10(9) ack 10
3 0.176922 ( 0.1705) bsdi.1057 > svr4.echo: . ack 10

4 7200.067151 (7199.8902) arp who-has svr4 tell bsdi
5 7200.069751 ( 0.0026) arp reply svr4 is-at 0:0:c0:c2:9b:26
6 7200.070468 ( 0.0007) bsdi.1057 > svr4.echo: . ack 10
7 7200.075050 ( 0.0046) svr4.echo > bsdi.1057: R 1135563275:1135563275(0)



Содержание раздела