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

我们先来看张图,从上往下对应的是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。

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

如果喜欢记得点赞哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tinyvampirepudge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值