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

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

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

3 ответа3

2

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

"Поток TCP" в этом контексте - это совокупность сообщений приложения, которые были переданы в диалоге. Например, поток в вашей ссылке показывает внутренний хост, на котором выполняется программа, поддерживающая UPNP , с запросом маршрутизатора переадресовать для него порт 5000 и ответ маршрутизатора. То, что вы на самом деле, является полем данных сегмента TCP. По этой причине я думаю, что он плохо назван. Вся информация TCP была удалена, оставив только сообщения, которые программное обеспечение на обоих хостах отправляло и получало. Это могут быть HTTP GET и ответы, FTP PUT, SMTP MAIL или любой другой родной язык приложения.

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

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

1

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

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

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .