第一章:信息时代的计算机网络
1.1 概述
- 随着信息技术、计算机技术和通信技术的迅猛发展和密切结合,计算机网络已经成为 21 世纪这个信息时代的核心,以
因特网为代表的计算机网络已悄然改变了人们的生活、学习、工作甚至思维方式,并对国民经济、国家安全、社会稳定等方面产生着巨大的影响。
- 毫不夸张的说:计算机网络已经融入了我们生活的方方面面,它已成为我们生活中不可或缺的一部分。
1.2 计算机网络的各类应用
- 我们生活中丰富多彩的网络应用,大致可以分为:
信息浏览和发布、通信和交流、休闲和娱乐、资源共享、电子商务、远程协作以及网上办公等几个类别,如下所示:

- 相信大家每天都会使用上述网络应用类别中的具体应用,如下所示:
点我查看具体细节
- 1️⃣ 网络为我们提供
浏览信息和发布信息的平台:因特网上连接着海量的万维网网站,人们可以使用google、baidu等搜索引擎去搜索感兴趣的信息;而博客、微博等信息发布平台,让信息时代的每个人不仅可以看,还可以畅所欲言。 - 2️⃣ 网络为我们提供
通信和交流的平台:从早期兴起的电子邮件、网络电话到今天的以QQ、Skype为代表的各种即时通信工具,在网络世界里将人们的距离拉得越来越近。2011 年,腾讯退出的网络社交软件 ---微信,已风靡整个华人世界,成为Facebook、Twitter等世界著名社交软件强有力的竞争对手。 - 3️⃣ 网络为我们提供
休闲和娱乐的平台:网络电视目前已经成为传统有线电视最大的竞争对手;而Bilibili、YouTube等视频网站,在移动互联网崛起的背景下迅速发展。除此之外,令人流连忘返的互动网络游戏,成为许多人(尤其年轻人)最为喜爱的娱乐活动之一。 - 4️⃣ 网络为我们提供
资源共享的平台:从过去通过文件传输软件共享远程服务器上的文件,到后来因特网上广泛流行的P2P 文件共享。从最初办公室内的同时通过网络共用一台打印机,到今天所有联网计算机均可方便的共享网络中的多种计算资源、存储资源和信息资源。近年来,基于网络的云计算持续升温,利用云计算可将大量的用户数据、应用软件和计算任务放置在云端,从而使用户终端的计算能力和存储能力得到无限放大。 - 5️⃣ 网络为我们提供
电子商务的平台:在网络时代,网上购物、网上购票、网上转账等应有尽有的电子商务,让生活变得方便,让宅男宅女们足不出户的梦想成为现实。 - 6️⃣ 网络为我们提供
远程协作的平台:应用最为广泛的远程协作场景就是远程教育以及远程医疗等。 - 7️⃣ 网络为我们提供
网上办公的平台:通过计算机网络,政府部门的电子政务系统向公众提供在线咨询、网上申报、审批、年检、招商、投诉、举报等政府服务。而大学校园的网上办公系统提供选课、成绩管理、网上评教评学、科研项目审批、报奖、科研经费报账、设备保修等。

- 计算机网络的用途不胜枚举,并且随着技术的发展,计算机网络已从互联传统服务器、桌面计算机到互联笔记本电脑、手机等移动便捷式计算设备,并逐步扩展到互联各种家用电器、环境传感器等非传统计算设备,甚至是所有可标识的物体,即:
物联网(IOT,Internet Of Things)。
提醒
物联网,近年来越来越受到全球的广泛关注,其发展和成熟,必将给我们的生活带来一次全新的变革。

- 计算机网络的应用不胜枚举,难以想象,如果某一天网络突然从我们生活中消失,我们的生活将会变得怎样?

1.3 计算机网络带来的负面问题
- 计算机网络,给我们带来极大便利的同时,也带来了一些负面的问题,如下所示:
点我查看具体细节
- 1️⃣ 黑客通过网络大肆传播计算机病毒和木马,攻击正规网络,窃取国家机密或实施诈骗犯罪。
- 2️⃣ 一些以盈利为目的的非法网站。
- 3️⃣ 网络上流传的形形色色的谣言。
- 4️⃣ 沉迷于网络游戏的青少年。
- 5️⃣ ……

- 但是,瑕不掩瑜,计算机网络给社会带来的积极作用,毫无疑问多于消极作用。
提醒
换言之,计算机网络让世界更紧密,让生活更美好,让未来更可期!!!

1.4 我国互联网的发展情况
- 截至 2021 年 12 月,我国网名规模为 10.32 亿,较 2020 年 12 月,新增网民 4296 万;互联网普及率达 73.0%,较 2020 年 12 月提升 2.6%,如下所示:

- 我国手机网民规模为 10.29 亿,较 2020 年 12 月,新增手机网民 4289 万,网民中使用手机上网的比例为 99.7%,如下所示:

- 截至 2021 年 12 月,我国网民的人均每周上网时长为 28.5 个小时,较 2020 年 12 月提升 2.3 个小时,如下所示:

- 2021 年,我国各类个人互联网应用用户规模呈普遍增长态势,其中在线医疗、在线办公的用户规模增长最为明显;较 2020 年 12 月分别增长 8308 万,1.23 亿,增长率分别为 38.7%、35.7%;网上外卖、网约车的用户规模分别较 2020 年 12 月增长 1.25 亿,8733 万,增长率分别为 29.9%、23.9%;在线旅行预定、互联网理财、网络直播、网络音乐等应用的用户规模增长率也均在 10% 以上,如下所示:

- 因特网是当今世界上最大的计算机网络,也是我们接触最多的计算机网络。我们可以看看
因特网之父 --- 温顿·瑟夫是怎么说的,如下所示:
- 既然我们的生活离不开计算机网络;那么,我们为何不去了解它并使用它呢?

第二章:因特网
2.1 网络、互联网和因特网
2.1.1 网络
网络是最宽泛的概念,指的是多个节点通过某个连接方式组成的系统,如下所示:
提醒
- 1️⃣
节点并不一定是计算机,也可以是手机、服务器、打印机、路由器,甚至人或交通设施。 - 2️⃣ 在计算机领域中,通常所说的
网络是计算机网络,即:将若干计算机和网络设备连接起来,实现数据通信和资源共享的系统,如:- 家庭 Wi-Fi 网络。
- 学校校园网。
- 公司内部局域网。
- 银行专用网络。
- 手机移动通信网络。
- 3️⃣ 一共公司内部只有几十台计算机,即使完全不能访问外部世界,它依然是一个网络。

- 由于网络中的设备错综复杂,为了简化,我们可以使用
云来代替一个网络,如下所示:

2.1.2 互联网
互联网可以理解为网络和网络连接形成的网络,如下所示:
提醒
- 1️⃣
互联网不是一个单独的网络,其是通过路由器、网关等设备,将多个相互独立的计算机网络连接起来。 - 2️⃣
互联网强调的是一种网络互联的结构或技术思想,如:
- 3️⃣ 几个公司可以将各自的内部网络连接起来,形成一个私有互联网。该互联网不一定就是全球范围的因特网。
- 4️⃣ 从严格意义上说:
互联网是通用概念,凡是由多个网络互联而形成的系统,都可以称为互联网。

2.1.3 因特网
因特网是当今世界上规模最大、使用最广泛的全球互联网,如下所示:
提醒
- 1️⃣
因特网是 Internet 的中文译名;在生活中,不严格区分,也会经常称为互联网。 - 2️⃣
因特网通过 TCP/IP 协议族,将世界各地的家庭网络、企业网络、校园网、运营商网络、数据中心网络等连接起来。 - 3️⃣ 我们日常使用的一些服务通常都运行在因特网上,如:浏览网页、收发电子邮件、即时通信、网络视频、在线游戏、云计算、网络购物、文件传输等。
- 4️⃣
因特网本身主要提供网络通信能力,而网页、电子邮件、微信、视频等属于运行在因特网上的应用服务,如:Web 只是因特网上的一种应用,不能把 Web 和因特网完全等同。

2.1.4 区别 & 联系
- 网络、互联网和因特网的区别,如下所示:
| 名称 | 含义 | 范围 | 是否特指全球网络 |
|---|---|---|---|
| 网络 | 多个节点连接形成的系统 | 最广 | ❌️ |
| 互联网 | 多个计算机网络相互连接形成的网络 | 较广 | 不一定 |
| 因特网 | 全球最大的、基于 TCP/IP 的公共互联网 | 特定 | ✅️ |
- 网络、互联网和因特网的联系:网络是节点之间的连接,互联网是网络之间的连接,因特网是全球最大的互联网。
2.1.5 生活化的比喻
- 如果
计算机网络是道路系统;那么,网络、互联网和因特网就可以这么理解,如下所示:
提醒
- 1️⃣ 网络 = 一个小区或城市内部的道路。
- 2️⃣ 互联网 = 把不同城市道路连接起来的公路系统。
- 3️⃣ 因特网 = 覆盖全球的完整公路交通网络。
- 4️⃣ 数据包 = 在道路上行驶的车辆。
- 5️⃣ 路由器 = 十字路口和交通枢纽。
- 6️⃣ IP 地址 = 建筑物的地址。

2.2 因特网的简介
2.2.1 因特网发展阶段
- 因特网的基础结构大体上经历了以下三个阶段的演进,如下所示:

2.2.2 因特网服务提供者(ISP,Internet Service Provider)
2.2.2.1 概述
- 普通用户是通过 ISP 接入因特网的,如下所示:
提醒
- 1️⃣ ISP 是为个人、家庭、学校、企业等用户提供因特网接入及相关服务的机构!!!
- 2️⃣ 国内的 ISP 主要有
中国电信、中国移动和中国联通,他们向广大用户提供因特网接入服务、信息服务和增值服务。

2.2.2.2 主要作用
2.2.2.2.1 提供因特网接入
- 家庭中的电脑和手机,通常先连接到家庭路由器;但是,家庭路由器本身并不能直接访问全球因特网,还需要通过 ISP 提供的通信线路接入,如下所示::

- 办理家庭宽带时,运营商会提供:光纤线路、光猫、宽带账号、网络接入服务、公网或私网 IP 地址等。
2.2.2.2.2 为用户分配 IP 地址
- 设备接入因特网时,需要使用 IP 地址;所以,ISP 通常会为家庭路由器或企业出口设备分配一个 IP 地址,如下所示:

- 普通家庭宽带的地址可能是:
动态公网 IP、固定公网 IP以及运营商级 NAT 后的私网 IP。
2.2.2.2.3 转发用户的数据包
- 用户访问网站时,数据包会先进入 ISP 的网络,再由 ISP 转发到其他运营商、数据中心或目标服务器所在的网络,如下所示:

- ISP 的路由器会根据目标 IP 地址,选择合适的路径转发数据包。
2.2.2.2.4 提供 DNS 服务
- ISP 通常还会提供 DNS 服务器,用来把域名转换成 IP 地址,并且用户设备获得服务器 IP 地址后,才能向目标服务器发送数据,如下所示:

- 用户也可以使用其他公共 DNS,而不一定使用 ISP 默认提供的 DNS。
2.2.2.2.5 提供其他网络服务
- 除了基础接入,ISP 还可能提供这些服务,如下所示:
2.2.2.3 层次结构
- 因特网已发展成为
基于 ISP 的多层次结构的互联网络,如下所示:
提醒
- 1️⃣ 已经接入因特网的用户也可以称为一个 ISP,即:其只需要购买一些相关的设备(调制解调器、路由器等),就可以让其他用户来通过它接入因特网。
- 2️⃣ 因特网的结构实际上是基于 ISP 的多层次结构,即:各类 ISP 可以在因特网拓扑上添加新的层次或分支。

2.2.2.4 生活化比喻
- 如果
计算机网络是道路系统;那么,ISP就可以这么理解,如下所示:
提醒
- 1️⃣ 网络 = 一个小区或城市内部的道路。
- 2️⃣ 互联网 = 把不同城市道路连接起来的公路系统。
- 3️⃣ ISP = 城市道路和高速公路运营者。
- 4️⃣ 因特网 = 覆盖全球的完整公路交通网络。
- 5️⃣ 数据包 = 在道路上行驶的车辆。
- 6️⃣ 路由器 = 十字路口和交通枢纽。
- 7️⃣ IP 地址 = 建筑物的地址。

2.2.3 因特网的标准化工作
- 因特网的标准化工作是
面向公众的,其任何一个建议标准在成为因特网标准之前,都是以 RFC 技术文档的形式在因特网上发表的。
提醒
RFC(Request For Comments,请求评论):任何人都可以从因特网上免费下载 RFC 文档,并随时对某个 RFC 文档发表意见和建议。
- 制定因特网标准需经过
因特网草案、建议标准、~~草案标准~~ 和因特网标准阶段,如下所示:

2.2.4 因特网的管理机构
- 因特网的管理机构,如下所示:

2.2.5 因特网的组成
- 因特网是当今全球覆盖范围最广的互联网,其网络拓扑非常复杂;但是,我们可以从
功能上简单地将其划分为核心部分和边缘部分,如下所示:
提醒
- 1️⃣
核心部分负责数据的远距离传输(中转),边缘部分负责用户接入和资源使用。 - 2️⃣ 两者共同构成了覆盖全球、互联互通的因特网。

第三章:电路交换、分组交换和报文交换
3.1 电路交换(Circuit Switching)
3.1.1 基本思想
- 在早期,专为
电话通信服务的电信网络中,需要使用很多相互连接起来的电话交换机来完成全网的交换任务,如下所示:

- 电话交换机接通电话线的方式就是
电路交换,如下所示:
提醒
- 1️⃣ 使用
电话交换进行通信,需要建立建立连接-->数据传输(通话)-->释放连接三个步骤。 - 2️⃣ 建立连接:在使用电路交换打电话之前,
主叫方必须首先进行拨号,以请求建立连接。当被叫方听到电话交换机送来的振铃音并摘机后,从主叫方到被叫方就建立了一条专用的物理通路,即:连接,该连接为通信双方提供了通信资源,即:分配通信资源。 - 3️⃣ 数据传输(通话):
主叫方和被叫方可以基于已建立的连接进行通话了。在整个通话期间,通信双方始终占用着连接,通信资源不会被其他用户占用,即:一直占用通信资源。 - 4️⃣ 释放连接:通话完毕挂机后,从
主叫方到被叫方的这条专用物理通路被交换机释放,将双方所占用的资源归还给电信网,即:归还通信资源。

- 计算机之间的数据传送并不适合采用
电路交换的方式,因为计算机之间通信是突发式的。
提醒
- 1️⃣ 通常而言,我们的计算机都会运行即时通讯工具,如:QQ、微信等。
- 2️⃣ 尽管我们并不是一直连续通过该工具发送消息;但是,为了随时发送和接收消息,我们也会一直让其处于上线状态。
- 3️⃣ 对于这种情况,如果采用电路交换的方式;那么,宝贵的通信线路资源大部分并不会被利用,即:白白被浪费了,因为
计算机之间的数据传送是突发式的,即:数据在短时间内集中出现,之后又进入较长的空闲期,如:用户突然发送一条微信消息、浏览器突然请求一个网页、程序突然下载一批数据,随后可能很长时间没有任何数据需要传输。 - 4️⃣当计算机之间使用
电路交换来传送数据的时候,其线路的传输效率一般都会很低,线路上真正来传送数据的时间往往不到 10% 甚至 1%,如:假设打开微信并保持在线 1 小时,但在这一小时内只发送了几条消息(占用时长为 10 秒);那么,线路的利用率是 10 / 3600 * 100% = 0.28%,即:线路虽然被独占了一个小时,但真正传输数据的时间还不到 1%,其余时间都处于空闲状态。
- 传统的电话通信的数据流比较连续,即:人在通话过程中,语音数据基本会连续产生。
提醒
传统的电话通信,建立一条专用线路后,线路能够得到较充分的使用。
txt
通话开始 ████████████████████████████████████ 通话结束
语音数据持续产生并持续传输1
2
2
- 即时通信是:“保持在线”并不等于“一直有数据传输”。
提醒
即时通信,如果仅仅因为在线就长期独占一条线路,大部分线路容量都会被浪费。
txt
保持在线 ██────────────██──────────────██──────────── 下线
消息 消息 消息1
2
2
3.1.2 生活类比
- 电路交换类似于传统的固定电话,如下所示:
3.1.3 特点
- 电路交换的优缺点,如下所示:
| 特点 | 描述 |
|---|---|
| 优点 | ✅️ 通信路径固定。 |
| ✅️ 传输时延稳定。 | |
| ✅️ 数据按发送顺序到达。 | |
| ✅️ 不需要为每一段数据附加完整目的地址。 | |
| ✅️ 适合持续、实时的数据传输。 | |
| 缺点 | ❌️ 建立连接需要时间。 |
| ❌️ 通信期间即使没有数据传输,线路资源也会被占用。 | |
| ❌️ 线路利用率较低。 | |
| ❌️ 某个节点或链路故障后,原有连接可能中断。 | |
| ❌️ 不适合计算机数据这种突发性通信。 |
3.1.3 应用场景
- 传统电话网络主要采用电路交换。
3.2 分组交换(Packet Switching)
3.2.1 基本思想
- 计算机通信采用的是
分组交换,而不是电路交换,如下所示:
提醒
- 1️⃣ 该小型互联网可以看作是一个分组交换网,而
交换节点1~交换节点6都是路由器,其可以用来存储转发分组(数据包的分片)。 - 2️⃣
主机A<--->主机H通过分组交换网进行通信。假设主机A的用户要给主机 H的用户发送一条消息,通常把表示消息的整块数据称为一个报文(Message),如:10100101 ...... 01100011,即:图中的报文M。 - 3️⃣ 较长的报文一般不适宜直接传输,如果报文太长,则会对交换节点的缓存容量有较大的需求,在错误处理方面也比较低效,因为需要将较长的报文划分为若干个较小的等长数据段,如:
10100101、......、01100011,在每个数据段的前面添加一些由必要信息组成的首部,这样就构成出了一个分组,如:10100101首部、......首部、01100011首部,即:图中的数据段P1、P2、P3和P4。: - 4️⃣ 添加首部,难道不是额外加大传输的数据量?其实不然,首部在传输中起了关键的作用:
- 首部中肯定包含了分组的目的地址(源地址、目的地址、分组序号、协议控制信息以及差错检测信息等);否则,分组传输路径中的各个交换节点就不知道如何转发分组了。
- 源主机将分组发送到分组交换网中,分组交换网络中的交换节点收到一个分组后,先将其缓存下来;然后,从其首部中提取目的地址,按照目的地址查找自己的转发表。
- 找到相应的转发接口后,将分组转发出去,以便将分组交给下一个交换节点。
- 5️⃣ 经过多个节点的存储转发,分组最终被转发到目的主机,如:在图中,
主机A将所构造出的各个分组(P1、P2、P3和P4)依次发送出去,各个分组经过传输路径中的各个交换节点进行存储转发,最终到达主机H。 - 6️⃣
主机H收到这些分组后,去掉它们各自的首部,将各个数据段组合还原为原先的原始报文,如:10100101 ...... 01100011。 - 7️⃣ 为了方便初学者理解,图中只演示出了分组传输过程中的最简单的情况,即:各个分组从源站到目的站可能会经过不同的路径;而对于分组失序、丢失、误码等问题并没有演示!!!

- 进一步说明上述分组交换过程,如下所示:
提醒
- 1️⃣
主机A将分组逐个发送给其直接相连的交换节点1;此时,主机A-交换节点1的链路被占用,即:链路忙,而分组交换网中的其他链路并没有被当前通信的双方占用,即:链路空闲。 - 2️⃣
交换节点1对收到的分组进行存储转发,假设交换节点1根据分组首部中的地址,查找自己的转发表的结果是下一跳是交换节点2,则交换节点1转发分组给交换节点2。当分组在交换节点1和交换节点2之间的链路上传送时,仅占交换节点1和交换节点2之间的链路,而不是占用分组交换网中的其他资源。 - 3️⃣ 依次类推,
交换节点2对收到的分组进行存储转发,直到分组被发送至主机H。 - 4️⃣ 在上述分组交换过程中,
发送方、交换节点以及接收方所要完成的任务,如下所示:
| 角色 | 完成的任务 | 简称 |
|---|---|---|
| 发送方 | 构造分组 发送分组 | |
| 交换节点 | 缓存分组 转发分组 | 存储转发 |
| 接收方 | 接收分组 还原报文 |

3.2.2 生活类比
- 分组交换类似于把一大批货物拆成多个小包裹,r 如下所示:
3.2.3 特点
- 分组交换的优缺点,如下所示:
| 特点 | 描述 |
|---|---|
| 优点 | ✅️ 不需要建立专用线路。 |
| ✅️ 多个用户可以共享网络带宽。 | |
| ✅️ 线路利用率高。 | |
| ✅️ 单个分组较小,交换节点不需要很大的缓存空间。 | |
| ✅️ 可以采用流水线方式传输。 | |
| ✅️ 某条链路故障时,可以选择其他路径。 | |
| ✅️ 非常适合突发性的计算机数据通信。 | |
| 缺点 | ❌️ 每个分组都需要添加首部,会产生额外开销。 |
| ❌️ 网络繁忙时,分组需要排队。 | |
| ❌️ 分组可能丢失、重复或失序。 | |
| ❌️ 传输时延不固定。 | |
| ❌️ 接收方可能需要重新排序和重组。 |
3.2.4 应用场景
- 现代计算机网络采用分组交换来传输数据报文。
3.2.5 物理连接 VS 逻辑连接
- 传统的电话通信的数据流比较连续,如下所示:
提醒
- ① 人在通话过程中,语音数据基本会连续产生。因此,建立一条专用线路后,线路能够得到较充分的使用。
- ② 这也就是电路交换中的要求:
先独占线路,再进行通信。
txt
通话开始 ████████████████████████████████████ 通话结束
语音数据持续产生并持续传输1
2
2
- 但是,计算机通信通常是
偶尔发送、长期等待的状态(计算机的通信方式是突发式的),如下所示:
提醒
- ① 所谓的突发式通信指的是计算机通信中产生的数据通常不是连续、均速的,如:
- 用户突然发送一条微信消息。
- 浏览器突然请求一个网页。
- 程序突然下载一批数据。
- ……
- 随后很长时间没有任务数据需要传输;但是,不代表实际没有数据传输。
- ② 这种突发式通信表现在:
数据在短时间内集中出现,之后又进入较长的空闲期。
txt
发送数据 ───── 长时间空闲 ── 发送数据 ─────── 空闲 ── 发送数据
██████ ██████ ██████1
2
2
- 假设
计算机通信也采用电路交换,我们可以推演一下,如下所示:
- 假设打开微信并保持在线 1 小时;但是,在这 1 小时中却只发送几条消息:
- 1️⃣ 实际发送数据累计使用了 10 秒。
- 2️⃣ 其余 3590 秒没有数据需要传输。
- 3️⃣ 如果采用电路交换,在这 1 小时中,这条线路必须为我们保留,其他用户不能使用。
- 那么,线路利用率公式为:
- 那么,线路利用率结果为:
- 换言之,线路虽然被独占了一个小时;但是,真正传输数据的时间还不到 1% ,其余时间都处于空闲状态。
- 像
即时通信场景中的保持在线并不等于一直有数据传输,如下所示:
提醒
如果仅仅因为在线就长期独占一条线路,大部分线路容量会被白白浪费,推演的过程,如上所示。
txt
保持在线 ██────────────██──────────────██──────────── 下线
消息 消息 消息1
2
2
- 那么,现代计算机网络是怎么解决的?答案就是
分组交换,如下所示:
提醒
- ① 用户没有数据时不会独占线路;有数据的时候,会将数据拆成分组,和其他用户共享。
- ② 如果一个用户暂时不发送数据,线路可以立即为其他用户服务,从而大幅度提高线路利用率。
- ③ 如果说电路交换是按照
连接时间来占用线路;那么,分组交换就是按照实际数据来使用线路。 - ④ 计算机通信空闲时间多、数据突发性强,因此更适合采用
分组交换。
txt
共享线路:│用户A│用户B│用户C│用户A│用户D│用户B│……1
- 微信中的
保持在线功能又是如何实现的?答案就是保持在线≠一直占用线路,如下所示:
提醒
- ① 分组交换并不会让微信持续传输数据,而是让其只有在需要的时候发送少量分组,并且不独占线路。
- ② 微信保持在线,通常表现为:
- 客户端和服务端维持逻辑上的连接状态。
- 服务器知道这个账号当前可以接收消息。
- 客户端定期发送少量心跳包。
- 有消息的时候,服务器可以通过现有连接(逻辑连接)立即通知客户端。
- ③ 下面的空白时段没有用户传输数据;但是,微信依然可以显示为在线。
txt
时间 ─────────────────────────────────────────▶
微信在线: ███████████████████████████████████
实际传输: ██────·────────────████────·────██
登录 心跳包 消息 心跳 回复1
2
3
4
5
2
3
4
5
- 分组交换是如何做到不会为微信永久分配一条物理线路?答案就是
分组交换会把每次产生的数据拆成分组,只在发送分组的瞬间使用网络资源,如下所示:
提醒
- ① 当我们的微信没有数据时,线路会传输其他用户的数据。当我们的微信产生消息时,数据分组再加入队列等待发送。
- ② 这就是统计复用,即:多个用户共享一条链路,谁此时有数据,谁就使用链路。
txt
同一条链路上的传输顺序:
│微信心跳│网页数据│视频数据│其他用户消息│微信消息│1
2
3
2
3
- 电路交换 VS 分组交换,如下所示:
提醒
假设微信保持在线一小时,实际只传输了 10 秒数据。
| 对比项 | 电路交换 | 分组交换 |
|---|---|---|
| 是否建立逻辑连接 | 是 | 可以建立 |
| 是否独占物理线路 | 是 | 否 |
| 没有数据时 | 线路仍为该用户保留 | 线路可传输其他用户的数据 |
| 有消息时 | 使用预先建立的专用电路 | 数据拆成分组并进入共享链路 |
| 线路利用率 | 较低 | 较高 |
- 电路交换和分组交换的关键区别是:
txt
电路交换:
用户上线 ── 建立专用电路 ── 一直独占 ── 用户下线
分组交换:
用户上线 ── 保持逻辑连接
├─ 无数据:不占用链路传输时间
├─ 有消息:发送数据分组
└─ 定期:发送少量心跳分组1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 那么,以微信为例,消息是如何到达的?
txt
1. 微信登录服务器,建立一条 TCP 长连接。
2. 客户端与服务器记录这条连接和登录状态。
3. 没有消息时,连接保持空闲,仅偶尔传输心跳包。
4. 其他人给我们发送消息后,消息先到达服务器。
5. 服务器通过已有的 TCP 连接将消息分组发送给我们的手机。
6. 我们的手机收到分组,重新组合后显示消息。1
2
3
4
5
6
2
3
4
5
6
- TCP 长连接只是
逻辑连接,却不是电路交换中的物理专用通路:
提醒
- ① 所谓“逻辑连接”,可以简单理解为:通信双方记住了彼此的连接状态,随时可以继续收发数据,但网络中并没有为它们铺设并保留一条专用线路。
- ② 如果以微信为例:
- 当微信与服务器建立 TCP 长连接后,双方都会保存一些连接信息:
- 对方的 IP 地址和端口号。
- TCP 连接当前是否正常。
- 已发送和已接收的数据位置。
- 哪些数据已经确认。
- 当前登录用户与该连接的对应关系。
- 因此,服务器知道:“这个 TCP 连接对应用户 A。如果有人给用户 A 发消息,就通过该连接发送"。
- 当微信与服务器建立 TCP 长连接后,双方都会保存一些连接信息:
- ③ 逻辑连接连接的是双方的“通信状态”,电路连接占用的是网络中的“实际线路资源”。
txt
逻辑上:
微信客户端 ═════════════ TCP长连接 ═════════════ 微信服务器
物理网络中:
微信分组 ─┐
网页分组 ─┼─▶ 路由器 ─▶ 共享链路 ─▶ 路由器
视频分组 ─┤
他人分组 ─┘1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 因此,分组交换
解决问题的核心并不是取消保持在线,而是将一直保持专用线路变为一直保持逻辑连接,却只有在有分组的时候使用共享线路,即:微信既能随时收发消息,也不会因为长时间没有消息而白白独占通信线路。

3.3 报文交换(Message Switching)
3.3.1 基本思想
- 报文交换是分组交换的前身,如下所示:
提醒
- ① 在报文交换中,
报文被整个发送,而不是拆分为若干个分组再进行发送。 - ② 交换节点将报文
整体接收完成后才能查找转发表,将整个报文转发到下一个节点。 - ③ 报文交换比分组交换带来的
转发时延要长很多,并且需要交换节点具有的缓存空间也大很多。

3.3.2 生活类比
- 报文交换类似于寄送一整件大型包裹,如下所示:
3.3.3 特点
- 报文交换的优缺点,如下所示:
| 特点 | 描述 |
|---|---|
| 优点 | ✅️ 不需要预先建立连接。 |
| ✅️ 不需要独占通信线路。 | |
| ✅️ 多个用户可以共享网络资源。 | |
| ✅️ 中间节点可以根据网络情况选择路径。 | |
| ✅️ 线路利用率比电路交换高。 | |
| 缺点 | ❌️ 中间节点必须存储完整报文,需要较大的存储空间。 |
| ❌️ 报文越大,节点接收完整报文所需时间越长。 | |
| ❌️ 存储转发造成较大的传输时延 | |
| ❌️ 大报文可能长时间占用链路。 | |
| ❌️ 不适合实时通信。 |
3.3.4 应用场景
- 电报网络主要采用报文交换。
3.4 电路交换 VS 分组交换 VS 报文交换
- 电路交换 VS 报文交换 VS 分组交换,如下所示:

- 如果以
时间为纵坐标,主机和节点为横坐标,其对比图,如下所示:
重要
- ① 如果要连续传送大量的数据,并且数据传送的时间远大于建立连接的时间,则使用电路交换可以有较高的传输效率。但是,计算机的
数据传输往往是突发式的,采用电路交换通信线路利用率会很低。 - ② 报文交换和分组交换都
不需要建立连接,即:预先分配通信资源,在传输计算机的突发数据可以提高通信线路的利用率。 - ③ 将报文构造成若干个更小的分组进行
分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性。

第四章:计算机网络的定义和分类
4.1 计算机网络的定义
4.1.1 概述
计算机网络的定义并没有一个统一的标准,不同的人对计算机网络有不同的定义。
4.1.2 计算机网络的早期定义
计算机网络是一些互联、自治的计算机集合。
提醒
- 1️⃣
互联指的是计算机之间可以通过有线方式或无线的方式进行数据通信。 - 2️⃣
自治是指独立的计算机,如:手机、台式机、平板等,它们有自己的硬件和软件,可以独立运行。 - 3️⃣
计算机集合是指至少需要 2 台以上的计算机。

4.1.3 计算机网络的标准定义
计算机网络就是把若干相互独立的计算机通过通信链路连接起来,在网络协议的控制下,实现数据通信和资源共享的系统。
提醒
- 1️⃣
相互独立的计算机:网络中的计算机首先是 独立工作的计算机系统。 - 2️⃣
通过通信线路互连:只有计算机还不够,还需要把它们连接起来。连接方式可能包括有线或无线。 - 3️⃣
必须遵循网络协议:即使设备已经连接起来,也不意味着它们能够正确通信。通信双方必须遵守共同的规则,这些规则就是 网络协议(Protocol)。 - 4️⃣
数据通信:网络最基本的功能就是在不同设备之间 传输数据。 - 5️⃣
资源共享:计算机联网的另一个重要目的就是 共享资源。 - 6️⃣ 独立设备 + 相互连接 + 遵守协议 → 数据通信与资源共享,即:
txt
计算机网络
│
┌─────────┼─────────┐
│ │ │
独立设备 相互连接 遵守协议
│
▼
数据通信 + 资源共享1
2
3
4
5
6
7
8
2
3
4
5
6
7
8

4.1.4 现阶段计算机网络的较好定义
- 计算机网络主要是由一些通用的、
可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(传送数据或视频信号)。 - 这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和
日益增长的应用。
提醒
- 1️⃣
可编程的硬件:不限于计算机,而是包括了智能手机、具有网络功能的传感器以及智能家电等智能硬件,这些硬件一定包含有中央处理单元(CPU)。 - 2️⃣
各类应用:计算机网络并非只用来传送数据,而是能够基于数据传送进而实现各种各样的应用,包括今后可能出现的各种应用。

4.2 计算机网络的分类
4.2.1 概述
- 从
不同的角度可以对计算机网络进行不同的分类,如下所示:

4.2.2 使用者
- 对
计算机网络按照使用者进行分类,可以分为公用网和专用网:
提醒
- 1️⃣ 公用网:通常是由电信公司出资建造的大型网络,公众只要按照电信公司的规定交纳费用,就可以使用这种网络(给钱就行)。
- 2️⃣ 专用网:通常是由某个部门为满足本单位特殊业务的需要而建造的网络,如:军队、铁路、电力、银行等部门的专用网,这种网络不向本单位以外的人提供服务(给钱也不行)。

4.2.3 传输介质
- 对
计算机网络按照传输介质进行分类,可以分为有线网络和无线网络:
提醒
- 1️⃣ 有线网络:双绞线、光纤、同轴电缆。
- 2️⃣ 无线网络:WIFI、蓝牙、蜂窝网络、卫星通信。

4.2.4 覆盖范围
- 对
计算机网络按照覆盖范围进行分类,可以分为广域网、城域网、局域网和个域网:
提醒
- 1️⃣ **
广域网**(WAN,🎯):广域网的覆盖范围通常为几十 ~ 几千千米,可以覆盖一个国家、地区,甚至横跨几个州。广域网是因特网的核心部分,它为因特网核心路由器提供远距离高速连接,互联分布在不同国家和地区的成域网和局域网。 - 2️⃣ 城域网(MAN):城域网的覆盖范围一般为
5 ~ 50 千米,可以跨越几个街区,甚至整个城市。城域网通常作为城市骨干网,互联大量机构、企业以及校园局域网。 - 3️⃣ **
局域网**(LAN,🎯):局域网的覆盖范围一般为1 千米左右,如:一个学生宿舍、一栋楼或一个校园。局域网通常由微型计算机或工作站通过速率为 10Mb/s 以上的高速链路相连。在过去,一个企业或学校往往只拥有一个局域网。而现在局域网已被广泛的应用,一个企业或学校可能就会有多个互联的局域网,这样的网络常称为校园网或企业网。 - 4️⃣ 个域网(PAN):个域网是个人区域网的简称,其覆盖范围一般为
10 米。个域网主要用于在个人工作的地方,把属于个人使用的笔记本电脑、键盘、鼠标、耳机以及打印机等电子设备用 WiFi 或蓝牙等无线技术连接起来的网络。

- 示例:家用路由器是连接局域网(LAN)和广域网(WAN)的典型设备
txt
广域网 WAN
Internet / ISP
│
│
WAN 口 # WAN 口 → 连接运营商网络/Internet,属于广域网方向。
┌──────────────┐
│ 家用路由器 │ # 路由器 → 位于 LAN 和 WAN 的边界,负责在两个网络之间转发数据。
| | # 家庭环境下通常还承担 NAT、DHCP、防火墙等功能。
│ Router / NAT │
└──────────────┘
│ │ )))
LAN1 LAN2 Wi-Fi # LAN1、LAN2 等 LAN 口 → 连接电脑、电视、NAS 等有线设备。
| | | # Wi-Fi → 手机、平板、笔记本无线接入,也属于同一个家庭局域网。
│ │ │
电脑 电视 手机/平板
└────┴──────┘
局域网 LAN1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

4.2.5 拓扑结构
- 对
计算机网络按照拓扑结构进行分类,可以分为总线型、星型、环型和网状型:
提醒
- 1️⃣ **
总线型**(🎯):使用单根传输线把计算机连接起来,其优点是建网容易,增建节点方便,节省线路。缺点是重负载时,通信效率不高,总线任意一处出现故障,则全网瘫痪以及存在“总线争用”问题(因为数据是“广播式”传输),如:由集线器连接的设备(物理上,属于星型;逻辑上,属于总线型)。 - 2️⃣ **
环型**(🎯):所有计算机的网络接口都连接成一个环(数据“广播式”传输;但是,通过“令牌”解决总线问题),如:令牌环局域网(流行于 2000 年以前的局域网技术),环可以是单环,也可以是双环,环中信号是单向传输的(令牌顺环依次传递,拿到令牌者方可使用总线)。 - 3️⃣ **
星型**(🎯):每个计算机都以单独的线路与中央设备相连(由中央设备实现数据的“点对点”传输,不存在“总线争用”问题)。中央设备早期是计算机,后来是集线器,现在一般是交换机或路由器。这种网络拓扑的优点是便于网络的集中控制和管理,缺点是成本高,中央设备对故障敏感,如:由以太网交换机连接的设备。 - 4️⃣ **
网状型**(🎯):一般情况下,每个节点至少有两条路径与其他节点相连,数据通过各个中间节点逐一存储转发,多用在广域网中。其优点是可靠性高,缺点是控制复杂,线路成本高,如:由众多路由器构建的广域网。

4.2.6 传输技术
- 对
计算机网络按照传输技术进行分类,可以分为点对点网络和广播式网络:
提醒
- 1️⃣ 点对点网络:数据只会从发送方
点对点发送到接收方,精准到达,如:路由器转发的数据分组。 - 2️⃣ 广播式网络:当一台计算机发送数据分组时,广播范围内所有计算机都会受到该分组,并通过
检查分组的目的地址决定是否接收该分组,如:所有的 WiFi 网络。

4.2.7 总结
- 计算机网络的分类的总结,如下所示:
提醒
计算机网络,按拓扑结构分类,是从 逻辑上 进行分类的,而不是从 物理上 进行分类的!!!

4.2.8 补充(局域网技术的发展,🌱)
- 局域网技术从“令牌环网 VS 以太网”,逐渐发展到“以太网取得统治地位”,如下所示:
点我查看具体细节
- 1️⃣ 1980 年代:令牌环网与以太网并存、竞争。
- 当时局域网主要存在两种具有代表性的技术路线:**
令牌环网(Token Ring)** 和 **以太网(Ethernet)**。 - 令牌环网采用“令牌传递”的方式控制设备发送数据,典型代表是 IBM Token Ring。
- 早期以太网采用共享介质,多台计算机共享同一条通信信道,典型设备是 **
集线器(Hub)**。 - 因此这一时期可以理解为:**
令牌环技术 VS 以太网技术**。
- 当时局域网主要存在两种具有代表性的技术路线:**
- 2️⃣ 1990 年代:交换式以太网兴起。
- 传统共享式以太网逐渐向
交换式以太网发展。 以太网交换机 (Ethernet Switch)逐渐取代集线器成为局域网的核心设备。- 每台计算机可以通过独立链路连接交换机,不再需要所有计算机共享同一个冲突域。
- 这使以太网在
性能、扩展性、管理便利性以及成本等方面的优势越来越明显。 - 与此同时,令牌环网的市场份额开始下降。
- 传统共享式以太网逐渐向
- 3️⃣ 2000 年代:以太网取得统治地位。
- 随着
快速以太网、千兆以太网以及交换式以太网的普及,以太网逐渐成为有线局域网的主流技术。 - 令牌环网等其他局域网技术逐步退出主流市场。
- 此后,以太网成为现代有线局域网最主要的技术体系。
- 随着

第五章:计算机网络的性能指标
5.1 概述
- 计算机网络的
性能指标被用来从不同方面去衡量计算机网络的性能。 - 最常用的 8 种计算机网络性能指标,如下所示:
| 计算机网络性能指标 | 简要描述 | Linux 常用命令 |
|---|---|---|
| 1️⃣ 速率 | 数据在网络中的传输速率,即:单位时间内传输的数据量,常用单位为 bit/s 。 | sar -n DEV 1 、 nload 、 bmon 、 ip -s link |
| 2️⃣ 带宽 | 网络在单位时间内能够传输的 最大数据量,表示网络的最高数据传输能力。 | ethtool eth0 、 iperf3 |
| 3️⃣ 吞吐量 | 单位时间内实际通过某个网络或接口的数据量,反映网络的 实际传输能力。 | iperf3 、 sar -n DEV 1 、 bmon |
| 4️⃣ 时延 | 数据从网络的一端传送到另一端所需要的时间,主要包括发送、传播、处理和排队时延。 | ping 、 mtr |
| 5️⃣ 时延带宽积 | 传播时延 × 带宽 ,表示链路中最多可以容纳多少正在传输的数据,也称为“以比特为单位的链路长度”。 | ping + iperf3/ethtool + 计算 |
| 6️⃣ 往返时间 | RTT(Round-Trip Time) ,数据从发送方到接收方,再由接收方返回发送方所经历的总时间。 | ping 、 ss -ti 、 mtr |
| 7️⃣ 信道利用率 | 网络或链路当前被使用的程度,即:实际使用的网络资源占可用资源的比例。 | sar + ethtool + 计算 |
| 8️⃣ 丢包率 | 传输过程中丢失的数据包数量占发送数据包总数的比例,用于衡量网络传输的可靠性。 | ping 、 mtr 、 ip -s link |
5.2 速率(Rate,🎯)
5.2.1 概述
- 为了能够更好地理解速率,我们需要先了解比特,如下所示:
提醒
- 1️⃣ 比特(bit,记为小写 b)是计算机中
数据量(存储侧)的基本单位,一个比特就是二进制数字中的 0 或 1。 - 2️⃣ 数据量(存储侧)的常用单位有
字节(byte,记为大写 B)、千字节(KB)、兆字节(MB)、吉字节(GB)、以及太字节(TB)。
| 数据量(存储侧)的单位 | 换算关系 |
|---|---|
| 比特(b) | 基本单位 |
| 字节(B) | 1 B = 8 bit |
| 千字节(KB) | 1 KB = 2¹⁰ B |
| 兆字节(MB) | 1 MB = 1024 × 1 KB = 2²⁰ B |
| 吉字节(GB) | 1 GB = 1024 × 1 MB = 2³⁰ B |
| 太字节(TB) | 1 TB = 1024 × 1 GB = 2⁴⁰ B |
- 数据量(存储侧)之间
相邻单位的换算是2¹⁰ = 1024。
5.2.2 速率
速率是指数据在网络中传输的速度(单位时间内传输了多少个比特)。
提醒
- 1️⃣
速率通常也称为数据率(Data Rate)或比特率(Bit Rate)。 - 2️⃣
速率的基本公式是: 。
- 如果 1 秒钟,传输了 1000 bit。
- 那么,
- 换言之,1000 bit/s = 1 kbit/s。
- 3️⃣
速率的基本单位是比特/秒(bit/s,可简称为 b/s 或 bps(bit per second))。 - 4️⃣
速率的常用单位有千比特/秒(kb/s 或 kbs)、兆比特/秒(Mb/s 或 Mbps)、吉比特/秒(Gb/s 或 Gbps)、太比特/秒(Tb/s 或 Tbps)。
| 速率的单位 | 换算关闭 |
|---|---|
| 比特/秒(b/s 或 bps) | 基本单位 |
| 千比特/秒(kb/s 或 kbs) | 1 kb/s = 10³ b/s |
| 兆比特/秒(Mb/s 或 Mbps) | 1 Mb/s = 1000 × 1 kb/s = 10⁶ bit/s |
| 吉比特/秒(Gb/s 或 Gbps) | 1 Gb/s = 1000 × 1 Mb/s = 10⁹ bit/s |
| 太比特/秒(Tb/s 或 Tbps) | 1 Tb/s = 1000 × 1 1Gb/s = 10¹² bit/s |
速率侧之间相邻单位的换算是10³ = 1000。示例:如果运营商说的带宽是 100 Mb/s,那么下载软件中显示的是 ? MB/s
- 速率侧之间的单位是十进制,单位之间的换算是 1000 ,即:1 Mb/s = 1000 × 1 kb/s = 10⁶ bit/s 。
- 存储侧(数据量)之间的单位是二进制,单位之间的换算是 1024 (2^10) ,即:1 MB = 1024 × 1 KB = 2²⁰ B 。
- 运营商所说的单位是速率侧的单位;但是,下载软件、操作系统等显示的是存储侧(数据量)的单位。
- 如果运营商说的带宽是 100 Mb/s (十进制),即:100 Mb/s = 100 × 10⁶ bit/s =
。 - 存储侧(下载软件、操作系统)显示的就是:
。
5.2.3 如何理解?
- 速率
描述的是数据传得多快,即:单位时间内传输了多少个比特,如下所示:
提醒
同样粗的管道中,数据块移动得越快,就表示速率越高!!!

5.2.4 练习
需求:有一个待发送的数据块,大小是 100 MB,网卡的发送速率是 100 Mb/s,则网卡发送完该数据块需要多长时间?
示例:解题过程
5.2.5 Linux 命令
5.3 带宽(🎯)
5.3.1 概述
带宽在模拟信号系统中的意义是:某个信号所包含的各种不同频率成分所占据的频率范围。带宽的单位是:Hz(kHz、MHz、GHz)。