-1

我正在为这个主题练习问题,我遇到了这个问题:

查看下面包含 TCP 段的 IP 数据包的 40 字节转储(十六进制)。

45 20 03 c5 78 06 00 00 34 06 ca 1f d1 55 ad 71 c0 a8 01 7e
00 50 9a 03 3e 64 e5 58 df d0 08 b3 80 18 00 de 00 02 00 00

识别 IP 和 TCP 标头的所有字段。

资料来源: http ://www.eng.utah.edu/~cs5480/homeworks/hw3_soln.pdf 的第一季度

现在我面前确实有 IPv4 的数据报格式布局。我不明白的是,在解决方案中它说标头长度为 20 字节,但根据格式,位 4-7 对应于标头长度,即 0x03c5 = 965 字节。然而,在解决方案中,965bytes 是总数据报长度。

有人可以解释一下吗?

4

3 回答 3

2

看看这个转储你的标题

https://metacpan.org/pod/distribution/Data-HexDump-Range/scripts/hdr_examples.pod#IPV4-header

于 2012-09-14T09:18:34.323 回答
1

数字!= 位。

假设从零开始计数,0x03c5 是数据中的十六进制数字 4-7。

位 4-7 将是较早出现的十六进制 5。此标头值表示标头中 32 位字的数量,因此您必须乘以 4 才能得到 20 作为字节数。

于 2012-04-27T09:57:16.793 回答
0

根据链接的PDF文档:

IP header: IP version 4, Header Length: 20 bytes, ToS = 20, Total Length = 0x03c5 =
965 bytes, ...

对我来说似乎很清楚 - 20 字节的标头长度,965 字节的总长度(与Wikipedia 上的 IPv4 标头非常匹配)。

于 2012-04-27T09:55:27.453 回答