一、三次握手
(1)第一次握手就是客户端请求服务端连接,发送SYN报文置为1,并加上初始化序列号seq
(2)当服务端收到请求后,会回复应答报文ACK置为1,并发送属于服务端的SYN连接请求,连接客户端
(3)客户端收到后,代表服务端连接无误,随之回复应答报文ACK置为1,seq序列号为收到序列号+1
补充:报文中就包含了初始序列号,不是发报文还发序列号;
回复报文的时候,将SYN报文字段置为1,而且产生ACK的验证字段(验证就是客户端发的那个seq+1)
客户端第三次收到后,没啥问题,凑合
二、四次挥手
(1)第一次就是客户端请求断开连接,发送FIN报文
(2)第二次就是服务端收到请求,回复应答报文ACK置为1,并在收到序列号+1,进行恢复
(3)第三次服务端处理完数据请求,发送FIN报文,请求与客户端断开连接
(4)第四次客户端收到FIN报文后,说明断开请求无误,回复应答报文ACK,完成双向请求的断开
三、主动解释为什么需要四次挥手
(1)在断开请求时,我们无法明确是否存在数据传输,不像三次握手,单纯建立连接,并无数据传输,所以,我们需要服务端自行判断自身状态,如果没有数据传输就返回FIN报文,这也是保证数据传输的保证。
补充:无误
标签:请求,挥手,ACK,报文,四次,序列号,握手,服务端,客户端 From: https://www.cnblogs.com/wxfboke/p/16859782.html