【问题标题】:Calculating TCP Header Length?计算 TCP 标头长度?
【发布时间】:2019-04-29 07:57:24
【问题描述】:

谁能指导我以下内容?

我正试图找出答案,如 blogmalwarejake[.]blogspot.com/2015/05/packet-analysis-practice-part-3.html 中的第一个问题所示。

根据找到的样本包

什么是嵌入式协议,目的端口,以及不包括协议头的数据量?

    0x0000:  4500 004c 1986 4000 4006 9cba c0a8 0165
    0x0010:  c0a8 01b6 0015 bf3c dad0 5039 2a8c 25be
    0x0020:  8018 0072 06ec 0000 0101 080a 008a 70ac

上述问题的答案如上。

    Embedded protocol: TCP
    Total packet length:  76
    IP Header length:  20
    Protocol header length: 32
    Data length: 24
    Dest Port: 0xbf3c (48956)

除了Protocol Header LengthData Length之外,我设法得到了所有其他答案。

TCP Header Length 通常不是 20 字节,扩展名是 40 字节吗?但是上述数据包中的 32 个字节是如何得出的呢?我不明白。

谢谢!

【问题讨论】:

    标签: networking tcp frame wireshark network-protocols


    【解决方案1】:

    这是直接来自RFC的TCP Header:

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          Source Port          |       Destination Port        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        Sequence Number                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    Acknowledgment Number                      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Data |           |U|A|P|R|S|F|                               |
       | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
       |       |           |G|K|H|T|N|N|                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Checksum            |         Urgent Pointer        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    Options                    |    Padding    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             data                              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    

    0015bf3c 是端口。 值dad0 50392a8c 25be 是序列号/确认号。

    现在看看接下来的 4 位。偏移量0x20 的那些。该字节的值为0x80,表示最高4位为1000。它们对应“数据偏移”字段:

    数据偏移量:4 位

    TCP Header 中 32 位字的数量。这表明在哪里 数据开始。 TCP 标头(甚至包括选项)是一个 32 位长的整数。

    所以1000 表示标头由 8 x 32 位字组成,即 8 x 4 字节 = 32 字节。

    【讨论】:

    • 你好麦芽,非常感谢。完全明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多