标签:描述 协议 无法 挥手 还需 发送 tcp 过程 tcp三次握手
建立TCP连接:三次握手断开TCP连接:四次握手
建立TCP连接需要三次握手过程,在TCP连接断开(或释放)的时候则需要四次挥手的过程
屏幕快照 2020-07-27 16.46.46
在RFC793中,建议MSL设置为2分钟,但是对于现在的网络来说,2分钟的时间太长了,这意味着A在回复ACK包之后还需要等待4分钟才能真正关闭连接,实际上,是允许不同的TCP协议设置不同的MS值的。在这里,不管MSL的值具体为多少比较合适,需要关注的是为什么A在回复ACK之后不直接关闭而是需要等待2MSL时长才关闭?
这主要是为了保证A发送的最后一个ACK回复包能够被B收到。如果不等待2MSL而是直接关闭,那么B可能在超时时间内无法收到回复包,于是重传FIN+ACK包给A,但是A已经关闭了,不可能再接收到重传的包,于是最终B按照非正常状态退出连接。如果A等待一段时间,则可以保证在B重传FIN+ACK之后,A能够重新回复一个ACK包给B(A此时重设定时器为2MSL),使得B能够正常关闭连接
TCP状态机
为了更清晰的描述从建立TCP连接到释放TCP连接的过程,双方可能处于的状态,给出了TCP的有限状态和FSM(Finite State Machine)
屏幕快照 2020-07-27 16.48.36
屏幕快照 2020-07-27 16.49.19
屏幕快照 2020-07-27 16.50.24
屏幕快照 2020-07-27 16.51.30
标签:描述 协议 无法 挥手 还需 发送 tcp 过程 tcp三次握手
原文地址:https://blog.51cto.com/14812296/2513766