zoukankan      html  css  js  c++  java
  • tcp四次挥手

    第一次挥手:首先AB发送连接释放请求报文(数据包),并停止发送数据。

    在连接释放报文(数据包)的TCP首部中:标志位:终止FIN=1,意味着A要主动释放A>BTCP连接;序号位sequu值由A指定。随后等待B的确认。

    第二次挥手:B收到连接释放报文之后,给A发送确认报文,此时TCP服务器进程通知高层应用进程,这样从AB这个方向上的连接就释放了,TCP连接处于半关闭状态。此时A没有数据要发给B了,但是B还有数据要发送给AA仍可以接收。

    在确认报文的TCP首部中:标志位:确认ACK=1,表示收到了A发送的数据包,同意A释放连接;序号位seq=vv值由B指定;确认号ack=u+1,表示已经收到A发送的u个字节数据,并告诉A下次应从数据的第u+1个字节开始发送,下面同理;此时B还可以向A传输数据。

    第三次握手:若B已经没有向A发送的数据了,其应用进程就通知TCP释放连接,并向A发送确认报文。

    在确认报文的TCP首部中:标志位:确认ACK=1,表示B已经把需要发给A的数据发完了;标志位:终止FIN=1,意味着B要释放B>ATCP连接;序号seq=ww值由B指定;确认号ack=u+1;此后B不再向A发送数据,但能接收数据。

    第四次挥手:A收到B的连接释放报文段后,向B发出确认报文。

    在确认报文的TCP首部中:标志位:确认ACK=1,表示收到B的确认报文,并同意B释放连接;序号seq=u+1;确认号ack=w+1

    最后一次A发出同意B关闭请求的消息后还会等两分钟,这是为了防止发出的同意消息B没有收到,B再发送时可以收到,如果立即关闭,那么B就关不掉了,因为A已经closed

  • 相关阅读:
    sql中table用法
    sql group by
    C#excel导入
    手写简单JDBC
    连接池+事务
    mysql+jdbc
    mysql(多表)
    jsp标签+jstl
    页面跳转+路径问题
    ajax 动态获取数据库中的值
  • 原文地址:https://www.cnblogs.com/wl889490/p/12601685.html
Copyright © 2011-2022 走看看