《计算机网络-自顶向下方法》3.8 运输层功能的演化

  哈喽各位小伙伴!今天咱们来聊聊运输层的"进化史"。你可能会想,TCP和UDP不就是运输层的全部了吗?其实不然!随着互联网的发展,运输层的功能也在不断演化,出现了很多新的协议和技术。今天我们就来看看运输层是怎么一步步"进化"到今天的样子,特别是最近非常火的 QUIC 协议!

一、运输层演化时间线

  运输层的演化就像手机的发展史一样,从最初的"大哥大"到现在的智能手机,功能越来越强大,也越来越适应时代的需求。让我们来简单回顾一下:

  • 1970年代:早期的 TCP/NCP,那时候互联网还叫 ARPANET,运输层协议还很原始
  • 1980年代:TCP/IP 协议族标准化,TCP 和 UDP 成为运输层的两大支柱
  • 1990年代:万维网兴起,TCP 加入了拥塞控制(就是我们上一节学的慢启动、拥塞避免那些)
  • 2000年代:出现了 SCTP、DCCP 等替代协议,试图在 TCP 和 UDP 之间找到平衡点
  • 2010年代至今:移动互联网时代,QUIC 协议横空出世,基于 UDP 但提供了 TCP 的可靠性,还加了很多新特性

  你看,运输层并不是一成不变的。随着应用场景的变化,运输层也在不断"进化"。那为什么需要新的运输层协议呢?TCP 不是已经很好用了吗?

二、TCP 的"痛点"

  TCP 虽然可靠,但在某些场景下也有一些"痛点":

1. 建立连接慢

  TCP 要三次握手,再加上 TLS 的握手,建立一个安全连接需要好几个往返时间(RTT)。就像你去朋友家,先要敲门、等回应、再敲门、再回应......折腾半天才能进门。在移动互联网时代,网络延迟本来就高,这个问题就更明显了。

2. 队头阻塞(Head-of-Line Blocking)

  TCP 是按序交付的,如果一个报文段丢了,后面的所有报文段都得等着,哪怕后面的已经到了。这就像排队买奶茶,前面的人钱没带够在找钱,后面所有人都得等着,哪怕你已经点好了。

3. 连接迁移困难

  TCP 连接是基于四元组(源IP、源端口、目的IP、目的端口)的。如果你的手机从 WiFi 切换到 4G/5G,IP 地址变了,TCP 连接就断了,得重新建立。这就像你打电话的时候换了个手机卡,电话直接就断了。

三、QUIC 协议:下一代运输层?

  QUIC(Quick UDP Internet Connections,快速UDP互联网连接)是 Google 提出的一种新的传输协议,现在已经被 IETF 标准化了。QUIC 很有意思,它跑在 UDP 上面,但是却提供了 TCP 的可靠性、拥塞控制、流量控制,还加了很多新特性。

  为什么不直接修改 TCP 呢?因为 TCP 是实现在操作系统内核里的,修改起来很慢,而且中间的网络设备(防火墙、NAT 等)可能不认识新的 TCP 选项。而 UDP 就简单多了,几乎所有设备都支持,在应用层就能实现,更新迭代也快。

  QUIC 就像一个"超级快递员",虽然走的是和 UDP 一样的"公路",但它自带了很多 TCP 的"装备",还有一些 TCP 没有的"黑科技"。

四、QUIC 的核心特性

1. 0-RTT / 1-RTT 握手

  传统的 TCP + TLS 建立连接需要 2 到 3 个 RTT(TCP 三次握手 1 个 RTT,TLS 握手 1-2 个 RTT)。而 QUIC 把传输层握手和加密握手合二为一了:

  • 1-RTT 握手:第一次连接,只需要一个往返就能建立连接并加密
  • 0-RTT 握手:如果之前连过,客户端可以直接发数据!连握手的时间都省了

  这就像你去常去的咖啡店,老板认识你,你一进门不用自我介绍,直接点单就行。这对于网页加载速度的提升非常明显。

2. 多路复用(Multiplexed Streams)

  QUIC 支持在一个连接上同时跑多个"流"(Stream),每个流都是独立的。如果一个流的数据丢了,只会影响那个流,其他流照常传输。这就解决了 TCP 的队头阻塞问题。

  打个比方:TCP 就像一条单车道的公路,前面的车坏了,后面所有车都堵着。而 QUIC 就像一条多车道的高速公路,一条车道出问题了,其他车道还能正常跑。

  这对于加载网页特别有用。一个网页有 HTML、CSS、图片、JS 等很多资源,用 QUIC 的话,这些资源可以在不同的流上并行传输,一个资源卡住不影响其他的。

3. 连接迁移(Connection Migration)

  QUIC 的连接不是用四元组标识的,而是用一个连接ID(Connection ID)。这意味着,即使你的 IP 地址变了(比如从 WiFi 切到 4G),只要连接ID不变,连接就不会断!

  这就像你搬家了,但是你的身份证号没变,别人还是能找到你。对于移动设备来说,这个特性太重要了------你走着走着 WiFi 断了切到流量,视频通话不会断,下载也不会断,体验丝滑。

4. 内置加密

  QUIC 默认就是加密的,把 TLS 的功能直接集成到了协议里。不像 TCP 还要额外加一层 TLS,QUIC 从设计之初就把安全考虑进去了。

5. 可插拔的拥塞控制

  因为 QUIC 是在应用层实现的,所以拥塞控制算法可以随时更换,不用等操作系统更新。开发者可以根据不同的场景选择最合适的拥塞控制算法。

五、QUIC 的应用场景

  QUIC 现在已经用在很多地方了:

  • HTTP/3:是的,最新的 HTTP/3 就是基于 QUIC 的!Google、Chrome、Cloudflare 都已经支持了
  • 视频流媒体:YouTube、Netflix 都在测试或使用 QUIC
  • 移动端应用:很多 App 用 QUIC 来提升弱网下的体验
  • 游戏:一些实时游戏用 QUIC 来平衡延迟和可靠性

  可以说,QUIC 正在慢慢成为 Web 传输的新标准。

六、其他运输层协议

  除了 QUIC,还有一些其他的运输层协议也值得了解:

SCTP(Stream Control Transmission Protocol)

  SCTP 也是一种可靠的传输协议,支持多流和多宿主(Multi-homing)。它最初是为电话信令设计的,后来也用在其他场景。不过 SCTP 没有 QUIC 那么火,主要是因为部署起来比较麻烦。

DCCP(Datagram Congestion Control Protocol)

  DCCP 是一种"半可靠"的协议,它提供了拥塞控制但不保证可靠交付。适合那些既需要拥塞控制又能容忍丢包的场景,比如流媒体。不过 DCCP 用得也不多。

RTP / RTCP

  严格来说 RTP 是应用层协议,但它经常和 UDP 一起用在实时音视频场景。RTP 负责传输媒体数据,RTCP 负责监控传输质量。我们在视频会议、直播里经常能看到它们的身影。

七、为什么运输层在应用层实现越来越流行?

  你可能注意到了,QUIC、RTP 这些协议其实都是在应用层实现的,跑在 UDP 上面。为什么会这样呢?

  1. 部署快:应用层协议更新只需要升级应用,不用等操作系统和网络设备的支持
  2. 灵活性高:可以根据应用的需求定制协议,比如游戏可以定制自己的可靠性策略
  3. 中间设备友好:UDP 几乎被所有防火墙和 NAT 设备支持,新协议不容易被拦

  这就形成了一个有趣的趋势:运输层的功能越来越多地在应用层实现,而 UDP 则成了一个"万能底座"。TCP 依然是主力,但越来越多的新应用选择在 UDP 上"自己造轮子"。

八、小结

  好啦,运输层功能的演化我们就聊到这里。总结一下:

  • 运输层不是一成不变的,从 TCP/UDP 到 QUIC,一直在演化
  • TCP 有连接建立慢、队头阻塞、连接迁移困难等"痛点"
  • QUIC 基于 UDP,提供了可靠性、拥塞控制、流量控制,还有 0-RTT 握手、多路复用、连接迁移等新特性
  • HTTP/3 就是基于 QUIC 的,这是未来的趋势
  • 越来越多的运输层功能在应用层实现,UDP 成为了新的"底座"

  运输层的故事还在继续,未来可能还会有更多新的协议出现。但不管怎么变,可靠、高效、安全永远是运输层追求的目标。

  下一节是第3章的最后一节,我们会做一个全面的总结,还有课后习题和 Wireshark 实验,大家加油!

相关推荐
啊阿狸不会拉杆8 小时前
《计算机网络-自顶向下方法》2.5 P2P 文件分发 读书笔记
计算机网络·wireshark·asp.net·p2p
白狐_79810 小时前
408 计算机网络|TCP 可靠传输:ACK、重传、RTT、RTO
网络·tcp/ip·计算机网络
2501_9151063212 小时前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
啊阿狸不会拉杆18 小时前
《计算机网络-自顶向下方法》3.3 无连接运输:UDP 读书笔记
网络协议·计算机网络·udp
zyf10441619 小时前
暑期实践日志 Day45:梳理第五章内容,完善成果总结
学习·计算机网络·剪辑·暑期实践·课题任务
JZZC219 小时前
1.1 基础的SSH配置
计算机网络·ssh
我爱cope20 小时前
【计算机网络 | 网络层补充:内部网关协议:RIP 与 OSPF 如何在自治系统内选择路由?】
网络·学习·计算机网络·智能路由器
Json____1 天前
校园跑腿系统:使用node从零构建一套前后端分离的全栈实践项目
计算机网络·node·管理系统·wwwoop.com
夜听莺儿鸣2 天前
901-005_系统分析师基础知识-计算机网络与分布式系统
计算机网络·软件工程·软考·系统分析师