三次握手和四次挥手

    xiaoxiao2021-03-25  97

    三次握手和四次挥手

    标签: tcp三次握手四次挥手   37人阅读  评论(0)  收藏  举报   分类: 网络基础(3) 

    TCP三次握手建立连接

    第一次握手

    A 的TCP 向B 发出连接请求报文段,其首部中的 同步位SYN = 1,并选择序号seq = x,表明传送 数据时的第一个数据字节的序号是x。

    第二次握手

    .B 的TCP 收到连接请求报文段后,如同意,则 发回确认。 •B在确认报文段中应使SYN = 1,使ACK = 1, 其确认号ack = x +1,自己选择的序号seq = y

    第三次握手

    •A收到此报文段后向B 给出确认,其ACK = 1, 确认号ack = y +1。

    •A的TCP 通知上层应用进程,连接已经建立。 

    B的TCP 收到主机A 的确认后,也通知其上层 应用进程:TCP 连接已经建立

    用三次握手建立TCP 连接的各状态

    TCP四次挥手的释放连接

    第一次挥手

    数据传输结束后,通信的双方都可释放连接。 现在A 的应用进程先向其TCP 发出连接释放 报文段,并停止再发送数据,主动关闭TCP 连接。

    •A把连接释放报文段首部的FIN = 1,其序号 seq = u,等待B 的确认

    第二次挥手

    •B发出确认,确认号ack = u +1, 而这个报文段自己的序号seq = v。

    •TCP服务器进程通知高层应用进程。

    • 从A 到B 这个方向的连接就释放了,TCP 连接 处于半关闭状态。B 若发送数据,A 仍要接收。

    第三次挥手

    若B 已经没有要向A 发送的数据, 其应用进程就通知TCP 释放连接。

    第四次挥手

    •A收到连接释放报文段后,必须发出确认

    在确认报文段中ACK = 1,确认号ack =w +1,自己的序号seq = u + 1。

    TCP 连接必须经过时间2MSL(最长报文段寿命)后才真正释放掉

    必须等待2MSL 的时间 †      第一,为了保证A 发送的最后一个ACK 报文段能够到达 B。

          †第二,防止“已失效的连接请求报文段”出现在本连接中 。A 在发送完最后一个ACK 报文段后,再经过时间2MSL ,就可以使本连接持续的时间内所产生的所有报文段,都 从网络中消失。这样就可以使下一个新的连接中不会出现 这种旧的连接请求报文段。

    注:此资料可在谢希仁第六版《计算机网络》中查阅详细资料

    转载请注明原文地址: https://ju.6miu.com/read-14389.html

    最新回复(0)