有关TCP Flag
浏览:6192次 出处信息
面试一小伙,老生长叹的问题,介绍一下TCP flags,小伙说多了,SYN, FIN在ACK的时候需要占一个Byte的数据,而其他几个不需要。于是反问之,为什么不要?小伙支吾一阵说,可能是其他几个不重要吧。
这个问题其实很简单,对于需要ACK确认收到的标记,需要占用一个Sequence值。例如,你发送一个仅有FIN没有数据的报文,TCP一定要确认收到一把,而这种确认只能通过sequence加加。这个同标记的重要与否无关。其他的Flag是单向的不需要确认,尤其对于ACK,协议设计上就不允许确认,因为如果ACK需要确认,则协议必然陷入死循环不可自拔。
对于SYN, FIN由于需要确认,因此逻辑上是Data的一部分。其实TCP的多数option也是需要确认的,逻辑上也是data的一部分。但Option设计本身就有option级别的确认机制,不需要利用sequence在搞一把。
建议继续学习:
- TCP 的那些事儿(上) (阅读:22172)
- 浅谈TCP优化 (阅读:10598)
- 查看 Apache并发请求数及其TCP连接状态 (阅读:9524)
- 计算机网络协议包头赏析-TCP (阅读:7319)
- TCP 的那些事儿(下) (阅读:6317)
- TCP链接主动关闭不发fin包奇怪行为分析 (阅读:6239)
- TCP之close_wait (阅读:5968)
- TCP keep-alive & connection pool (阅读:5531)
- TCP Fast Open by Google 浅析 (阅读:5470)
- TCP洪水攻击(SYN Flood)的诊断和处理 (阅读:5118)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:趣图三幅:负载均衡算法需要改进
后一篇:利用node.js搭建SPDY协议的翻墙服务 >>
文章信息
- 作者:appleleaf 来源: kernelchina blogs
- 标签: TCP TCP Flag
- 发布时间:2012-08-17 13:10:45
建议继续学习
近3天十大热文
-
[917] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[54] 整理了一份招PHP高级工程师的面试题 -
[53] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] Innodb分表太多或者表分区太多,会导致内 -
[52] 海量小文件存储 -
[51] 全站换域名时利用nginx和javascri -
[51] 用 Jquery 模拟 select -
[50] CloudSMS:免费匿名的云短信 -
[48] jQuery性能优化指南
