什么是“Best Effort”(尽力而为)?
Best Effort,中文常翻译为“尽力而为”或“尽最大努力”,是一种网络服务模型,它的核心思想是:网络尽其所能将数据包从发送方传递到接收方,但不提供任何关于服务质量(如延迟、丢包、抖动)的保证。

网络就像一个普通的邮政系统:
- 你把一封信(数据包)投进邮筒,邮局会尽力把它送到收件人手中。
- 邮局不会承诺:
- 这封信明天一定能到(不保证延迟)。
- 这封信绝对不会丢失或损坏(不保证不丢包)。
- 两封同一天寄出的信,不会一个先到后一个到(不保证抖动)。
- 如果信件丢失了,邮局不会主动通知你,更不会重新为你寄一封(不保证可靠)。
Best Effort 的核心特征
Best Effort 模型具有以下几个关键特征:
-
无连接
- 在数据传输之前,不需要在发送方和接收方之间建立一个专用的连接或电路。
- 每个数据包都是独立处理的,像一个独立的信件,有自己的“地址”(源IP和目的IP)。
- 这与传统的电话网(电路交换)形成鲜明对比,打电话前必须先建立一条独占的通话线路。
-
无状态
(图片来源网络,侵删)- 路由器在转发数据包时,不会记住之前处理过的数据包。
- 每个数据包都是“新”的,路由器只根据其包头中的目的IP地址,查询自己的路由表,然后决定下一跳该发往哪里。
- 这使得网络设备非常简单和高效,不需要维护复杂的连接状态。
-
不保证服务质量
- 不保证延迟:数据包的传输时间可能从几毫秒到几秒不等,甚至更长。
- 不保证丢包:如果网络拥堵,路由器队列满了,新的数据包就会被丢弃,这就像邮局爆仓,信件被扔掉一样。
- 不保证顺序:由于不同数据包可能选择不同的路径(路径不同,延迟不同),到达接收方的顺序可能与发送顺序不一致,数据包2可能比数据包1先到。
- 不保证带宽:网络不保证你总能获得特定的传输速率,你的速度取决于当前网络的拥塞状况。
-
尽力而为
这是它的唯一承诺,只要网络没有完全瘫痪,数据包就会被处理和转发,网络会“尽其所能”,但“不保证结果”。
为什么互联网要采用 Best Effort 模型?
这背后是互联网设计的核心哲学——简单、鲁棒、可扩展。

-
简单性
- 将复杂性推到了网络的边缘(即用户的主机和应用程序),而不是核心网络。
- 网络核心的路由器只需要做一件事:根据IP地址快速转发数据包,这使得路由器可以做得非常快、便宜且可靠。
-
鲁棒性
因为网络核心是无状态的,所以单个路由器的故障不会影响整个网络,数据包会自动绕过故障的路由器,寻找新的路径,这种“去中心化”的设计让互联网非常抗打击。
-
可扩展性
不需要为每对通信的双方维护连接状态,使得网络可以轻松地扩展到数十亿设备和用户,如果采用面向连接的模型(如ATM网络),为全球数十亿设备维护连接状态是不可想象的。
-
公平性
在理想情况下,Best Effort 模型对所有用户和流量都是“一视同仁”的,它不区分谁是“付费用户”,谁是“普通用户”,所有数据包在网络拥塞时都有被丢弃的平等机会。
Best Effort 的优缺点
优点:
- 成本低廉:网络设备简单,无需复杂的资源预留和管理机制。
- 部署简单:协议栈简单,易于实现和部署。
- 高度灵活:可以承载任何类型的流量,无论是网页浏览、邮件还是文件传输。
- 鲁棒性强:对网络故障有很好的自愈能力。
缺点:
- 不适合实时应用:对于视频会议、在线游戏、VoIP(网络电话)等应用,延迟、丢包和抖动是致命的,Best Effort 无法满足它们的需求。
- 用户体验不稳定:在网络高峰期,网速会变得非常慢,视频会卡顿,网页加载缓慢。
如何克服 Best Effort 的缺点?—— 服务质量 的引入
正是因为 Best Effort 无法满足所有应用的需求,才发展出了服务质量 技术。
QoS 的目标是在 Best Effort 的基础上,为某些特定的流量提供“更好的服务”,它不是要推翻 Best Effort,而是在其之上增加一层“优先级”机制。
常见的 QoS 技术包括:
-
流量分类与标记
在网络边缘(如公司路由器),识别出重要的流量(如视频会议数据包),并给它打上一个“标记”(如DiffServ代码点中的EF,表示Expedited Forwarding,加速转发)。
-
队列管理
在网络拥堵时,路由器不再是“先到先服务,满了就扔”,它会优先处理被标记为高优先级的数据包,确保它们能先被发送出去。
-
拥塞避免
当队列快要满了,主动丢弃一些低优先级的数据包,以避免整个网络发生“雪崩式”的拥塞。
-
流量整形与监管
控制进入网络的流量速率,防止某个用户或应用占用过多带宽,影响其他用户。
一个形象的比喻:
- Best Effort:高速公路上的所有车辆都在普通车道,谁先到谁先过,堵车大家一起堵。
- QoS:在高速公路上设置了公交车道/应急车道,公交车(重要数据包)可以在拥堵时走专用道,保证通行;而普通社会车辆(普通数据包)仍然在普通车道上尽力而为。
| 特性 | 描述 |
|---|---|
| 核心思想 | 网络只承诺“尽力”传递数据,不保证任何服务质量指标。 |
| 网络类型 | 数据报网络,如互联网。 |
| 对比模型 | 电路交换,如传统电话网(建立独占连接,保证质量)。 |
| 设计哲学 | 核心简单,边缘智能,将复杂性留给应用程序(如TCP协议通过重传机制来保证可靠性)。 |
| 优点 | 简单、鲁棒、可扩展、成本低。 |
| 缺点 | 不适合实时、对延迟敏感的应用。 |
| 演进 | 通过 QoS 技术在 Best Effort 基础上提供差异化服务,以满足多样化需求。 |
Best Effort 是互联网的基石,它以其无与伦比的简单性、鲁棒性和可扩展性,成就了互联网今天的辉煌,而在此基础上发展出的 QoS 技术,则让互联网能够更好地服务于对质量有更高要求的现代应用。
