zoukankan      html  css  js  c++  java
  • 关于Tcp的一些浅见

    从小我们就被教育Tcp三次握手,四次挥手云云.

    其实教科书把我们得思维限制死了,现实的状况更加有趣.譬如服务器端也会主动"say hi",客户端和服务器端会同时向对方发出syn.

    博主总结出以下几条机器对于TCP信号的反应,对所谓的"客户端"和"服务器端"都适用.

    建立连接的规则:

    1.收到 syn 必定回复 ack
    2.在listen 状态下收到 syn , 要额外恢复一个syn , 即syn + ack, 并且转化到 syn-rcvd 状态
    3.在 syn-sent 状态下收到syn , 也要转化到 syn-rcvd 状态
    4.在listen 状态下发出 syn , 转化到 syn-sent 状态
    5.在syn-sent 或 syn-rcvd 下收到ack, 转化到 established
     
    关闭连接的规则:
    1.收到 fin 必定回复 ack
    2.在established 下发送fin 后转化fin-wait-1
    3.在fin-wait-1 下收到ack 后转化fin-wait-2
    4.在fin-wait-2 下收到fin 后转化time-wait
    5.在established 收到fin 后转化close-wait, 等待全部data 输送完毕后发送fin, 尔后转化last-ack状态
    6.在fin-wait-1 下收到fin 后转化closing
    7.closing 下收到ack 后转化为time-wait
    8.time-wait下等待定时器过期(2msl)后进入closed
     
    可以对照着这个图一条一条验证:
    三次握手
    三次握手
    四次挥手
    四次挥手
  • 相关阅读:
    毕业进度10
    毕业进度9
    毕业进度8
    毕业设计7
    毕业设计6
    java算法每日一练2021/1/26
    java算法每日一练2021/1/23
    java算法每日一练2021/1/21
    java算法每日一练2021/1/20
    java算法每日一练2021-01-18
  • 原文地址:https://www.cnblogs.com/alfayed/p/4565227.html
Copyright © 2011-2022 走看看