都说 TCP 是面向连接的,怎样才算是一个连接呢?

本文解析了TCP连接的工作原理,强调TCP并非简单的桥梁连接,而是通过客户端和服务端维护特定数据结构实现的状态机。文中详细介绍了三次握手建立连接及四次挥手断开连接的过程。

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

TCP 不是桥

- 连接:在自己监听的端口接收到连接的请求,然后经过“三次握手”,维护一定的数据结构和对方的信息,确认了该信息:我发的内容对方会接收,对方发的内容我也会接收,直到连接断开。
- 断开:经过“四次挥手”确保双方都知道且同意对方断开连接,然后 remove 掉为对方维护的数据结构和信息,对方之后发送的包也不会接收,直到再次连接。

我看到有的同学说,TCP 是建立了一座桥,我认为这个比喻不恰当,TCP 更好的比喻是在码头上增加了记录人员,核查人员和督导人员,至于 IP 层和数据链路层,它没有任何改造。

本质是数据结构

TCP 建立连接的本质是在客户端和服务端各自维护一定的数据结构(一种状态机),来记录和维护这个“连接”的状态。并不是真的会再这两个端之间有一条类似的“网络专线”这么一个东西。

在 IP 层,网络情况该不稳定还是不稳定,数据传输走的什么路径上层是控制不了的,TCP 能做的只能是做更多判断,更多重试,更多拥塞控制之类的东西。

连接只是一个术语

包最终都是通过链路层、物理层一个一个出去的,所以连接只是一种逻辑术语,并不存在像管道那样子的东西,连接在这里相当于双方的一种约定,双方按说好的规矩维护状态。

维护状态

3 次握手之后,咱俩之间确认自己发的东西对方都能收到,然后咱俩各自维护这种状态,连接就建立了。

连接 --> 状态 --> 数据结构

连接是一种状态,建立连接是维持一种状态,维持状态通过一定的数据结构来完成。

呸,渣男

我心里有你,并不是我心里真的有你(连接并不是像管子一样真的连着),也放不下哈,太胖了。而是一种感觉,我每天想着你,你占据着我内心的一份空间(数据结构)。是一种状态,我需要一直维护,天天想你(状态机)。你生气的时候,我殷勤一点,你高兴的时候,我放松一点(拥塞控制,快慢有度)。直到我遇到了另一个她,再见(删除数据结构)。唉,男人!

参考

https://time.geekbang.org/column/article/8924

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li-Yongjun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值