
TCP
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
__________________________________________________________
Факультет СиСС
Кафедра Сети связи и системы коммутации
Задание № 3
по дисциплине «Мультисервисные системы и сети»
на тему:
«Трассировка ТСР соединения»
Выполнил: ст. гр. БЗС2002
Ломакин А. А.
Проверил: доц. каф. ССиСК
Деарт В. Ю.
(Весенний семестр)
Москва 2023
1. Задание
Установить программу – анализатор трафика WireShark. Изучить ее возможности, в частности, возможности фильтрации.
Снять процесс обращения к любому WEB сайту. Отфильтровать трассировку.
Определить, сколько ТСР соединений было организовано вашим браузером при взаимодействии с сервером. Пояснить в чем преимущество данного способа загрузки по сравнению с загрузкой всех объектов в пределах одного ТСР соединения.
Выделить все сессии по отдельности (по номерам портов).
Определить, сколько объектов было передано в каждой сессии.
Рассчитать объем информации в байтах для каждого объекта.
Проанализировать механизм изменения размера окна Window в пределах сессии.
Пояснить всегда ли передача пакетов осуществляется до заполнения буфера.
Если в трассе зафиксированы потери пакетов, то пояснить, как они были восстановлены (сколько Dup_Ack_XXX#N прошло до момента повторения пакета).
2. Исходные данные
WEB сайт: http://government.ru
Браузер: Microsoft Edge
Рисунок 1 – главная страница сайта
3. Выполнение
Используя фильтр «dns» в программе WireShark получим ip-адрес сайта:
В данном процессе обращения к сайту используется ip: 95.173.136.163
Для выборки необходимых данных используем фильтр:
tcp and ip.addr == 95.173.136.163
Получим полную трассировку:
Рисунок 2 - Результат трассировки сайта http://government.ru
В процессе обращения к сайту было организовано 2 TCP соединения с присвоением портов 59053 и 59055, но для загрузки данных использовался только порт 59053.
Преимуществом использования нескольких TCP-соединений при загрузке ресурсов веб-страницы является возможность ускорить процесс загрузки.
При загрузке браузером всех ресурсов в пределах одного TCP-соединения можно столкнуться с проблемой «бутылочного горлышка», когда один из запросов будет ждать подтверждения передачи, что затруднит загрузку других ресурсов. Это приведет к задержкам при загрузке страницы.
Использование нескольких TCP-соединений позволит загружать сразу несколько ресурсов, а также поможет улучшить отказоустойчивость, т.к. если одно из соединений разорвется, другие смогут продолжить передачу данных.
Выделим все сессии по отдельности. Для первой используем фильтр: tcp and ip.addr == 95.173.136.163 and tcp.port == 59053
Рисунок 3 - Результат трассировки с фильтром на порт 59053
Для второй используем фильтр: tcp and ip.addr == 95.173.136.163 and tcp.port == 59055
Рисунок 4 - Результат трассировки с фильтром на порт 59055
Проанализируем каждую сессию по отдельности.
1. Сессия на порт 59053:
В пределах сессии на порт 59053 браузер послал управляющий пакет SYN и выбрал порт 59053. Сервер ответил управляющим сообщением SYN, ACK и получил в ответ ACK от браузера (трехстороннее рукопожатие TCP). Установился TCP коннект. Браузер посылает HTTP GET и запрашивает образ первой страницы – какие объекты на сайте, их размещение и т.д. После подтверждения ACK от сервера начинается передача. От сервера приходит пакет длиной 447 байт, после пакет длиной 1380 байт, после пакет длиной 1380 байт. Потом приходит ACK от браузера – сумма всех переданных сервером пакетов на 3208 байт. Аналогично описанному происходит передача пакетов вплоть до сообщения 200 OK от сервера по протоколу HTTP, после чего браузер отправляет ACK с суммой всех принятых пакетов длиной 66400 байт. После этого браузер запрашивает switcher (инструмент в html, судя по всему, используемый для перелистывания картинок в окошке на странице) по протоколу HTTP, но получает в ответ ошибку от сервера, и, в конце концов, браузер отправляет финальный ACK с суммой всех принятых пакетов длиной 66605 байт.
В результате TCP-сессии с портом 59053 был передан один большой объект размером 66606 байт.
В пределах TCP-сессии с портом 59053 окно Window в пакетах от сервера изначально равняется 30336 и неизменно до конца сессии, а в пакетах от браузера окно Window изначально равняется 131072, изменяясь в конце на 130816.
В основном передача пакетов осуществляется практически до заполнения буфера, после чего идет приостановка до того момента, когда принимающая сторона не освободит достаточно места в буфере для продолжения передачи. В нашем случае объект имеет размер, не превышающий окно Window браузера, поэтому мы были не в состоянии заполнить буфер.
2. Сессия на порт 59055:
В пределах сессии на порт 59055 браузер послал управляющий пакет SYN и выбрал порт 59055. Сервер ответил управляющим сообщением SYN, ACK и получил в ответ ACK от браузера (трехстороннее рукопожатие TCP). Но, видимо, в процессе установки TCP-коннекта произошла ошибка и был потерян один из пакетов. До момента повторения пакета прошел 1 Dup_ACK.
В TCP-сессии с портом 59055 не было передано ни одного объекта.
В пределах TCP-сессии с портом 59055 окно Window в пакетах от сервера изначально равняется 29200, изменяясь в конце на 29312. В пакетах от браузера окно Window изначально равняется 131072 и неизменно до конца.