无法理解 wireshark 中的数据包
Trouble understanding packets in wireshark
下一个数据包的序列号是否得到ack nr加上长度?
或
下一个数据包的序列号是否得到seq nr加上前一个的长度
和
数据包可以随机排列吗?如果是这样,我们为什么以及如何知道数据包已丢失?
首先,有两组序列号和确认号对,对话的每一方各一组。序列号是发送方的当前编号,确认号是接收方对来自发送方的“下一个预期序列号”的想法。一般来说,他们是这样工作的...
假设:
HostA的初始序列号是100,HostB的初始序列号是200(这些数字是随机的,它们的起始值根本无关紧要,但它们是在TCP 3次握手中建立的。)
场景:HostA 向 HostB 发送 1000 字节的 TCP 负载:
Seq # Ack # TCP Payload (bytes) Next Seq #
----- ----- ------------------- ----------
100 200 1000 1100
在这里,假设 HostA 的初始序列号为 100,并且由于我们假设它正在发送 1000 字节的 TCP 负载,我们计算下一个预期序列号为 100 + 1000 = 1100。这就是 ACK # 我们正在寻找来自 HostB 的信息,这将向 HostA 表明 HostB 已收到所有 1000 字节的有效负载,并期望来自 HostA 的下一个 TCP 段的序列号为 1100。
HostB 确认从 HostA 接收到上述 TCP 段:
Seq # Ack # TCP Payload (bytes) Next Seq #
----- ----- ------------------- ----------
200 1100 0 200
这是HostB 的一组序列号和确认号。请注意,此集合完全独立于 HostA 的集合。此处,HostB 已通过向 HostA 发送 ACK # 1100(初始序列号 100 加上附加的 1000 字节有效负载)向 HostA 确认接收到发送方在前一个数据包中发送的所有 1000 字节数据。 HostB 自己的序列号 200 在此数据传输中不起任何作用,只是向 HostA 指示 HostB 没有向 HostA 反向发送任何数据。
如果 HostB NOT 从 HostA 收到此段,HostB 最终发送回 HostA 的 ACK 将携带只有 100 的 ACK #,因此 HostA 会知道 HostB没有收到携带 1000 字节有效载荷的段,因此应该重传它。
希望对您有所帮助?
有关更多信息和详细信息,请参阅 RFC 793。
下一个数据包的序列号是否得到ack nr加上长度?
或
下一个数据包的序列号是否得到seq nr加上前一个的长度
和
数据包可以随机排列吗?如果是这样,我们为什么以及如何知道数据包已丢失?
首先,有两组序列号和确认号对,对话的每一方各一组。序列号是发送方的当前编号,确认号是接收方对来自发送方的“下一个预期序列号”的想法。一般来说,他们是这样工作的...
假设: HostA的初始序列号是100,HostB的初始序列号是200(这些数字是随机的,它们的起始值根本无关紧要,但它们是在TCP 3次握手中建立的。)
场景:HostA 向 HostB 发送 1000 字节的 TCP 负载:
Seq # Ack # TCP Payload (bytes) Next Seq #
----- ----- ------------------- ----------
100 200 1000 1100
在这里,假设 HostA 的初始序列号为 100,并且由于我们假设它正在发送 1000 字节的 TCP 负载,我们计算下一个预期序列号为 100 + 1000 = 1100。这就是 ACK # 我们正在寻找来自 HostB 的信息,这将向 HostA 表明 HostB 已收到所有 1000 字节的有效负载,并期望来自 HostA 的下一个 TCP 段的序列号为 1100。
HostB 确认从 HostA 接收到上述 TCP 段:
Seq # Ack # TCP Payload (bytes) Next Seq #
----- ----- ------------------- ----------
200 1100 0 200
这是HostB 的一组序列号和确认号。请注意,此集合完全独立于 HostA 的集合。此处,HostB 已通过向 HostA 发送 ACK # 1100(初始序列号 100 加上附加的 1000 字节有效负载)向 HostA 确认接收到发送方在前一个数据包中发送的所有 1000 字节数据。 HostB 自己的序列号 200 在此数据传输中不起任何作用,只是向 HostA 指示 HostB 没有向 HostA 反向发送任何数据。
如果 HostB NOT 从 HostA 收到此段,HostB 最终发送回 HostA 的 ACK 将携带只有 100 的 ACK #,因此 HostA 会知道 HostB没有收到携带 1000 字节有效载荷的段,因此应该重传它。
希望对您有所帮助?
有关更多信息和详细信息,请参阅 RFC 793。