为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?

本文探讨了TCP连接的三次握手和关闭连接的四次挥手过程。通过解释TCP协议中的ACK、SYN、FIN标志位,阐述了为何建立连接需要三次握手以确保双方能力,并防止脏连接。同时,解释了四次挥手的必要性,确保数据传输完成后双方都能正确关闭连接,避免半关闭状态和数据丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。

TCP 连接

我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连接是插在发送数据前,需要先建立一条虚拟的链路,然后让数据在这条链路上“流动”完成传输。

TCP 是可靠的,会尽自己最大的努力去完成数据传输,TCP 协议比较复杂,可以看下面这张 TCP 协议的报文头图片:

TCP 协议报文头格式

内容非常的丰富,跟我们今天要讨论的连接协议相关的就是中间那六个状态位: URG、ACK、PSH、RST、SYN、FIN ,都置为 1 表示有效,在这六个当中,我们主要关注重点关注 ACK、SYN、FIN 这三个。下面解释一下这三个状态位:

ACK:用于对收到的数据进行确认,所确认的数据由确认序列号表示。

SYN:用作建立连接时的同步信号

FIN:表示后面没有数据需要发送,通常意昧着所建立的连接需要关闭了。

好了,到这里,TCP 的基础知识我们就知道了,下面我们就来看看为什么
是三次握手,而不是四次或者两次
,为了让你更好的理解,我把知乎上一个高赞特别形象的比喻放在这里,希望对你有所帮助。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值