
前言
刚开始学习计算机网络时,概念很多:因特网、交换方式、速率、时延、OSI、TCP/IP......它们并不是彼此独立的名词。本章可以沿着一条主线理解:多台自治计算机如何共享通信资源,可靠而高效地完成信息传递。
这条主线先解释网络为何出现,再说明数据怎样在网络中转发,最后落到如何用性能指标衡量网络,以及为什么需要分层体系结构。
一、信息时代为什么离不开计算机网络
计算机网络让分散的计算机、手机、服务器和各类终端能够交换数据、共享资源、协同工作。
日常访问网页、发送消息、在线支付、云端保存文件,看起来是一个应用在工作,背后都要经过网络:终端将数据交给网络,网络在多条链路和多个设备之间选择路径,目的端再把数据交给对应的应用程序。
从这一点出发,计算机网络可以概括为:一些相互连接、彼此自治的计算机系统所组成的集合。
这里有三个关键词。
- 互连:设备之间存在通信链路,能够交换数据。
- 自治:每台计算机都能独立运行,并非由一台中心计算机直接控制。
- 计算机集合:网络的主体是大量终端、服务器和网络设备共同组成的系统。
因特网就是规模最大的计算机网络。它并非一张单一的"超级大网",而是由许多网络通过路由器互联而成的网络集合,因此常被称为"网络的网络"。
二、数据穿过网络:三种交换方式
通信双方往往并不直接相连,数据需要经过中间节点转发。交换技术解决的正是"中间网络资源如何分配"的问题。
1. 电路交换:先占用一条专用通路
电路交换的过程可以概括为三个阶段:
- 建立连接;
- 通信;
- 释放连接。
在连接建立成功后,通信双方会占用一段端到端的专用资源。传统电话网是理解电路交换的典型场景:通话期间,即使双方暂时没有说话,这部分资源也会一直被保留。
它的优点是通信过程中的资源较稳定,时延波动相对小,适合对实时性要求高、持续传输的数据流。缺点也很明显:连接建立需要时间,空闲时仍占用资源,面对大量突发、短小的数据时利用率不高。
2. 报文交换:整份报文逐站存储转发
报文交换把要发送的完整报文交给中间交换节点。节点先接收并缓存整份报文,再选择下一跳继续发送,这种方式称为存储转发。
它不需要预先建立专用连接,链路可以被多个通信任务复用;但整份报文可能很大,中间节点需要较大的缓存,而且必须等完整报文到达后才能转发,时延较大。现代计算机网络中,它更多作为理解交换思想的基础。
3. 分组交换:把长报文拆成小块传输
因特网主要采用分组交换。发送方会把较长的报文拆分为多个分组,每个分组携带必要的控制信息和数据。分组到达路由器后,路由器先缓存,再根据目的地址等信息转发;接收方收齐相关分组后,按顺序还原出原始报文。
可以将过程记成下面这条链路:
text
发送方构造分组 → 发送分组 → 路由器缓存并转发 → 接收方接收分组 → 还原报文
分组交换让多台主机能够按需共享链路资源。一条链路上,某个用户暂时没有数据发送时,其他用户的分组可以先通过,因此特别适合计算机通信中常见的突发性数据。
它也带来了新的问题:不同分组可能走不同路径,到达顺序可能不同;路由器缓存有限,流量过大时会排队甚至丢包。因此,分组交换的优势并不等于"永远更快",网络负载、路径状况和上层协议都会影响最终体验。
三、如何给计算机网络分类
同一张网络可以从不同角度分类,分类维度不同,结论也不同。
1. 按交换技术分类
可分为电路交换网络、报文交换网络和分组交换网络。这个角度关注网络内部怎样转发数据。
2. 按使用者分类
- 公用网:面向公众提供通信服务,例如运营商提供的公共互联网接入。
- 专用网:为特定组织或业务建立和使用的网络,例如企业内网、校园专网。
3. 按传输介质分类
- 有线网:使用双绞线、光纤、同轴电缆等介质。
- 无线网:通过无线电波等方式传输数据。
4. 按覆盖范围分类
- 局域网(LAN):覆盖办公室、机房、校园局部区域。
- 城域网(MAN):覆盖一座城市或较大的城区范围。
- 广域网(WAN):覆盖跨城市、跨省甚至跨国的范围。
- 个域网(PAN):围绕个人设备形成的小范围网络,例如蓝牙耳机与手机之间的连接。
此外,还能按拓扑结构区分为总线型、星型、环型、网状型等。拓扑结构描述的是节点和链路的连接形态,会影响布线成本、可靠性和扩展方式。
四、衡量网络好不好:六个常用性能指标
网络性能不能只看"网速"。下载快慢、页面响应、视频是否卡顿、会议是否有延迟,往往由多个指标共同决定。
1. 速率
速率表示数据传输的快慢,常用单位是 bit/s,以及 kbit/s、Mbit/s、Gbit/s。这里的 bit 是比特,不等同于文件大小常用的 Byte。
例如,100 Mbit/s 表示理论上每秒可传输约 100 兆比特的数据;换算为字节时需要除以 8。实际下载速度通常还会受到协议开销、服务器能力、网络拥塞等因素影响。
2. 带宽
在计算机网络中,带宽通常表示链路在单位时间内能够通过的最高数据率,也就是链路的理论传输能力上限。带宽越大,表示链路能承载的数据量潜力越高;但它不直接等于某次通信实际获得的速度。
3. 吞吐量
吞吐量是单位时间内实际通过网络的数据量。它反映的是实际传输效果,通常不超过链路带宽。
假设一条链路标称带宽为 100 Mbit/s,而应用实际只能稳定传输 60 Mbit/s,那么 60 Mbit/s 更接近这次业务的吞吐量。带宽像道路设计容量,吞吐量则是某个时段真正通过道路的车流量。
4. 时延
时延表示数据从发送端到接收端所花费的时间。常见来源包括:
- 发送时延:将分组推送到链路上需要的时间;
- 传播时延:电磁波在传输介质中传播所需的时间;
- 处理时延:路由器检查首部、查表、处理分组所需的时间;
- 排队时延:分组在路由器队列中等待转发的时间。
其中,排队时延最容易随网络负载发生变化。网络空闲时它可能很小;拥塞时它可能显著增加。

5. 时延带宽积与 RTT
时延带宽积的计算式为:
text
时延带宽积 = 传播时延 × 带宽
它可以理解为一条链路在某个时刻"正在路上"的数据量。传播距离远、带宽又高时,链路中同时存在的数据量会更多。
RTT(往返时间)是一个分组从发送端到接收端,再收到对方响应所需的时间。网页请求、TCP 建连等双向交互都与 RTT 密切相关。卫星链路距离远,即使带宽足够大,RTT 也可能明显偏高。
6. 利用率与丢包率
信道利用率表示某段时间内链路被实际使用的比例;网络利用率则用于描述整个网络中链路的使用情况。
在一个常见的排队模型近似中,平均时延可写为:
text
D = D0 / (1 - U)
其中,D0 表示网络空闲时的时延,U 表示利用率。当 U 越接近 1,时延增长越快。课堂中常以 50% 作为提醒点:此时按该近似式计算,平均时延已是空闲时的两倍。它不是所有网络都必须遵守的固定上限,但说明了一个重要事实:不能只追求把链路长期跑满。
丢包率则表示在一定时间内,丢失分组数量占发送分组总数的比例。造成丢包的常见原因有两类:传输过程出现误码;分组到达路由器时,队列已满而无法继续缓存。后者常与网络拥塞有关。

五、为什么计算机网络必须分层
网络通信涉及应用、运输、寻址、链路传输和物理信号等大量问题。如果所有功能混在一起实现,协议会难以设计、维护和升级。
分层的基本思想是:每一层只处理本层职责,对上提供服务,对下使用服务;同一层的实体按照本层协议进行通信。这样,某一层内部实现发生变化时,只要对外服务接口保持兼容,就不会迫使所有层一起修改。
1. OSI 七层参考模型
OSI 参考模型从下到上分为:
text
物理层 → 数据链路层 → 网络层 → 运输层 → 会话层 → 表示层 → 应用层
它为理解网络功能划分提供了清晰的参考框架。物理层关注比特如何在介质上传输;数据链路层关注相邻节点间的可靠传送;网络层解决跨网络的寻址和转发;运输层为端到端通信提供服务;更上面的层则面向会话、数据表示和具体应用。
2. TCP/IP 体系结构
因特网实际使用的协议体系通常按 TCP/IP 模型理解:
text
网络接口层 → 网际层 → 运输层 → 应用层
其中,网际层以 IP 为核心,负责让不同网络之间能够互连。RFC 1958 将网际层视为实现全球连接的关键;RFC 1122 也使用链路层、IP 层、传输层等层次描述主机通信要求。
"IP over Everything,Everything over IP"概括了这种开放互联思路:下层可以是不同的物理网络和链路技术,上层的应用又可以建立在 IP 提供的网络能力之上。
3. 五层原理体系结构
为便于教学,常将网络划分为五层:
text
物理层 → 数据链路层 → 网络层 → 运输层 → 应用层
它保留了与实际网络最密切的层次,也便于把协议、设备和数据传输过程对应起来。后续学习以太网、IP、TCP/UDP、HTTP、DNS 时,都可以回到这个模型判断它们分别处于哪一层、解决什么问题。

六、协议、服务、PDU 与 SDU
1. 协议的三个要素
协议是通信双方共同遵守的规则,通常由三个要素构成:
- 语法:数据与控制信息采用什么格式。
- 语义:每个字段、控制信息和操作分别代表什么含义。
- 同步:通信双方以什么顺序、什么时机交换信息。
例如,双方都约定报文首部中某段比特表示"目的地址",属于语法与语义问题;双方约定先发请求、再收响应,则涉及同步问题。
2. 协议与服务的关系
同层实体通过协议进行通信,而相邻层之间通过服务进行交互。某一层想完成自己的协议功能,通常要借助下一层提供的服务。
可以把它理解为:运输层关心端到端数据传输,但实际把数据送到下一跳、跨越多个网络,需要网络层、数据链路层和物理层逐级提供能力。
3. PDU 与 SDU
PDU(协议数据单元)是对等层实体之间按照协议传送的数据单位;SDU(服务数据单元)是在同一系统内,上层交给下层、或下层交给上层处理的数据单位。
一个直观过程是:上层把 SDU 交给下层,下层为实现自己的协议,会添加本层控制信息,形成自己的 PDU;接收端则按相反方向逐层处理。这个过程也就是后续学习"封装与解封装"的基础。

总结
第一章建立的是学习计算机网络的坐标系:分组交换解决共享链路上的数据转发,速率、吞吐量、时延、利用率和丢包率帮助判断网络状态,分层体系结构则让复杂的网络协议能够分工协作。
后续遇到任何协议或网络现象,都可以先问三个问题:数据被怎样组织和转发?性能受哪个指标影响?它位于哪一层、向上下层提供什么服务?顺着这三个问题继续学习,很多零散概念就能连成体系。
参考资料
- 湖南科技大学《计算机网络》课程第一章。