理解wireshark中的数据包时遇到的问题

问题描述:

下一个数据包的序列号是否得到ack nr加上长度?理解wireshark中的数据包时遇到的问题

OR

是否为下一个数据包的序列号获得的序列NR加上长度以前

的包能够以随机顺序?如果是的话,为什么以及如何知道一个数据包已经丢失?

首先,有两组序列和确认号码对,一组用于对话的每一侧。序列号是发件人的当前号码,确认号码是收件人关于发件人“下一个预期序列号”的想法。一般来说,它们的工作方式如下...

假设: HostA的初始序列号是100,HostB的初始序列号是200(这些数字是随机的,它们的初始值完全不重要,但它们是在的TCP三次握手)

方案:主机A发送1000个字节的TCP有效载荷的到主机B:

Seq # Ack # TCP Payload (bytes) Next Seq # 
----- ----- ------------------- ---------- 
100 200     1000  1100 

这里,假设玉簪的初始序列号为100,并且自我们假定它正在发送1000个字节的TCP有效负载,我们计算下一个预期的序列号为100 + 1000 = 1100.这就是我们要从HostB寻找的ACK#,这将向HostA指示HostB接收到1000个字节的有效负载,并且预计HostA的下一个TCP段的序列号为1100.

HostB确认从HostA接收上述TCP段:

Seq # Ack # TCP Payload (bytes) Next Seq # 
----- ----- ------------------- ---------- 
200 1100      0   200 

这是HostB的一组序列号和确认号。请注意,这个集合完全独立于HostA的集合。这里,HostB已经向HostA确认通过向HostA发送1100的ACK#(初始序列号100加上额外的1000个有效载荷字节)接收发送器在先前分组中发送的所有1000字节的数据。 HostB自己的序列号200在此数据传输中不起作用,除了向HostA指示HostB没有将数据以相反方向发送回HostA。

如果主机B做从主机A收到该段时,ACK主机B最终会送回主机A会已经进行的只有100的ACK#,所以主机A就知道主机B不接收携带1000个字节的段有效载荷,因此应重新发送。

我希望有帮助吗?请致电RFC 793