技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 网络系统 --> 有关TCP Flag

有关TCP Flag

浏览:5431次  出处信息

    面试一小伙,老生长叹的问题,介绍一下TCP flags,小伙说多了,SYN, FIN在ACK的时候需要占一个Byte的数据,而其他几个不需要。于是反问之,为什么不要?小伙支吾一阵说,可能是其他几个不重要吧。

    这个问题其实很简单,对于需要ACK确认收到的标记,需要占用一个Sequence值。例如,你发送一个仅有FIN没有数据的报文,TCP一定要确认收到一把,而这种确认只能通过sequence加加。这个同标记的重要与否无关。其他的Flag是单向的不需要确认,尤其对于ACK,协议设计上就不允许确认,因为如果ACK需要确认,则协议必然陷入死循环不可自拔。

    对于SYN, FIN由于需要确认,因此逻辑上是Data的一部分。其实TCP的多数option也是需要确认的,逻辑上也是data的一部分。但Option设计本身就有option级别的确认机制,不需要利用sequence在搞一把。

建议继续学习:

  1. TCP 的那些事儿(上)    (阅读:21553)
  2. 浅谈TCP优化    (阅读:9776)
  3. 查看 Apache并发请求数及其TCP连接状态    (阅读:8481)
  4. 计算机网络协议包头赏析-TCP    (阅读:6449)
  5. TCP链接主动关闭不发fin包奇怪行为分析    (阅读:5535)
  6. TCP 的那些事儿(下)    (阅读:5431)
  7. TCP之close_wait    (阅读:5108)
  8. TCP keep-alive & connection pool    (阅读:4823)
  9. TCP Fast Open by Google 浅析    (阅读:4697)
  10. TCP洪水攻击(SYN Flood)的诊断和处理    (阅读:4436)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1