首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助理解数据包分析(Wireshark)

需要帮助理解数据包分析(Wireshark)
EN

Server Fault用户
提问于 2016-05-26 21:08:37
回答 1查看 212关注 0票数 1

下面的快照捕获包含对web服务器的单个HTTP请求,其中客户端web浏览器从服务器请求一些文件,服务器返回HTTP/1.1 200 (OK)响应,其中包括请求的文件:

这就是我所理解的!

Packet# 4连接建立后,客户端启动push函数并发送包含来自服务器的文件的客户端请求的有效负载(HTTP)!

在服务器端,接收到有效载荷它会增加ACK (有效负载大小为207),因此它将变成208。

之后,在packet#7服务器上响应客户端的请求,for.It用1368字节发送有效负载。这发生了两次,因为我们可以看到seq号码为2737。

到目前为止,如果我错了,请纠正我。

来自packet#9

为什么序列号在packet#9上更改为208和packet#9。客户端是否有任何传输?

在packet#11上,序列号如何再次更改为3680和ack=343。

有人能帮我在packet#9之后解释一下吗

EN

回答 1

Server Fault用户

发布于 2016-05-27 08:19:52

我认为你只需要记住这两个关键的想法:

  1. 序列号是数据包的第一个字节,而不是长度。
  2. 确认号基本上是说,“我期待从另一边看到的下一个序列号是X。”

因此,要回答你的问题:

为什么序列号在packet#9上更改为208和packet#9。客户端是否有任何传输?

数据包9的序列号为208,因为在分组4中,客户端向GET服务器发送HTTP请求。分组4的序列号是1,所以当您添加207的有效载荷时,客户端应该使用的下一个序列号是208。您可以看到,在数据包5中,来自服务器的ACK为208。换句话说,服务器确认所有数据,包括207,并期望来自客户端的下一个序列号为208。

由于服务器已经发送了带有有效负载的3个分组,所以分组9的确认号为3680。分组6的有效负载为1368,分组7的有效负载为1368,分组8的有效负载为943。同样,当您考虑序列号是数据包中的第一个字节时,这也是有意义的。例如,如果您查看数据包6,序列号是1,但是您可以从数据包7中看到序列号已经跃升到1369,因此您可以计算出数据包6的有效负载一定是1368。

在packet#11上,序列号如何再次更改为3680和ack=343。

同样的原则也适用于这里。对于分组11,序列号为3680,因为服务器发送的最后一个分组(分组8)的序列号为2737加上有效负载为943,因此它应该使用的下一个序列号是3680。

确认号为342,因为客户端在分组10中发送了有效载荷。分组10的序列号为208,因此我们可以计算出PSH/ACK中的有效负载一定是134。再次,服务器说:“我确认您所有的数据,包括Byte 341,下一个序列号是342。”

希望这能帮上忙,如果你需要澄清的话,请告诉我。

友好的建议:不要使用截取工具,然后在手机上拍照,只需张贴截图即可。:)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/779292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档