TCP的三次握手和四次挥手

TCP(Transmission Control Protocol)是⼀种⾯向连接的协议,为了保证数据传输的可靠性,TCP 使⽤了三次握 ⼿和四次挥⼿的过程。

三次握手:

第⼀次握手:客户端向服务器发送 SYN 报文,请求建⽴连接。

第⼆次握手:服务器收到客户端的 SYN 报文,向客户端发送 SYN+ACK 报文,表示可以建⽴连接。

第三次握手:客户端收到服务器的 SYN+ACK 报文,向服务器发送 ACK 报文,表示连接已经建⽴

三次握手的目的是为了确认双⽅的收发能力和同步初始序列号。之所以是三次而不是两次握手的原因是为了防止多次连接请求导致连接混乱。比如客户端发送多次请求,服务端第一次同意连接请求后不知道客户端有没有收到同意的报文,因此只能重复同意,这样过期的请求就会造成请求混乱。如果是四次握手会造成资源浪费,三次握手刚刚好。

四次挥手:

四次挥手的目的是为了保证数据的完整性和可靠性。在关闭连接之前,双方需要通过四次挥手确保所有数据都已经传输完毕。

第⼀次挥手:客户端向服务器发送 FIN 报⽂,请求关闭连接

第⼆次挥手:服务器收到客户端的 FIN 报⽂,向客户端发送 ACK 报⽂,表示收到关闭请求

第三次挥手:服务器向客户端发送 FIN 报⽂,请求关闭连接。

第四次挥手:客户端收到服务器的 FIN 报⽂,向服务器发送 ACK 报⽂,表示收到关闭请求

总结:三次握⼿的本质是确认通信双⽅收发数据的能⼒力,四次挥⼿的⽬的是关闭⼀个连接

相关推荐
lisanmengmeng22 分钟前
NRPE 添加命令(一)
linux·运维·服务器
rest102431 分钟前
用io_uring进行io测试
网络
恒拓高科WorkPlus1 小时前
企业怎样选择IM即时通讯平台?私有化部署还是SaaS更适合?
网络·github
树下水月1 小时前
Typora破解
linux·服务器·前端
修船大队长1 小时前
配置接受报文每个报文对应一个mailbox配置流程记录
网络·单片机·mcu
沫璃染墨2 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
一遍再一遍3 小时前
【LTE Attach流程】
网络
星夜夏空993 小时前
网络编程(5)—— Reactor实现(v3)
服务器·网络·php
枫叶丹43 小时前
从一次推理请求出发:模型、显存、网络与服务系统如何共同决定性能
网络·人工智能·chatgpt·开源·agent·codex
恒拓高科WorkPlus3 小时前
制造企业出现生产异常后,如何通过IM快速通知责任人?
网络·制造