前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCP 可靠吗?为什么?面试可能会问到

TCP 可靠吗?为什么?面试可能会问到

作者头像
小冷
发布2024-02-29 12:55:19
1030
发布2024-02-29 12:55:19
举报
文章被收录于专栏:小冷coding小冷coding

可靠吗

网络技术

TCP,全称为传输控制协议(Transmission Control Protocol),是设计用于在不可靠的网络层(如IP)之上提供可靠数据传输的协议。它的可靠性来自于一系列内置机制,如检验和、序列号与确认应答、超时重传、滑动窗口控制等。

这些机制共同工作以确保数据可以按顺序、完整且没有错误地到达目的地。

01

TCP之所以被认为是可靠的,主要基于以下几点:

1.建立连接:TCP在数据传输之前需要建立一个连接,这是通过三次握手的过程完成的。这确保了发送方和接收方都准备好进行通信。

2.序列号和确认应答:每个TCP数据段都被分配一个序列号,接收方利用这个序列号来确认正确接收数据段。如果数据段未按顺序到达或丢失,接收方可以请求重新传输。

3.超时重传:如果发送方在预定时间内没有收到确认应答,它会假设数据段已丢失并重新发送。

4.校验和:TCP为每个数据段计算校验和,并在接收端进行检查。如果检测到错误,该数据段将被丢弃,并请求重传。

5.流量控制和拥塞控制:TCP还实现了流量控制以避免接收方被快速发送方淹没,以及拥塞控制来避免网络过载。

02

在不同的场景下,TCP的可靠性可能会受到挑战:

高延迟或长距离传输,在跨洲或卫星通信中,高延迟可能导致确认信息的回传时间变长,这会影响TCP的性能。TCP的重传机制可能会误判为丢包而频繁重传,导致效率降低。

无线网络的不稳定性可能导致频繁的丢包和变化莫测的带宽。TCP对此可能反应过度,过度减少窗口大小,从而降低传输效率。

03

在多路径传输中,TCP的单一连接可能无法充分利用所有可用的带宽。虽然有如多路径TCP(MPTCP)这样的扩展,但它并不是普遍支持的。

在数据中心内部,由于网络环境相对稳定,使用TCP可能会引入不必要的开销。在这种情况下,一些应用可能会选择使用更轻量级的协议,比如UDP。对于需要低延迟的实时应用(如在线游戏或视频通话),TCP的重传机制可能会导致不可接受的延迟。在这种情况下,应用可能会选择使用UDP,并通过应用层的机制来实现必要的可靠性。

尽管TCP在许多情况下都能提供可靠的服务,但在特定场景下可能需要额外的优化或使用其他协议来满足特定的性能要求。例如,对于需要快速传输的应用,可能会选择使用快速打开(TCP Fast Open)等技术来减少建立连接所需的时间。

对于一些对可靠性要求不那么高的应用,可能会选择使用UDP,并通过应用层来实现部分可靠性机制,以获得更低的延迟和更高的吞吐量。

相比于 UDP 来说,TCP 的主要特性是三个:有连接、可靠、面向数据流。所谓的“有连接”指的是 TCP 中的连接管理机制,也就是著名的三次握手和四次挥手,就像打电话一样,想要正常的交流,必须先和对方建立起连接,这就是所谓的“有连接”。

看到这里,你懂了吗?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小冷coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档