TCP的三次握手和四次挥手

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

三次握手:

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

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

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

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

四次挥手:

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

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

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

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

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

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

相关推荐
l1x1n02 分钟前
网络安全概述:从认知到实践
网络
鄃鳕2 分钟前
HTTP【网络】
网络·网络协议·http
存储服务专家StorageExpert13 分钟前
DELL SC compellent存储的四种访问方式
运维·服务器·存储维护·emc存储
蜡笔小新星15 分钟前
Python Kivy库学习路线
开发语言·网络·经验分享·python·学习
长天一色1 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
醉颜凉1 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
小白爱电脑2 小时前
WIFI网速不够是不是光猫的“路由模式”和“桥接模式”配置错了?
网络·智能路由器·桥接模式
前端张三2 小时前
Mac 电脑pink 后端ip地址进行本地联调
服务器·tcp/ip·macos
第六五2 小时前
ubuntu命令行连接wifi
服务器·ubuntu
CXDNW2 小时前
【网络篇】计算机网络——应用层详述(笔记)
服务器·笔记·计算机网络·http·web·cdn·dns