说一下什么是三次握手和四次挥手

一、三次握手

(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报文,这也是保证数据传输的保证。

补充:无误

posted @   寻仙阁  阅读(347)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示