Wireshark 中 TCP 对话和 TCP 流之间的关系

Wireshark 中 TCP 对话和 TCP 流之间的关系

我读过对话TCP 流但如果它们位于同一层,我仍然有点不确定它们彼此之间有何关系。

对于不同的层,我很清楚,例如 IP 对话可以由多个 TCP 流组成。

一个 TCP 会话可以由多个 TCP 流组成吗?相反,一个 TCP 流可以包含多个 TCP 会话吗?为什么?

答案1

在这种情况下,A对话发生在 TCP 级别(传输层),与两个端口之间的 TCP 连接同义。

在此上下文中,“TCP 流”是会话中传递的应用程序消息的集合。例如,链接中的流显示运行统一网络协议程序,要求路由器转发端口 5000,然后路由器响应。所以你实际上是 TCP 段的数据字段。因此我认为它的名字不太恰当。所有 TCP 信息都被剥离了,只留下两台主机上的软件发送和接收的消息。它们可能是HTTPGET 和响应,FTP看跌期权,邮件传输协议MAIL,或任何其他应用程序的本机命令语言。

就我个人而言,我不确定我是否喜欢本文档中 Wireshark 的术语,但它确实很好地体现了他们作为协议分析器的观点。无论底层协议是什么,应用程序都会将两个端点之间的套接字连接视为 IO 流。

顺便说一句,我不同意 IP 具有“对话”功能。IP 不携带维护虚拟电路所需的数据,而是将其留给上层。TCP 处理严格的电路,而 UDP 处理非常松散的电路,将排序、错误更正和流量控制留给其应用程序。

答案2

TCP对话和 TCP 流应该处于同一级别,但是,至少在 Wireshark 的某些版本中,它们使用不同的代码来识别哪些数据包是会话/流的一部分,因此它们可能会给出不同的答案。

例如,其中一个可能将两个端点(IP 地址/端口对)之间的所有流量视为同一对话/流的一部分,即使这两个端点之间的一个 TCP 连接被关闭,而另一个 TCP 连接恰好在同一捕获中的相同两个端点之间打开(不太可能,因为端口不会立即被重用,但并非不可能),而另一个可能识别出正在关闭的连接并将它们显示为单独的对话/流。

如果他们使用的不是相同的代码,那么这可以说是一个错误,但可能是尚未有人修复的错误。

明显地,知识产权“对话”,指的是两个人之间的知识产权端点(两个 IP 地址)与 TCP 对话/流不同;正如您注意到的,两个 IP 端点之间可以有多个 TCP 对话、UDP 对话等,因此同一个 IP 对话中可以有多个 TCP/UDP/等对话。

答案3

仅查看您链接的页面上的示例,这两个术语在功能上似乎并没有什么不同。两者似乎都是单个网络连接的长度。

对话页面不会汇总多个连接,它实际上会显示每个连接,包括时间长度和字节数。流窗口仅显示实际发送数据的详细信息。

相关内容