zoukankan      html  css  js  c++  java
  • s6-6 TCP 连接释放

    TCP 连接释放


    任何一方在没有数据要传送的时候,都可以发送一个FIN置位了的 TCP 数据段
    当FIN被确认的时候,该方向的连接被关闭
    当双向连接都关闭了的时候,连接释放


    两军队问题


    两军队问题 (two-army problem)
     对称释放–对待连接像两个双向连接,要求连接的两端都释放
     遗憾的是,决定什么时候两边释放非常困难最后信息的发送者,永远无法知道这个信息是否到达

    image


    为了避免两军队(two-army)问题,使用定时器
    如果一方发送了FIN数据段出去却在一个设定的时间没有收到应答,释放连接
    另一方最终会注意到连接的对方已经不在了,超时后连接释放



    连接释放


     理论上讲,如果初始DR的和重传都丢了,协议失败
    发送者将放弃发送且释放连接,但是,另外一端却不知道这些情况,仍然处于活跃的状态
    这种情形导致半开放连接(half-open)


    杀死半开放连接的方式
    如果在一定的时间内,没有TPDUs 到达的话,连接自动释放
    如果这样,传输实体在发送一个TPDU的时候必须启动定时器,定时器超期,将发动一个哑TPDU(dummy TPDU), 以免被断掉



    三次握手正常释放连接

    image


    最后的确认TPDU丢失


    image


    TCP终止会话的4步流程

    image



    TCP是全双工的,连接的释放必须是双向的
    FIN=1
    半开半闭的连接必须杀掉
    超时会挂掉连接

  • 相关阅读:
    移动端触屏滑动,JS事件
    解决 插件LArea 在IOS上浮出软键盘问题
    关于ajax请求后js绑定事件失效问题解决方法
    Resolving timed out after 2511 milliseconds
    docker 操作 (让容器后台运行程序不退出)
    php导出excel
    yii2 left join 查询
    搭建自用git服务器
    js 复制字符到剪切板
    win10添加软连接
  • 原文地址:https://www.cnblogs.com/fadewalk/p/10665245.html
Copyright © 2011-2022 走看看