我不确定人们是否觉得这很明显,但我有两个问题:
我知道我一定错过了一个基本点。有人可以澄清一下吗?
答案 0 :(得分:6)
这是因为序列号空间的第一个字节对应于SYN标志,而不是数据字节。 (最后的FIN标志也会消耗一个字节的序列号空间。)
答案 1 :(得分:3)
在握手期间,您正在进行同步。序列号是已知数据。一旦同步,数据长度就是已知数据以及有用的伪随机验证器。发件人知道他发送了多少,如果你回复,他认为你得到了它。这比回复更简单,例如数据的校验和或散列,通常就足够了。
答案 2 :(得分:0)
SYN和FIN标志都会导致流的序列号递增1。因此
SYN (seq x) -------------->
<--- SYNACK (ack x+1, seq y)
ACK (seq x+1, ack y+1) --->
是你的三方握手吗?这样做是因为SYN和FIN需要确认收据。这样,在连接的生命周期中,每个人都可以在同一页面上。
理论上,部分TWHS中的任何数据包都可能有有效载荷,但如果设置了SYN标志的数据包中的任何一个都有有效载荷,则相反的一方需要确认数据和标志。