zoukankan      html  css  js  c++  java
  • 计算机网络 -- TCP的四次挥手

    计算机网络 -- TCP的四次挥手

    参考:https://blog.csdn.net/qq_38950316/article/details/81087809

    关于Tcp的四次挥手:

    作用: 终止连接。

    一)、TCP四次挥手的步骤:

    1.刚开始客户端和服务端都处于ESTAB-FILSHED可连接状态

    2.客户端主动关闭,服务端被动关闭。

    3. 第一次挥手,客户端发送连接释放报文,并停止发送数据,报文头部,FIN =1, seq =u(seq是前边已经传送过的数据的最后一个字节加1), 此时,客户端进入FIN-WAIT-1(终止等待1状态),客户端停止向服务端发送数据。

    4.第二次挥手,服务器接收到连接释放报文,并发出确认报文,ACK =1, seq =v, ack =u+1, 此时服务器进入CLOSE-WAIT(关闭等待状态),TCP服务器通知高层应用程序,客户端向服务器的方向就释放了,处于半关闭状态,此时,客户端已经没有数据要发送了,但若服务器有数据发送,客户端仍然可以接收。

    5.客户端接收到服务器的确认报文,进入FIN-WAIT-2(终止等待2状态),等待服务端发送连接释放报文,接收服务器发送的最后的数据。

    6.第三次挥手,服务器的最后的数据发送完毕,就向客户端发送连接释放报文,FIN = 1, ACK =1, seq =w, (解释一下seq =u,当处于半关闭状态时服务器可能还向客户端送了一些数据 ),此时,服务器处于LAST-ACK(最后确认状态),等待客户端确认。

    7.第四次挥手,当客户端接收到服务器的连接释放报文,必须发出确认,ACK =1, seq = u+1, ack = w+1, 客户端进入TIME-WAIT(等待状态),等待时间为2*MSL(最长报文段性命), 当客户端撤掉相应的TCB后,才进入CLOSED状态。

    8.服务器只要收到客户端的确认就立即进入CLOSED关闭状态,服务器结束连接的时间要早于客户端结束连接的时间。

    二)、简易的描述四次挥手

    第一次挥手,客户端向服务器发送连接释放报文,FIN =1,seq =u,服务器进入FIN-WAIT-1(终止等待1状态)

    第二次挥手,服务器接收到客户端的连接释放报文,向客户端发送确认报文,ACK =1, seq =v, ack = u+1,此时,服务器进入CLOSED-WAIT(等待关闭状态),客户端接收到服务器的确认报文后进入FIN-WAIT-2(终止等待2状态),此时的连接处于半关闭状态,结束了客户端向服务器方向的数据传送,等待服务器发送连接释放报文,同时接收服务器端传送的数据。

    第三次挥手,服务器向客户端发送连接释放报文,FIN =1, seq =w, 此时服务器进入LAST-ACK(最后确认状态)

    第四次挥手,客户端接收到服务器的连接释放报文,向服务器发出确认报文,ACK =1,seq =u+1, ack = w+1 ,客户端进入WAIT-TIME(等待状态,一般等待2*MSL,MSL:最长报文段性命),而服务器一接收到确认报文就结束连接,进入CLOSED(结束连接状态)服务器结束连接的时间要早于客户端结束连接的时间

    金麟岂能忍一世平凡 飞上了青天 天下还依然
  • 相关阅读:
    Java实现web页面内容抓取
    Java写入文件的几种方法及性能对比
    Java实现导出excel
    win10系统安装VMware虚拟机软件以及linux系统
    oracle11g安装教程
    oracle怎么建立本地连接
    工厂模式
    计算一个字符串中每个字符出现的次数
    MySql多表查询
    如何查看MySql的sql语句性能
  • 原文地址:https://www.cnblogs.com/Auge/p/12193416.html
Copyright © 2011-2022 走看看