Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
download_and_use_it.docx
Скачиваний:
4
Добавлен:
29.07.2019
Размер:
176.01 Кб
Скачать

4.3 Исследование таймера "оставайся в живых"

Выполненные действия, в соответствии с поставленным алгоритмом (п. 2.3), и результаты исследования, включая подробные комментарии, приведе-ны в листинге 5.

Листинг 5 – Исследование таймера "оставайся в живых"

//запускаем сервер. Параметр –К включает опцию "оставайся в живых"

anton@ubuntu:~$ sock -K -s -v 1111

//Клиент подключился

connection on 192.168.1.2.1111 from 192.168.1.3.57341

TCP_MAXSEG = 1448

now 02:56:00

hello client

lets start

//Больше сообщений не отсылаем

//в 08:02:16 отключили сетевой кабель от сервера

//спустя около 3 часов вернулись к машине и увидели

//ошибку которая показывает, что клиент не подтвердил запрос "оставайся в //живых"

read error: Connection timed out

//Включаем клиент

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -v 192.168.1.2 1111

//подключились к серверу

connected on 192.168.1.3.57341 to 192.168.1.2.1111

TCP_MAXSEG = 1448

//обмениваемся сообщениями

now 02:56:00

hello client

lets start

//т.к. опция –К не была включена, то клиент не будет проверять состояние //сервера

//Включаем tcpdump //Обмен сообщениями

02:56:31.883954 IP (tos 0x0, ttl 64, id 41779, offset 0, flags [DF], proto TCP (6), length 65)

anton-HP-Pavilion-dv6-Notebook-PC.local.57341 > ubuntu.local.1111: Flags [P.], cksum 0x778d (correct), seq 3042185411:3042185424, ack 162283466, win 913, options [nop,nop,TS val 5947975 ecr 2883874], length 13

02:56:31.884581 IP (tos 0x0, ttl 64, id 16104, offset 0, flags [DF], proto TCP (6), length 52)

ubuntu.local.1111 > anton-HP-Pavilion-dv6-Notebook-PC.local.57341: Flags [.], cksum 0x2cd9 (correct), seq 1, ack 13, win 91, options [nop,nop,TS val 2887542 ecr 5947975], length 0

02:58:45.958056 IP (tos 0x0, ttl 64, id 41781, offset 0, flags [DF], proto TCP (6), length 63)

anton-HP-Pavilion-dv6-Notebook-PC.local.57341 > ubuntu.local.1111: Flags [P.], cksum 0xacfd (correct), seq 13:24, ack 14, win 913, options [nop,nop,TS val 5981493 ecr 2889451], length 11

//обратить внимание на время отправки последнего сообщения

02:58:45.958931 IP (tos 0x0, ttl 64, id 16106, offset 0, flags [DF], proto TCP (6), length 52)

ubuntu.local.1111 > anton-HP-Pavilion-dv6-Notebook-PC.local.57341: Flags [.], cksum 0x26e2 (correct), seq 14, ack 24, win 91, options [nop,nop,TS val 2921062 ecr 5981493], length 0

//через 2 часа запрос "оставайся в живых"

04:58:50.824099 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has anton-HP-Pavilion-dv6-Notebook-PC.local tell ubuntu.local, length 28

04:58:50.824127 ARP, Ethernet (len 6), IPv4 (len 4), Reply anton-HP-Pavilion-dv6-Notebook-PC.local is-at cc:52:af:60:f8:65 (oui Unknown), length 28

//прошло ещё 2 часа. запрос "оставайся в живых"

06:58:50.688502 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has anton-HP-Pavilion-dv6-Notebook-PC.local tell ubuntu.local, length 28

06:58:50.688525 ARP, Ethernet (len 6), IPv4 (len 4), Reply anton-HP-Pavilion-dv6-Notebook-PC.local is-at cc:52:af:60:f8:65 (oui Unknown), length 28

//Больше запросов "оставайся в живых" не наблюдалось, т.к. tcpdump был //запущен на стороне клиента

Заключение: Результат эксперимента удовлетворяет ожидаемому результату.

4.4 Исследование таймера 2MSL

Выполненные действия, в соответствии с поставленным алгоритмом (п. 2.4), и результаты исследования, включая подробные комментарии, приведе-ны в листинге 6.

Листинг 6 – исследование таймера 2MSL

//Запускаем сервер

anton@ubuntu:~$ sock -v -s 1111

//клиент подключился

connection on 192.168.1.2.1111 from 192.168.1.3.57311

TCP_MAXSEG = 1448

//Отключаем сервер командой Ctrl+C

^C time 00:00:00:00 //делаем попытки запустить сервер на том же порту, на котором он работал до //отлючения

anton@ubuntu:~$ sock -v -s 1111 time 00:00:04:55

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:10:32

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:14:41

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:19:85

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:26:14

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:31:98

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:38:02

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:44:75

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:47:45

can't bind local address: Address already in use

anton@ubuntu:~$ sock -v -s 1111 time 00:00:52:51

can't bind local address: Address already in use

//сервер запустился

anton@ubuntu:~$ sock -v -s 1111 time 00:01:01:31

connection on 192.168.1.2.1111 from 192.168.1.3.57313

TCP_MAXSEG = 1448

//запускаем клиент

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -v 192.168.1.2 1111

//клиент подключился к серверу

connected on 192.168.1.3.57311 to 192.168.1.2.1111

TCP_MAXSEG = 1448

//соединение прервано из-за выключения сервера

connection closed by peer

//запускаем сервер заново

anton@ubuntu:~$ sock -v -s 1111

//клиент подключился

connection on 192.168.1.2.1111 from 192.168.1.3.57311

TCP_MAXSEG = 1448

//клиент отключился

connection closed by peer

//Запускаем клиент

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111

//клиент подключился к серверу. Порт клиента 57313

connected on 192.168.1.3.57313 to 192.168.1.2.1111

TCP_MAXSEG = 1448

//отключаем клиент

^C time 00:00:00:00

//запускаем клиент заново на 57313 порту

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:08:05

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:13:21

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:17:11

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:20:73

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:24:99

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:28:22

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:32:31

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:37:16

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:41:78

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:45:57

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:51:03

bind() error: Address already in use

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:00:56:63

bind() error: Address already in use

//Порт освободился, однако сервер выключен, подключение невозможно

anton@anton-HP-Pavilion-dv6-Notebook-PC ~/TCPIP_Chat $ sock -b57313 -v 192.168.1.2 1111 time 00:01:00:44

connect() error: Connection refused

Заключение: отрезок времени между отключением и запуском заново у клиента и сервера приблизительно одинаковое, расхождение из-за человеческого фактора. MSL равно половине интервала между выключением и запуском сервера или клиента, в эксперименте . Результат эксперимента удовлетворяет ожидаемому результату.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]