一切只为合理顺畅
- 为什么SYN和FIN要占一个序号?
有种说法是为了能够对SYN和FIN报文进行有效的ACK,貌似有道理的,不然不能区分是收到了正确的报文,还是期望对方重传。 - 序号32位,tcp一次传输能不能4G数据?
这个貌似是可以的,因为tcp是滑动窗口协议,只要求窗口大小(缓存区大小)小于4G,实现上序号可重复利用,(2^32-1)后是0。 - tcp三次握手和四次握手的理解!
这个理解上可以这样,tcp全双工,可分成两个半连接,建立和解除连接的操作分别是发SYN收ACK、发FIN收ACK。
这样下来,建立连接也是四次握手,只是,可以将发送SYN和ACK合在一起,一般也这样做,就变成了三次握手。
解除连接四次握手,也可以变三次,将发送FIN和ACK合一起。 - tcp半连接可以传数据吗?
实现上貌似是可以的。
报文头
状态转换图