为什么TCP段中的SYN或FIN位消耗序列号空间中​​的一个字节?

sig*_*ice 25 networking tcp protocols

我试图理解这种设计背后的基本原理.我浏览了几个RFC,但没有发现任何明显的结果.

caf*_*caf 26

它并不是特别微妙 - 它可以确认SYN和FIN位本身(因此如果它们丢失则重新发送).

例如,如果连接不发送任何更多数据关闭,则如果FIN并没有消耗的序列号的闭端分不清楚的FIN的ACK之间的差值,和用于数据的ACK这是现有发送到FIN.

  • 如果要指定打开连接的任何内容都必须在连接开始时发送一个 00 字节(接收者应忽略该字节)并在末尾发送另一个 00(接收者应再次忽略该字节),那么这将具有基本相同的语义作为 SYN/FIN 位,但以每次连接多传输两个字节为代价? (2认同)

jdi*_*zle 6

SYN和FIN需要确认,因此它们在使用时将流的序列号递增1.