美文网首页
http报文在各层的长度分析-wireshark报文实战

http报文在各层的长度分析-wireshark报文实战

作者: tinyvampirepudg | 来源:发表于2022-03-02 16:44 被阅读0次

    我们先来看张图,从上往下对应的是OSI七层模型。


    在这里插入图片描述

    可以看出,传输层给上层数据添加了TCP头部,IP层给TCP层的数据添加了IP头部,数据链路层给数据添加了MAC头部。

    接下来,我们通过分析wireshark抓到的http报文,实地分解下http原始报文的长度,以及最终在物理层传递的Frame的长度,中间经过了多少变动。我们实战探究下。

    我拿出一个祖传的wireshark报文,如下图所示,我们http层的数据和头部的总长度是931bytes,但是最终到了数据链路层后,传递的包长度变成了了985bytes。这期间它添加了哪些数据呢?

    在这里插入图片描述
    http的数据是699bytes;http头部是232bytes;tcp头部是20bytes;ip头部是20bytes;数据链路层头部是14bytes。
    加起来总共是985bytes。 699 + 232 + 20 + 20 + 14 = 985

    我们依次来验证下。

    ①先看下http原数据:


    在这里插入图片描述

    感兴趣的同学可以数一下下面的字节数,看是否是699bytes。

    ②接着看http头部的长度:

    在这里插入图片描述
    如图,数一下会得出http的header长度是232bytes。另外,请求头里面的Content-Length的数据长度,是不包含header的长度的。

    ③接着看下tcp头部的长度:


    在这里插入图片描述

    另外,如下图所示,这个Len指的是上层的报文长度,不包含tcp header的长度。


    在这里插入图片描述
    ④接着看ip头部的长度:
    在这里插入图片描述

    这个很直白,一看就懂。

    ⑤接着看下数据链路层的头部长度:


    在这里插入图片描述

    这个没有数据直接指明,我们数一下是14bytes。

    至此我们分析完了报文的长度。

    tcp层、ip层的header长度最少都是20bytes,数据链路层的是14bytes,加在一起就是54bytes。

    至此你应该对网络分层对数据包的影响,会有一个比较直观的看法了。

    如果喜欢记得点赞哦。

    相关文章

      网友评论

          本文标题:http报文在各层的长度分析-wireshark报文实战

          本文链接:https://www.haomeiwen.com/subject/ouqerrtx.html