• 最简单的理解 建立TCP连接 三次握手协议


     最简单的理解
    一:建立TCP连接:三次握手协议
        
    客户端:我要对你讲话,你能听到吗;
    服务端:我能听到;而且我也要对你讲话,你能听到吗;
    客户端:我也能听到。
    …….
    互相开始通话
    ……..    


    二:关闭TCP连接:四次握手协议

    客户端:我说完了,我要闭嘴了;
    服务端:我收到请求,我要闭耳朵了;
    (客户端收到这个确认,于是安心地闭嘴了。)
    …….
        服务端还没倾诉完自己的故事,于是继续唠唠叨叨向客户端说了半天,直到说完为止
    …….
    服务端:我说完了,我也要闭嘴了;
    客户端:我收到请求,我要闭耳朵了;(事实上,客户端为了保证这个确认包成功送达,等待了两个最大报文生命周期后,才闭上耳朵。)
    (服务端收到这个确认,于是安心地闭嘴了。) ---------------------  作者:lizmit  来源:CSDN  原文:https://blog.csdn.net/qq_35216516/article/details/80554575  版权声明:本文为博主原创文章,转载请附上博文链接!

    段一波 2019/2/21 星期四 15:25:38

    通俗描述3次握手就是

    A对B说:我的序号是x,我要向你请求连接;(第一次握手,发送SYN包,然后进入SYN-SEND状态)

    B听到之后对A说:我的序号是y,期待你下一句序号是x+1的话(意思就是收到了序号为x的话,即ack=x+1),同意建立连接。(第二次握手,发送ACK-SYN包,然后进入SYN-RCVD状态)

    A听到B说同意建立连接之后,对A说:与确认你同意与我连接(ack=y+1,ACK=1,seq=x+1)。(第三次握手,A已进入ESTABLISHED状态)

    B听到A的确认之后,也进入ESTABLISHED状态。

    描述四次挥手就是:

    1.A与B交谈结束之后,A要结束此次会话,对B说:我要关闭连接了(seq=u,FIN=1)。(第一次挥手,A进入FIN-WAIT-1)

    2.B收到A的消息后说:确认,你要关闭连接了。(seq=v,ack=u+1,ACK=1)(第二次挥手,B进入CLOSE-WAIT)

    3.A收到B的确认后,等了一段时间,因为B可能还有话要对他说。(此时A进入FIN-WAIT-2)

    4.B说完了他要说的话(只是可能还有话说)之后,对A说,我要关闭连接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次挥手)
    5.A收到B要结束连接的消息后说:已收到你要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,然后A进入CLOSED)
    6.B收到A的确认后,也进入CLOSED。 ---------------------  作者:lizmit  来源:CSDN  原文:https://blog.csdn.net/qq_35216516/article/details/80554575  版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    ORA-28000 帐户已被锁定问题处理
    德邦总管 修改oracle数据库用户密码的方法
    测试面试题目
    python 把一文件包含中文的字符写到另外文件乱码 UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position
    python version 2.7 required,which was not found in the registry
    ImportError: No module named dateutil.parser
    解决python2.x用urllib2证书验证错误, _create_unverified_context
    python多版本兼容性问题:当同时安装Python2和Python3后,如何兼容并切换
    MAC OS git客户端安装及操作
    Pycharm连接gitlab
  • 原文地址:https://www.cnblogs.com/gaosai/p/10412856.html
Copyright © 2020-2023  润新知