美文网首页
TCP连接的三次握手和四次挥手

TCP连接的三次握手和四次挥手

作者: aven_kang | 来源:发表于2022-06-09 23:36 被阅读0次

1、tcp报文格式

序号:Seq序号,占32位,用来标识从源端向目的端发送的字节流

确认序号:Ack序号,占32位,只有当ACK标志为1时,该序号才有效,ack=seq + 1

标志位:共六个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:

            (A)URG:紧急指针(urgent pointer)有效。

            (B)ACK:确认序号有效。

            (C)PSH:接收方应该尽快将这个报文交给应用层。

            (D)RST:重置连接。

            (E)SYN:发起一个新连接。

            (F)FIN:释放一个连接。
image

2、三次握手

image

(1)Client向Server发送同步确认包,将标志位SYN=1,发送序列号seq=j,然后Client变成SYN_SEND状态

(2)Server收到之后,发送SYN+ACK包。将标志位ACK=1,确认序列号ack=seq+1。将标志位SYN=1,序列号seq=k。然后Server变成SYN_SEND状态

(3)Client收到确认后,检查ack是否为j+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了

3、四次挥手

image

(1)Client发送FIN包,将FIN标志位设置为1,发送序列号seq=j,Client进入FIN_WAIT_1状态

(2)Server收到该请求后,发送确认包,将标志位ACK设置为1,发送确认序列号ack=j+1,Server进入CLOSE_WAIT状态。因为Server端此时有可能还有数据要发送,只是给客户端发送了我知道你要关闭了,但是我还有数据要发送。然后可以继续发送数据

(3)如果Server端把数据发送完之后,再给客户端发送一个FIN包,将FIN标志位设置1,发送序列号seq=k。然后进入LAST_ACK状态。

(4)Client收到之后,发送确认包,将标志位ACK设置为1,ack=k+1。随后双方进入CLOSED状态

假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

相关文章

  • TCP的三次握手和四次挥手

    参考资料:[1].【TCP】详解TCP 三次握手和四次挥手[2]. iOS:为什么TCP连接要三次握手,四次挥手[...

  • TCP连接管理(三次握手,四次挥手)

    TCP连接管理(三次握手,四次挥手) 三次握手 四次挥手 client和server的连接状态变化 主动发起关闭的...

  • 三次握手和四次挥手

    三次握手是TCP建立连接时进行的,四次挥手是TCP断开连接是进行的,要弄明白三次握手和四次挥手,需要了解TCP的协...

  • TCP连接的建立和终止

    目录(1)三次握手(2)四次挥手(3)TCP状态转换图(4)TCP连接三次握手+四次挥手+状态转换 一:三次握手 ...

  • TCP的3次握手&4次挥手

    详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ” 为什么“握手”是三次,“挥手”却要四次? 建立连接时,被动...

  • 知识点总结1-计算机网络

    1.TCP的三次握手和四次握手 建立TCP的话,需要三次握手才能建立,而断开连接则需要四次挥手 三次握手:通俗描述...

  • 三次握手简单理解

    三次握手 四次挥手 建立TCP连接需要三次握手, 而断开连接需要执行四次挥手. 信号 SYN 同步 ASK 确认 ...

  • 网络通信

    Tcp通信原理了解吗? Tcp连接需要进行三次握手,断开需要四次挥手。 为什么TCP连接需要三次握手分开需要四次握...

  • HTTP协议原理及理解

    写在前头:我们知道TCP有三次握手和四次挥手,如果有大量的连接,每次在连接和关闭的时候都要经历三次握手和四次挥手的...

  • 网络编程10_图解TCP连接中的3次握手和4次挥手

    TCP三次握手,四次挥手 什么是“三次握手,四次挥手”? TCP 是一种面向连接的单播协议,在发送数据前,通信双方...

网友评论

      本文标题:TCP连接的三次握手和四次挥手

      本文链接:https://www.haomeiwen.com/subject/vafqsrtx.html