您现在的位置:首页 --> 查看专题: TCP Flag
面试一小伙,老生长叹的问题,介绍一下TCP flags,小伙说多了,SYN, FIN在ACK的时候需要占一个Byte的数据,而其他几个不需要。于是反问之,为什么不要?小伙支吾一阵说,可能是其他几个不重要吧。这个问题其实很简单,对于需要ACK确认收到的标记,需要占用一个Sequence值。例如,你发送一个仅有FIN没有数据的报文,TCP一定要确认收到一把,而这种确认只能通过sequence加加。这个同标记的重要与否无关。其他的Flag是单向的不需要确认,尤其对于ACK,协议设计上就不允许确认,因为如果ACK需要确认,则协议必然陷入死循环不可自拔。对于SYN, FIN由于需要确认,因此逻辑上是Data的一部分。其实TCP的多数option也是需要确认的,逻辑上也是data的一部分。但Option设计本身就有option级别的确认机制,不需要利用sequence在搞一把。
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [120] WEB系统需要关注的一些点
- [120] 如何拿下简短的域名
- [15] Python中的闭包
- [14] 关于身份证号的那些事
- [11] 一步一步教你怎样给Apache Spark贡
- [11] 五个实用的Google Analytics过
- [10] [Perl]Moose::Manual::T
- [10] YSLOW法则中,为什么yahoo推荐用GE
- [10] MySQL error log 输出到sys
- [10] linux 简单架设防火墙路由器
赞助商广告