TCP 段中的实际内容在哪里

TCP 段中的实际内容在哪里

当我通过电子邮件发送某件内容、下载程序或通过网络执行其他任何操作时,实际内容位于段中的哪个位置?如果我通过电子邮件发送 20KB 的 Word 文档,并且段中的最大数据字段大小为 1500 字节,这是否意味着无论将文档发送到何处,都需要大约 14 个段?

我认为我了解 OSI 模型,并且对 IP 协议有相当的了解。我认为我理解协议堆栈中每个连续层的报头包装概念。我无法得到明确答案的是 TCP 段中的实际内容在哪里?那是数据报吗?

也许我问的事实证明我不知道......

非常感谢。

答案1

如果不存在选项报头,则数据位于偏移量 160 处,如果存在 IP 选项报头,则数据位于偏移量 160 处(32 的倍数)。数据部分一直延伸到数据包末尾。由于路径上的 MTu 设置不同,数据包的大小可能不同,因此高协议数据部分被划分到的确切数据包数量取决于具体情况。

“数据报”的大小是 IP 头 + 数据。

你说的最大数据字段大小是 1500b 是错误的。这是整个包括报头。数据字段大小根据报头长度而变化,如上所述。

答案2

内容被分解成块并放入数据包的“数据”部分。该数据部分的偏移量在另一个答案中提到。

这值得一读: http://en.wikipedia.org/wiki/TCP_packet#TCP_segment_structure

TCP/IP 相当复杂;见证: http://www.tcpipguide.com/free/t_toc.htm

这是我在http://concept51.co.uk/in_how_networks.html一个 TCP/IP 数据包

答案3

请参阅 RFC 793(http://www.ietf.org/rfc/rfc793.txt)。

实际的“数据”(即您的文档)包含在数据包的 TCP 段(TCP 报头之后)中。数据包中的数据大小由 TCP 最大段大小 (MSS) 决定。

我建议下载像 Wireshark 这样的工具(http://www.wireshark.org) 并在您发送文件时捕获网络流量。Wireshark 将为您解释数据包(您甚至可以右键单击包含文件数据的数据包之一并选择“跟踪 TCP 流”)。

您还可以查看 Wireshark 为您解码和解释的每个连续数据包头。这应该可以让您更好地了解通过 TCP 发送数据时发生的情况。

哈特哈尔

相关内容