• 关于TCP/IP三次握手和四次分手的理解


    其实是事务发展的一种抽象,更形象的比喻为(主要是便于理解啊,网上是有神人的):

        

     三次握手流程

    1. 客户端发个请求“开门呐,我要进来”给服务器
    2. 服务器发个“进来吧,我去给你开门”给客户端
    3. 客户端有很客气的发个“谢谢,我要进来了”给服务器

     四次挥手流程

    1. 客户端发个“时间不早了,我要走了”给服务器,等服务器起身送他
    2. 服务器听到了,发个“我知道了,那我送你出门吧”给客户端,等客户端走
    3. 服务器把门关上后,发个“我关门了”给客户端,然后等客户端走(尼玛~矫情啊)
    4. 客户端发个“我知道了,我走了”,之后自己就走了

    断开连接

    1. 客户端发送请求断开的数据包,告诉服务器:“数据传完了,我要断开了”。发送一个FIN包,序列号x+2。客户端转移到FIN_WAIT_1状态。
    2. 服务器端发送应答包,告诉客户端:“行,我知道了,你断开吧!”。应答号为x+3,服务器进入CLOSE_WAIT状态。客户端收到应答后,转移到FIN_WAIT_2状态。
    3. 服务器发送一个断开数据包,告诉客户端:“既然传完了,那我这边的开关也准备关了”。序列号为y+1,发送完后服务器进入LAST_ACK状态。
    4. 客户端发送一个应答包,告诉服务器:“好的,我知道你要断开了。”应答号为y+2。客户端进入TIME_WAIT状态。 TIME_WAIT又称为2MSL等待状态,MSL是系统中定义的最大报文生存时间,任何TCP报文在网络中生存时间超过这个值就必须被丢弃。 等待MSL的原因是防止最后一个ACK丢失后可以进行重发,如果ACK丢失后,服务器会重发FIN。

        

    笑语欢歌水云间, 谈古论今郁作烟。 人存一世数十载, 生则壮志冲九天!
  • 相关阅读:
    perl dbi 控制事务
    READ-COMMITTED 不能进行可重复读和防止幻读
    REPEATABLE-READ 预读
    如何规划农商行商业智能系统中的决策分析系统?
    如何规划农商行商业智能系统中的决策分析系统?
    【MySQL】gap lock 浅析
    REPEATABLE-READ和READ-COMMITTED幻读
    ORA-01555: snapshot too old
    CXF动态客户端调用webservice实例
    mysql 区间锁
  • 原文地址:https://www.cnblogs.com/mercedes-Benz/p/7839388.html
Copyright © 2020-2023  润新知