简述TCP的三次握手与四次挥手

A表示客户client,即主动发起连接的应用程序;B表示服务器,即被动等待连接建立的应用进程。

TCP建立连接三报文握手 ,也可以是四报文握手

总流程可以简化为:A向B发送连接请求,B向A确认,A再跟B确认。

其中,第二次握手可以拆成两个报文段,就成了四报文握手了。

为什么需要第三次确认呢?

为了防止"已失效的连接请求报文段"突然又传给B,比如A向B发送连接请求的报文段时,在某些网络结点滞留了,导致没有按照正常时间发送给B。A因此重传了一个连接请求,后续正常进行连接与释放。等到连接释放后的某一个时间点,前面没有正常传输的"已失效的连接请求报文段"到达了B,B收到后向A发送了确认。此时如果A不用进行第三次确认,那么就直接建立了运输连接,并一直等待A发送数据,那么此时B的资源就白白浪费了。

TCP释放连接:A向B发送释放连接(通信双方都可以发,即B也可以发送释放连接报文段),并停止发送数据;B向A发送确认,进入半关闭状态,B可以继续向A发送未发送完的数据,A仍可以接收;直到B没有数据要发送了,再发送给A一个最后确认;A向B发送确认后,等待2MSL时间,再释放连接。B释放的时间比A要稍微早。

计算机网络第七版中也把上面释放连接的过程叫做四报文握手 。我们一般叫做四次挥手

相关推荐
云飞云共享云桌面15 小时前
硬件采购省50%、设计效率提40%——通过云飞云共享云桌面一台云主机拖10人的真实跑法
运维·服务器·网络·人工智能·自动化
XiYang-DING15 小时前
【Java EE】TCP—滑动窗口
tcp/ip·java-ee·php
XiYang-DING15 小时前
【Java EE】 TCP—异常情况处理
java·tcp/ip·java-ee
L16247615 小时前
Nginx Stream 四层代理 TLS 类漏洞修复完整版
网络·nginx·安全
.千余15 小时前
【Linux】网络基础2---Socket编程预备
linux·网络·php
HMS工业网络15 小时前
使用电脑快速测试PROFIBUS 设备通讯
网络·网络协议·profibus·主站·设备通讯
tjjingpan16 小时前
HCIP-Datacom Core Technology V1.0_18 IGMP原理与配置
网络
cui_ruicheng16 小时前
Linux网络编程(四):UDP Socket基础编程
linux·服务器·网络·udp
sunlifenger16 小时前
构筑绿色能源数字底座,风光一体化智慧电站整体解决方案
服务器·网络·能源