Связь между TCP-диалогами и TCP-потоками в Wireshark

Связь между TCP-диалогами и TCP-потоками в Wireshark

Я читал оРазговорыиTCP-потокино я все еще не совсем уверен, как они соотносятся друг с другом, если находятся на одном слое.

Для разных уровней мне ясно, что, например, IP-диалог может состоять из нескольких TCP-потоков.

Может ли TCP-диалог состоять из нескольких TCP-потоков? И наоборот, может ли TCP-поток содержать несколько TCP-диалогов? Почему?

решение1

В этом случае А.Беседапроисходит на уровне TCP (транспорт) и является синонимом TCP-соединения между двумя портами.

В этом контексте "TCP-поток" — это агрегация сообщений приложений, которые были переданы в разговоре. Например, поток в вашей ссылке показывает внутренний хост, на котором запущенУПНП-способная программа, запрашивающая маршрутизатор для переадресации порта 5000 для нее, и маршрутизатор отвечает. Так что то, что вы на самом деле есть поле данных сегмента TCP. По этой причине я думаю, что это неудачное название. Вся информация TCP была удалена, остались только сообщения, которые программное обеспечение на обоих хостах отправляет и получает. Они могут бытьHTTPGET и ответы,ФТПPUT,SMTPMAIL или собственный командный язык любого другого приложения.

Лично я не уверен, что мне нравится терминология Wireshark в этой документации, но она хорошо служит их перспективе как анализатора протоколов. Приложение видит соединение сокетов между двумя конечными точками как поток ввода-вывода, независимо от базового протокола.

Кстати, я бы сказал, что не согласен с тем, что IP имеет «разговоры». IP не переносит данные, необходимые для поддержания виртуального канала, и оставляет это на более высокий уровень. TCP обрабатывает строгий канал, а UDP обрабатывает очень свободный, оставляя упорядочивание, исправление ошибок и управление потоком на усмотрение своего приложения.

решение2

ТКПразговоры и TCP-потокидолженбыть на одном уровне, но, по крайней мере, в некоторых версиях Wireshark они используют разный код для определения того, какие пакеты являются частью разговора/потока, поэтому они могут давать разные ответы.

Например, один из них может рассматривать весь трафик между двумя конечными точками (пары IP-адрес/порт) как часть одного и того же разговора/потока, даже если одно TCP-соединение между этими двумя конечными точками закрывается, а другое случайно открывается между теми же двумя конечными точками в пределах одного захвата (маловероятно, поскольку порты, как правило, не используются повторно немедленно, но не невозможно), тогда как другой может распознать закрытие соединения и отобразить их как отдельные разговоры/потоки.

Если они не используют один и тот же код, то это, вероятно, ошибка, но, возможно, ее еще никто не исправил.

Очевидно,ИС«беседы», которые ведутся между двумяИСконечные точки (два IP-адреса) отличаются от TCP-диалогов/потоков; как вы заметили, между двумя IP-конечными точками может быть несколько TCP-диалогов, UDP-диалогов и т. д., и, таким образом, несколько TCP/UDP-диалогов и т. д. в одном и том же IP-диалоге.

решение3

Просто взглянув на примеры на страницах, на которые вы ссылаетесь, не кажется, что эти термины функционально различаются. Оба, похоже, представляют собой длину одного сетевого соединения.

Страница разговоров не суммирует несколько соединений, она фактически показывает каждое из них по отдельности, с указанием продолжительности и количества байтов. Окно потока просто показывает детали фактически отправленных данных.

Связанный контент