计算机网络第一讲:Introduction 复习博客
文章目录
- 计算机网络第一讲:Introduction 复习博客
-
- @[toc]
- 前言:这一讲到底在讲什么?
- 一、为什么要学计算机网络?
-
- 1. 网络是信息社会的基础设施
- 2. AI 时代仍然需要底层网络知识
- 二、本章学习目标与路线图
- 三、Internet 是什么?
-
- 1. 硬件组成视角:nuts and bolts view
-
- 端系统 hosts / end systems
- 通信链路 communication links
- 分组交换设备 packet switches
- 网络 networks
- 2. 服务视角:services view
- 四、什么是协议 Protocol?
-
- 1. 协议规定消息格式
- 2. 协议规定消息顺序
- 3. 协议规定收到消息后的动作
- 4. 人类协议类比
- 五、网络边缘:Network Edge
-
- 1. 端系统
- 2. 接入网络 Access Network
- 六、家庭接入网络
-
- 1. Cable-based access:有线电视网络接入
- 2. DSL:数字用户线路
- 3. 家庭网络结构
- 七、企业、校园与数据中心接入
- 八、主机如何发送数据?
- 九、物理介质 Physical Media
-
- 1. Guided media
- 2. Unguided media
- 十、网络核心:Network Core
- 十一、Forwarding 和 Routing
-
- 1. Forwarding:转发
- 2. Routing:路由
- 3. 一句话区分
- 十二、分组交换 Packet Switching
-
- 1. 基本思想
- 2. Store-and-forward 存储转发
- 3. 为什么会排队和丢包?
- 十三、电路交换 Circuit Switching
-
- 1. FDM 和 TDM
- 十四、分组交换 vs 电路交换
-
- 1. 电路交换
- 2. 分组交换
- 3. 统计复用 Statistical Multiplexing
- 十五、Internet 结构:网络的网络
- 十六、网络性能:Delay、Loss、Throughput
- 十七、四种节点时延
-
- 1. Processing Delay 处理时延
- 2. Queueing Delay 排队时延
- 3. Transmission Delay 传输时延
- 4. Propagation Delay 传播时延
- 5. 传输时延 vs 传播时延
- 十八、车队类比理解时延
- 十九、流量强度 Traffic Intensity
- 二十、Packet Loss 丢包
- 二十一、Traceroute 和 RTT
-
- 1. Traceroute
- 2. RTT
- 二十二、Bandwidth、Throughput 和 BDP
-
- 1. Bandwidth 带宽
- 2. Throughput 吞吐量
- 3. Bandwidth 和 Throughput 的区别
- 4. BDP:Bandwidth Delay Product
- 5. 单位换算
- 二十三、网络安全入门
-
- 1. Packet Sniffing 嗅探
- 2. IP Spoofing 伪造身份
- 3. DoS 拒绝服务攻击
- 4. 防御手段
- 二十四、为什么需要分层?
-
- 1. 航空旅行类比
- 2. 分层的好处
- 二十五、TCP/IP 五层模型
-
- 1. Application Layer 应用层
- 2. Transport Layer 传输层
- 3. Network Layer 网络层
- 4. Link Layer 链路层
- 5. Physical Layer 物理层
- 二十六、封装 Encapsulation
- 二十七、Host、Router、Switch 分别处理到哪一层?
- 二十八、协议、服务、接口
- 二十九、OSI 七层模型与 TCP/IP 模型
- 三十、TCP/IP 沙漏模型
-
- 1. Everything over IP
- 2. IP over Everything
- 3. 简单网络,复杂端系统
- 三十一、互联网历史
-
- 1. 1961—1972:早期分组交换与 ARPANET
- 2. 1972—1980:互联网络思想形成
- 3. 1980—1990:TCP/IP、DNS、SMTP、FTP
- 4. 1990s—2000s:Web 时代
- 5. 2005 至今:移动互联网、云、内容网络
- 三十二、标准化组织
- 三十三、第一次作业补充知识点
-
- 1. QoS 不只包括带宽和时延
- 2. Broadcast subnet 的碰撞概率
- 3. Connectionless vs Connection-oriented
- 4. Header overhead 封装开销
- 5. 电路交换与分组交换精确时延公式
- 三十四、本讲考试重点总结
-
- 1. Internet 两种视角
- 2. 协议定义
- 3. 网络结构
- 4. Forwarding vs Routing
- 5. 分组交换 vs 电路交换
- 6. 四种时延
- 7. 流量强度
- 8. 吞吐量
- 9. BDP
- 10. 分层和封装
- 11. TCP/IP 沙漏模型
- 三十五、常见易错点整理
-
- 易错点 1:传输时延和传播时延混淆
- 易错点 2:FDM 和 TDM 反了
- 易错点 3:Forwarding 和 Routing 混淆
- 易错点 4:吞吐量不是链路速率相加
- 易错点 5:La/R = 1 不代表现实中稳定
- 易错点 6:IP 地址不等于身份认证
- 易错点 7:分层中“服务变化”和“实现变化”不同
- 三十六、选择判断速记版
- 三十七、计算题公式汇总
-
- 1. 传输时延
- 2. 传播时延
- 3. 节点总时延
- 4. 流量强度
- 5. 吞吐量
- 6. BDP
- 7. Header overhead
- 8. 碰撞概率
- 9. 电路交换时延
- 10. 分组交换时延
- 结语
- @[toc]
- 前言:这一讲到底在讲什么?
- 一、为什么要学计算机网络?
-
- 1. 网络是信息社会的基础设施
- 2. AI 时代仍然需要底层网络知识
- 二、本章学习目标与路线图
- 三、Internet 是什么?
-
- 1. 硬件组成视角:nuts and bolts view
-
- 端系统 hosts / end systems
- 通信链路 communication links
- 分组交换设备 packet switches
- 网络 networks
- 2. 服务视角:services view
- 四、什么是协议 Protocol?
-
- 1. 协议规定消息格式
- 2. 协议规定消息顺序
- 3. 协议规定收到消息后的动作
- 4. 人类协议类比
- 五、网络边缘:Network Edge
-
- 1. 端系统
- 2. 接入网络 Access Network
- 六、家庭接入网络
-
- 1. Cable-based access:有线电视网络接入
- 2. DSL:数字用户线路
- 3. 家庭网络结构
- 七、企业、校园与数据中心接入
- 八、主机如何发送数据?
- 九、物理介质 Physical Media
-
- 1. Guided media
- 2. Unguided media
- 十、网络核心:Network Core
- 十一、Forwarding 和 Routing
-
- 1. Forwarding:转发
- 2. Routing:路由
- 3. 一句话区分
- 十二、分组交换 Packet Switching
-
- 1. 基本思想
- 2. Store-and-forward 存储转发
- 3. 为什么会排队和丢包?
- 十三、电路交换 Circuit Switching
-
- 1. FDM 和 TDM
- 十四、分组交换 vs 电路交换
-
- 1. 电路交换
- 2. 分组交换
- 3. 统计复用 Statistical Multiplexing
- 十五、Internet 结构:网络的网络
- 十六、网络性能:Delay、Loss、Throughput
- 十七、四种节点时延
-
- 1. Processing Delay 处理时延
- 2. Queueing Delay 排队时延
- 3. Transmission Delay 传输时延
- 4. Propagation Delay 传播时延
- 5. 传输时延 vs 传播时延
- 十八、车队类比理解时延
- 十九、流量强度 Traffic Intensity
- 二十、Packet Loss 丢包
- 二十一、Traceroute 和 RTT
-
- 1. Traceroute
- 2. RTT
- 二十二、Bandwidth、Throughput 和 BDP
-
- 1. Bandwidth 带宽
- 2. Throughput 吞吐量
- 3. Bandwidth 和 Throughput 的区别
- 4. BDP:Bandwidth Delay Product
- 5. 单位换算
- 二十三、网络安全入门
-
- 1. Packet Sniffing 嗅探
- 2. IP Spoofing 伪造身份
- 3. DoS 拒绝服务攻击
- 4. 防御手段
- 二十四、为什么需要分层?
-
- 1. 航空旅行类比
- 2. 分层的好处
- 二十五、TCP/IP 五层模型
-
- 1. Application Layer 应用层
- 2. Transport Layer 传输层
- 3. Network Layer 网络层
- 4. Link Layer 链路层
- 5. Physical Layer 物理层
- 二十六、封装 Encapsulation
- 二十七、Host、Router、Switch 分别处理到哪一层?
- 二十八、协议、服务、接口
- 二十九、OSI 七层模型与 TCP/IP 模型
- 三十、TCP/IP 沙漏模型
-
- 1. Everything over IP
- 2. IP over Everything
- 3. 简单网络,复杂端系统
- 三十一、互联网历史
-
- 1. 1961—1972:早期分组交换与 ARPANET
- 2. 1972—1980:互联网络思想形成
- 3. 1980—1990:TCP/IP、DNS、SMTP、FTP
- 4. 1990s—2000s:Web 时代
- 5. 2005 至今:移动互联网、云、内容网络
- 三十二、标准化组织
- 三十三、第一次作业补充知识点
-
- 1. QoS 不只包括带宽和时延
- 2. Broadcast subnet 的碰撞概率
- 3. Connectionless vs Connection-oriented
- 4. Header overhead 封装开销
- 5. 电路交换与分组交换精确时延公式
- 三十四、本讲考试重点总结
-
- 1. Internet 两种视角
- 2. 协议定义
- 3. 网络结构
- 4. Forwarding vs Routing
- 5. 分组交换 vs 电路交换
- 6. 四种时延
- 7. 流量强度
- 8. 吞吐量
- 9. BDP
- 10. 分层和封装
- 11. TCP/IP 沙漏模型
- 三十五、常见易错点整理
-
- 易错点 1:传输时延和传播时延混淆
- 易错点 2:FDM 和 TDM 反了
- 易错点 3:Forwarding 和 Routing 混淆
- 易错点 4:吞吐量不是链路速率相加
- 易错点 5:La/R = 1 不代表现实中稳定
- 易错点 6:IP 地址不等于身份认证
- 易错点 7:分层中“服务变化”和“实现变化”不同
- 三十六、选择判断速记版
- 三十七、计算题公式汇总
-
- 1. 传输时延
- 2. 传播时延
- 3. 节点总时延
- 4. 流量强度
- 5. 吞吐量
- 6. BDP
- 7. Header overhead
- 8. 碰撞概率
- 9. 电路交换时延
- 10. 分组交换时延
- 结语
前言:这一讲到底在讲什么?
第一讲是整门《计算机网络》的总览课。它不是深入讲某一个协议,而是先帮我们建立一张“网络知识地图”:Internet 到底是什么,什么是协议,网络边缘和网络核心分别是什么,数据从一台主机到另一台主机大概经历什么过程,分组交换和电路交换有什么区别,网络性能如何衡量,以及为什么网络要分层、为什么安全很重要。
这一讲最重要的不是背零散概念,而是建立主线:
应用要通信,必须依靠端系统、接入网络、网络核心、协议、分层封装以及各种性能和安全机制共同配合。
后面学习应用层、传输层、网络层、链路层时,其实都是在展开第一讲这张总图。
一、为什么要学计算机网络?
1. 网络是信息社会的基础设施
计算机网络支撑了网页搜索、远程会议、云游戏、文件传输、工业远程操控、云计算、物联网、大数据、AI、智慧城市、工业互联网、金融互联网、5G、WiFi、光纤接入和卫星互联网等大量场景。
所以网络不是简单的“能上网”,而是现代数字世界的交通系统。没有网络,应用、数据、云服务、AI 训练和推理都无法真正运转。
2. AI 时代仍然需要底层网络知识
AI 可以帮我们查资料、写代码,但不能替代我们对底层约束的理解。学习网络时要建立三种思维:
物理直觉:例如以太网为什么有最小帧长,这和传播时延、碰撞检测、网络直径有关。
约束思维:例如为什么 TCP 要三次握手,而 UDP 不需要,因为 TCP 要提供可靠、有状态的连接服务,UDP 则是无连接、轻量的。
权衡框架:例如为什么 Internet 采用“简单网络、复杂端系统”的设计,因为这样核心网络更容易扩展。
学习每个机制时都可以问三个问题:它解决什么问题?它付出什么代价?为什么不采用另一种方案?
二、本章学习目标与路线图
第一讲对应 Chapter 1 Introduction,目标是建立整体感觉和基本术语,而不是深入某个协议。
本章路线包括:
也就是说,这一讲先回答:互联网是什么?数据怎么走?为什么会慢?为什么会丢?为什么要分层?为什么需要安全?
三、Internet 是什么?
Internet 可以从两个角度理解:硬件组成视角和服务视角。
1. 硬件组成视角:nuts and bolts view
从硬件角度看,Internet 由端系统、通信链路、分组交换设备和各种网络组成。
端系统 hosts / end systems
端系统就是接入网络的设备,例如笔记本电脑、手机、服务器、智能家居设备、物联网设备。端系统运行网络应用,例如浏览器、微信、邮件客户端、视频会议软件等。
通信链路 communication links
链路负责在两个相邻节点之间传输数据。常见链路包括光纤、铜缆、同轴电缆、双绞线、无线电波、卫星链路。链路的传输速率通常用 bps 表示,也就是 bit per second。
分组交换设备 packet switches
网络中间有很多交换设备,负责把数据从一条链路转发到另一条链路。主要包括 routers 和 switches。它们不理解应用内容,只是根据包头中的地址信息进行转发。
网络 networks
Internet 不是一个单独的大网络,而是 network of networks,即网络的网络。家庭网络、校园网络、企业网络、运营商网络、数据中心网络、内容提供商网络互相连接,最终组成全球互联网。
2. 服务视角:services view
从服务角度看,Internet 是给分布式应用提供通信服务的基础设施。Web、视频会议、电子邮件、在线游戏、电商、云盘、流媒体等应用都依赖 Internet。
应用程序不需要自己关心底层链路、路由器、光纤、无线电等细节,只需要调用操作系统提供的网络接口,就可以把数据交给 Internet 传输。
所以服务视角可以概括为:
Internet 为分布式应用提供数据传输服务和编程接口。
四、什么是协议 Protocol?
协议是第一讲最核心的概念之一。
协议规定了网络实体之间交换消息的格式、顺序,以及发送或收到消息后应该采取什么动作。
1. 协议规定消息格式
例如 HTTP 请求可能长这样:
GET /index.html HTTP/1.1
Host: example.com
这里的 GET、路径、版本号、Host 字段都有固定格式。如果格式不对,对方就可能无法理解。
2. 协议规定消息顺序
例如 TCP 建立连接时不是随便发,而是有顺序的:
客户端 -> 服务器:SYN
服务器 -> 客户端:SYN + ACK
客户端 -> 服务器:ACK
这就是三次握手的消息顺序。
3. 协议规定收到消息后的动作
例如收到 TCP SYN 后要回复 SYN+ACK,收到 HTTP GET 后服务器要返回 HTTP Response,收到错误数据包可能丢弃或者要求重传。
所以协议不是一个“软件名字”,而是一套通信规则。
4. 人类协议类比
人类聊天也有协议:
A:你好
B:你好
A:现在几点?
B:两点
如果 A 一上来就说“两点”,B 可能不知道你在回答什么。网络协议也是一样,通信双方必须按照约定格式和顺序交换消息。
五、网络边缘:Network Edge
Network edge 指网络的边缘部分,主要是端系统。
1. 端系统
端系统包括客户端 client 和服务器 server。客户端通常是用户设备,例如手机、电脑;服务器通常部署在数据中心中,为大量客户端提供服务。
比如你访问一个网站:浏览器所在电脑是客户端,网站服务器可能在云数据中心中。
2. 接入网络 Access Network
接入网络负责把端系统连接到第一个路由器,也就是 first-hop router。常见接入网络包括家庭接入网络、校园网络、企业网络、移动蜂窝网络、WiFi、数据中心网络。
学习接入网络时要问:端系统怎么接入 Internet?接入链路速率是多少?是独享链路还是共享链路?
六、家庭接入网络
1. Cable-based access:有线电视网络接入
Cable access 使用有线电视网络基础设施。它常使用 HFC,Hybrid Fiber Coax,混合光纤同轴。特点是下行和上行速率不对称,多个家庭共享到 cable headend 的接入网络,并使用 FDM 频分复用。
FDM 是 Frequency Division Multiplexing,频分复用,把频率分成多个频段,不同信道使用不同频率。注意:FDM 是分频率,不是分时间。
2. DSL:数字用户线路
DSL 使用传统电话线接入 Internet。电话线同时承载语音和数据,通过 splitter 分离语音和数据,数据进入 DSLAM,语音进入电话网。ADSL 中的 A 是 asymmetric,表示非对称,即下行速率通常高于上行速率。
3. 家庭网络结构
典型家庭网络包括 cable/DSL modem、路由器、NAT、防火墙、WiFi AP、有线 Ethernet 接口,以及手机、电脑、电视、智能设备等终端。
家庭路由器通常同时承担多个角色:接入 Internet、提供 WiFi、分配局域网地址、做 NAT、提供简单防火墙功能。
七、企业、校园与数据中心接入
企业和校园网络通常结合 Ethernet、WiFi、switches、routers 和 servers。校园网内部往往有多个子网,通过交换机和路由器互联,然后再接入运营商网络。
数据中心网络连接大量服务器,通常要求高带宽、低延迟、高可靠性和可扩展。现代云计算、搜索引擎、AI 训练和大模型服务都严重依赖数据中心网络。
八、主机如何发送数据?
主机发送数据时,并不是把一个大文件一口气直接扔进网络,而是应用层产生 message,message 被切分成 packets,每个 packet 逐个发送到链路上。
假设分组长度是 L bits,链路速率是 R bps,那么把一个分组全部推入链路所需时间是:
d_trans = L / R
这个叫传输时延,也叫发送时延。
例子:如果 L = 10 Kbits,R = 100 Mbps,那么:
d_trans = 10 × 10^3 / 100 × 10^6 = 0.0001 s = 0.1 ms
注意:传输时延看的是“把数据推上链路需要多久”。
九、物理介质 Physical Media
物理介质分为 guided media 和 unguided media。
1. Guided media
guided media 指信号沿着固体介质传播,包括双绞线、同轴电缆和光纤。
双绞线常用于以太网,例如 Cat5、Cat6。同轴电缆支持双向传输和多个频率信道。光纤使用光脉冲传输 bit,具有高速、低误码率、抗电磁干扰等特点,适合长距离、高带宽通信。
2. Unguided media
unguided media 指无线传播,比如无线电波。常见无线链路包括 WiFi、4G/5G、Bluetooth、微波和卫星。无线传播容易受到反射、遮挡、干扰、噪声和多径传播影响。
十、网络核心:Network Core
Network core 是由大量互联路由器组成的 mesh 网络。它的任务是把分组从源主机沿着路径一跳一跳转发到目的主机。
Internet 核心采用的是 packet switching,分组交换。
十一、Forwarding 和 Routing
这是第一讲非常容易考的概念。
1. Forwarding:转发
Forwarding 是本地动作,发生在单个路由器内部。路由器查看到达分组的头部,根据转发表,把分组从输入链路转到合适的输出链路。
关键词:local,per-router,input link to output link,forwarding table。
2. Routing:路由
Routing 是全局动作。它决定分组从源主机到目的主机应该走哪条路径。
关键词:global,source-to-destination path,routing algorithm。
3. 一句话区分
Routing 决定路怎么走,Forwarding 按表把包转出去。
类比:Routing 是出门前用地图规划路线;Forwarding 是到每个路口时按照路标转弯。
十二、分组交换 Packet Switching
1. 基本思想
分组交换中,主机会把应用层消息切成一个个 packet。每个 packet 独立在网络中转发。网络中间的路由器负责把 packet 一跳一跳转发到目的地。
2. Store-and-forward 存储转发
store-and-forward 的意思是:路由器必须先收到完整的分组,然后才能把它转发到下一条链路。
假设分组长度为 L bits,链路速率为 R bps,每一跳的传输时延是:
L / R
如果一个分组经过多条链路,每一跳都要经历一次传输时延。
3. 为什么会排队和丢包?
路由器输出链路速率有限。如果多个输入方向的分组都要从同一个输出链路出去,就会形成排队。当到达速率短时间超过输出链路处理能力,就会发生 queueing delay。如果 buffer 满了,新的分组就可能被丢弃,也就是 packet loss。
十三、电路交换 Circuit Switching
电路交换在通信前先建立一条端到端连接,并为通信预留资源。
典型特点:先建立连接,预留端到端资源,通信期间资源专用,性能较稳定,空闲时资源浪费。传统电话网就是典型的电路交换。
1. FDM 和 TDM
FDM 是 Frequency Division Multiplexing,频分复用,把频率分成多个频带,每个用户占用一个频带。
TDM 是 Time Division Multiplexing,时分复用,把时间分成多个时隙,每个用户周期性占用某些时隙。
记忆:FDM 分 frequency,分频率;TDM 分 time,分时间。
十四、分组交换 vs 电路交换
1. 电路交换
优点:预留资源,性能稳定,适合长期、连续、稳定通信,适合需要固定带宽和固定时延的业务。
缺点:建立连接需要时间,用户不发送数据时预留资源也不能给别人用,资源利用率低,不适合突发数据。
2. 分组交换
优点:不需要预留固定资源,多个用户动态共享链路,适合突发数据,资源利用率高,不需要 call setup,网络更灵活。
缺点:可能排队,可能丢包,时延不稳定,需要可靠传输和拥塞控制机制配合。
3. 统计复用 Statistical Multiplexing
假设链路速率为 1 Gbps,每个用户活跃时需要 100 Mbps,每个用户只有 10% 时间活跃。
如果使用电路交换:
1 Gbps / 100 Mbps = 10
最多支持 10 个用户。
但分组交换不为每个用户固定预留 100 Mbps,因为用户不是一直活跃。空闲用户不占资源,活跃用户动态共享链路。所以可以支持超过 10 个用户。
代价是:如果同时活跃的用户太多,就会出现排队、拥塞和丢包。
十五、Internet 结构:网络的网络
Internet 不是一个单独运营商控制的网络,而是由很多网络互联形成的。
Access ISP 直接给家庭、企业、校园提供接入服务。若所有 Access ISP 两两直接相连,需要 N(N-1)/2 条连接,不可扩展。
更可扩展的方式是 Access ISP 连接到更大的 ISP,多个大型 ISP 之间再互联。Tier-1 ISP 是全球范围内连接能力很强的大型网络。
IXP 是 Internet Exchange Point,互联网交换点,多个 ISP 可以在 IXP 互联交换流量。Peering 是网络之间的对等互联关系。
大型内容提供商也会建设自己的网络,例如 Google、Microsoft、Akamai、Meta 和大型 CDN。它们会把内容部署到靠近用户的位置,减少访问时延,提高服务质量。
十六、网络性能:Delay、Loss、Throughput
第一讲性能部分主要包括 delay、loss、RTT、throughput、bandwidth 和 BDP。
十七、四种节点时延
一个分组经过路由器时,总节点时延是:
d_nodal = d_proc + d_queue + d_trans + d_prop
其中包括 processing delay、queueing delay、transmission delay、propagation delay。
1. Processing Delay 处理时延
处理时延包括检查 bit 错误、读取包头、查转发表、决定输出链路。通常比较小。
2. Queueing Delay 排队时延
排队时延发生在路由器缓冲区中。如果输出链路很忙,分组就要等待。排队时延取决于网络拥塞程度,因此变化很大。
3. Transmission Delay 传输时延
传输时延是把整个分组推入链路所需时间:
d_trans = L / R
其中 L 是分组长度,单位 bit;R 是链路速率,单位 bps。带宽越大,传输时延越小。
4. Propagation Delay 传播时延
传播时延是一个 bit 从链路一端传播到另一端所需时间:
d_prop = d / s
其中 d 是链路长度,s 是信号传播速度。传播时延和带宽没有直接关系,主要取决于距离和信号传播速度。
5. 传输时延 vs 传播时延
| 传输时延 | L/R | 分组大小、链路速率 | 把车队放上高速需要多久 |
| 传播时延 | d/s | 距离、信号传播速度 | 第一辆车从起点开到终点需要多久 |
带宽变大,能让数据更快“上链路”,但不能让信号传播速度无限变快。
十八、车队类比理解时延
课件用车队过收费站类比分组传输:car 类比 bit,caravan 类比 packet,toll booth service 类比 transmission,highway travel 类比 propagation。
如果一个车队有 10 辆车,收费站每辆车处理 12 秒,那么整个车队进入高速需要 10 × 12 = 120 秒。如果高速距离 100 km,车速 100 km/h,那么第一辆车到终点需要 1 小时。
这说明收费站处理时间类似传输时延,高速行驶时间类似传播时延,两者不是一回事。
十九、流量强度 Traffic Intensity
流量强度公式:
La / R
其中 L 是每个分组长度,单位 bit;a 是平均分组到达率,单位 packets/s;R 是链路速率,单位 bps。La 表示平均每秒到达多少 bit。
当 La/R 接近 0,说明流量远小于链路能力,排队时延很小。
当 La/R 接近 1,说明平均到达速率接近链路处理能力,排队时延会急剧增大。注意,等于 1 并不代表真实网络中“刚好稳定”。如果到达过程完全均匀,理论上可以刚好处理;但真实网络流量有突发性,只要短时间来一波流量,队列就会堆积,而系统没有多余能力快速消化队列。
当 La/R 大于 1,说明平均到达速率超过链路处理能力,长期来看队列会越来越长,最终 buffer 溢出,发生丢包。
二十、Packet Loss 丢包
路由器 buffer 是有限的。当分组到达时,如果 buffer 有空间,进入队列;如果 buffer 已满,分组被丢弃。
丢包可能由传输层处理,例如 TCP 会检测丢包并重传。但重传也会带来额外流量,可能进一步加重拥塞。
二十一、Traceroute 和 RTT
1. Traceroute
Traceroute 用来探测从源主机到目的主机经过哪些路由器。它发送带不同 TTL 的探测包,TTL 到 0 时,路由器返回错误消息,发送方根据返回消息知道路径上的路由器。每一跳通常发送 3 个 probe。
如果 traceroute 结果出现 * * *,不一定说明网络断了,也可能是路由器不回复探测包。
2. RTT
RTT 是 Round-Trip Time,往返时延,含义是从发送方发出数据,到收到对方响应所经历的时间。ping 命令常用来测 RTT。RTT 可以反映网络是否连通、往返时延大小、是否可能存在丢包。
二十二、Bandwidth、Throughput 和 BDP
1. Bandwidth 带宽
带宽表示链路最高传输速率,单位通常是 bps,例如 100 Mbps、1 Gbps、10 Gbps。带宽不是文件大小,而是传输能力。
2. Throughput 吞吐量
吞吐量是实际端到端传输速率。如果服务器到客户端路径有两条链路:
Rs = 20 Mbps
Rc = 5 Mbps
那么最大吞吐量约为:
min(20 Mbps, 5 Mbps) = 5 Mbps
所以端到端吞吐量由瓶颈链路决定。
3. Bandwidth 和 Throughput 的区别
| Bandwidth | 理论最大链路速率 |
| Throughput | 实际端到端传输速率 |
带宽高不代表吞吐量一定高,因为路径中可能有瓶颈链路,也可能有拥塞、丢包、协议限制。
4. BDP:Bandwidth Delay Product
BDP 是带宽时延积:
BDP = bandwidth × propagation delay
它表示链路这根“管道”中可以同时容纳多少 bit。
例如:
带宽 = 100 Mbps
传播时延 = 50 ms = 0.05 s
BDP = 100 × 10^6 × 0.05 = 5,000,000 bits
换算成 Byte:
5,000,000 / 8 = 625,000 Bytes ≈ 0.625 MB
注意:BDP 中的带宽和传播时延相乘,不是因为带宽决定传播时延,而是计算在传播时延这段时间内最多能塞进链路多少数据。
5. 单位换算
1 B = 8 b
小写 b 是 bit,大写 B 是 Byte。传输速率通常用 bit/s,存储容量通常用 Byte。
100 Mbps = 100 / 8 MB/s = 12.5 MB/s
二十三、网络安全入门
Internet 最初并不是以强安全为核心目标设计的。早期 Internet 更像是一个互相信任的研究网络。后来规模扩大,攻击变多,所以安全成为所有层都必须考虑的问题。
1. Packet Sniffing 嗅探
嗅探指读取或记录经过网络的数据包。在共享介质或无线网络中,攻击者可能通过混杂模式网卡记录经过的数据。Wireshark 就是一种抓包工具。如果数据没有加密,嗅探者可能看到敏感信息。
2. IP Spoofing 伪造身份
IP spoofing 指伪造源 IP 地址发送数据包。这说明 IP 地址本身不能证明身份,所以网络安全中需要 authentication,鉴权。
3. DoS 拒绝服务攻击
DoS 是 Denial of Service。攻击者通过大量虚假流量占满服务器、链路或其他资源,让合法用户无法正常访问服务。
4. 防御手段
常见防御包括 authentication 鉴权、confidentiality 加密、integrity checks 完整性检查、access restrictions 接入限制、firewalls 防火墙、DoS detection/reaction。
二十四、为什么需要分层?
计算机网络非常复杂,包含 hosts、routers、links、applications、protocols、hardware、software。如果不分层,所有功能搅在一起,会非常难设计、维护和扩展。
1. 航空旅行类比
从一个地方旅行到另一个地方,需要买票、托运行李、登机、跑道起飞、飞行路由、降落、取行李。每一步只关心自己的服务,并依赖下一层服务。网络分层也是类似思想。
2. 分层的好处
分层的主要优点:结构清晰,便于讨论复杂系统,模块化,易于维护和更新,某一层实现变化时可以尽量不影响其他层。
例如 WiFi 换成 Ethernet,应用层的 HTTP 不需要改变。
二十五、TCP/IP 五层模型
本课程常用五层模型:
Application
Transport
Network
Link
Physical
1. Application Layer 应用层
应用层直接为用户应用服务。典型协议包括 HTTP、DNS、SMTP、IMAP。数据单位通常叫 message。
2. Transport Layer 传输层
传输层负责端系统中进程到进程的通信。典型协议是 TCP 和 UDP。数据单位通常叫 segment。TCP 提供可靠、有序、面向连接的传输;UDP 提供无连接、不可靠、轻量的传输。
3. Network Layer 网络层
网络层负责主机到主机的通信和路由选择。典型协议是 IP 和 routing protocols。数据单位通常叫 datagram。
4. Link Layer 链路层
链路层负责相邻节点之间的数据传输。典型技术包括 Ethernet、WiFi、PPP。数据单位通常叫 frame。
5. Physical Layer 物理层
物理层负责在线路上传输 bit,例如电信号、光信号、无线电波。数据单位是 bits。
二十六、封装 Encapsulation
封装是分层体系结构中非常重要的概念。发送端数据从上往下走,每一层都会加上自己的头部。
应用层:message
传输层:segment = Ht + message
网络层:datagram = Hn + segment
链路层:frame = Hl + datagram
物理层:bits
可以理解成套娃:
Frame [
Link Header
Datagram [
IP Header
Segment [
TCP Header
Application Message
]
]
]
接收端则反过来逐层拆包:
bits -> frame -> datagram -> segment -> message
二十七、Host、Router、Switch 分别处理到哪一层?
Host 主机通常实现完整五层,因为主机既要运行应用,也要收发数据。
Router 路由器通常处理到网络层,主要看 IP 头部,根据目的 IP 决定转发方向。
Switch 交换机通常处理到链路层,主要看 MAC 地址,在局域网内转发 frame。
二十八、协议、服务、接口
协议是水平的,发生在同一层的对等实体之间。例如客户端 TCP 和服务器 TCP 遵守 TCP 协议。
服务是垂直的,是下层给上层提供的能力。例如传输层给应用层提供进程间通信服务,网络层给传输层提供主机间通信服务。
接口是上层调用下层服务的方式。例如应用程序通过 socket API 使用传输层服务。
如果第 k 层提供给上层的 service 发生变化,主要影响第 k+1 层,因为第 k+1 层直接依赖第 k 层服务。但第 k-1 层通常不受直接影响,因为第 k-1 层只是给第 k 层提供服务。
一句话:服务变化主要影响上一层,实现变化通常不影响上下层。
二十九、OSI 七层模型与 TCP/IP 模型
OSI 七层模型从上到下是:
Application
Presentation
Session
Transport
Network
Link
Physical
TCP/IP 常见四层模型是:
Application
Transport
Internet
Network Interface
本课程常用五层混合模型:
Application
Transport
Network
Link
Physical
Internet 协议栈中没有单独的表示层和会话层。如果需要加密、压缩、数据格式转换、会话同步,通常由应用层自己实现。
三十、TCP/IP 沙漏模型
TCP/IP 沙漏模型中,中间最窄处是 IP。
上面可以有很多应用:HTTP、DNS、Email、Streaming、Games。下面可以有很多链路技术:Ethernet、WiFi、4G/5G、Fiber、Satellite。但是中间都通过 IP 连接起来。
1. Everything over IP
各种应用都可以跑在 IP 之上。
2. IP over Everything
IP 又可以跑在各种底层链路之上。
3. 简单网络,复杂端系统
Internet 的设计思想是网络核心尽量简单,复杂功能尽量放在端系统。例如 IP 尽力而为转发,可靠传输由 TCP 在端系统实现,拥塞控制由端系统配合完成,应用逻辑放在应用层。
这样做的好处是 Internet 更容易扩展。
三十一、互联网历史
1. 1961—1972:早期分组交换与 ARPANET
重要事件包括 Kleinrock 的排队论工作、Baran 的军用分组交换研究、ARPANET 构想、1972 年 ARPANET demo、NCP、email 出现、ARPANET 约 15 个节点。
2. 1972—1980:互联网络思想形成
重要事件包括 ALOHAnet、Cerf and Kahn 提出互联网络架构、Ethernet 在 Xerox PARC 出现、ARPANET 扩展到约 200 个节点。重要原则包括 minimalism、autonomy、best-effort service、stateless routing、decentralized control。
3. 1980—1990:TCP/IP、DNS、SMTP、FTP
重要事件包括 1983 年 TCP/IP 正式部署,SMTP、DNS、FTP 出现,TCP congestion control 出现,主机数量达到约 100,000。
4. 1990s—2000s:Web 时代
重要事件包括 ARPANET 退役、NSFnet 商业化、Web 出现、HTML、HTTP、Mosaic、Netscape、IM、P2P、安全问题凸显,backbone 速率进入 Gbps 级别。
5. 2005 至今:移动互联网、云、内容网络
重要变化包括宽带普及、SDN 出现、4G/5G/WiFi 普及、智能手机兴起、云计算和数据中心兴起,大型内容提供商建设自有网络,CDN 把内容靠近用户。
三十二、标准化组织
ISO 制定了 OSI 七层参考模型。OSI 是 de jure standard,即正式标准,但现实中 Internet 更广泛采用 TCP/IP。
ITU 是联合国相关机构,负责通信标准制定。
IEEE 制定很多局域网和无线局域网标准,例如 IEEE 802.3 Ethernet 和 IEEE 802.11 WiFi。
WiFi Alliance 负责 WiFi 产品兼容认证。
IETF 是 Internet 标准制定的核心组织。很多 Internet 协议通过 RFC 发布,例如 RFC 791 是 IP,RFC 793 是 TCP。IETF 的文化是 rough consensus and running code,即粗略共识和可运行代码。
三十三、第一次作业补充知识点
作业里有一些点比 PPT 主线更偏教材题,复习时也要补上。
1. QoS 不只包括带宽和时延
QoS 是 Quality of Service,服务质量。除了 bandwidth 和 latency,还可能包括 jitter、packet loss、reliability、security、availability。
语音最怕时延太大、jitter 太大、连续丢包。语音可以忍受少量丢包,但不能忍受声音一会儿快一会儿慢。
视频关心带宽、时延、jitter、丢包率。直播和视频会议比点播视频更怕 jitter 和大时延。
金融交易更关心 reliability、security、correctness,有时也关心低时延。
2. Broadcast subnet 的碰撞概率
如果有 n 个主机,每个主机在一个时隙中以概率 p 发送,碰撞 collision 发生条件是同一个时隙中有 2 个或更多主机发送。
因此:
P(collision) = 1 – P(0个发送) – P(1个发送)
0 个主机发送:
P(0) = (1 – p)^n
刚好 1 个主机发送:
P(1) = n p (1 – p)^(n – 1)
所以:
P(collision) = 1 – (1 – p)^n – n p (1 – p)^(n – 1)
3. Connectionless vs Connection-oriented
Connectionless 无连接通信的特点是发送前不建立连接,每个分组独立处理,网络不维护连接状态,可能丢包、乱序。例子是 UDP 和 IP。
Connection-oriented 面向连接通信的特点是发送前先建立连接,通信双方维护连接状态,通常提供可靠、有序传输,结束后释放连接。例子是 TCP。
一句话:UDP/IP 像寄明信片;TCP 像先打电话接通,再持续通话。
4. Header overhead 封装开销
假设有 n 层协议,应用生成 M bytes 数据,每层添加 h bytes header。
总 header 大小:
n h
总发送大小:
M + n h
header 占比:
nh / (M + nh)
如果要百分比,再乘以 100%。
5. 电路交换与分组交换精确时延公式
假设消息长度为 x bits,路径有 k 跳,电路建立时间为 s 秒,每跳传播时延为 d 秒,分组大小为 p bits,数据速率为 b bps。
电路交换总时延:
T_circuit = s + k d + x / b
分组交换总时延,轻载、无排队、store-and-forward 情况下:
T_packet = k d + x / b + (k – 1)p / b
分组交换什么时候更快?比较 T_packet < T_circuit:
kd + x/b + (k – 1)p/b < s + kd + x/b
消去相同项:
(k – 1)p/b < s
所以:
s > (k – 1)p/b
也就是说,如果电路建立时间比分组交换的额外 store-and-forward 开销更大,那么分组交换更快。
三十四、本讲考试重点总结
第一讲最重要的内容可以压缩成下面这张清单。
1. Internet 两种视角
硬件视角:hosts + links + packet switches + networks
服务视角:为分布式应用提供通信服务
2. 协议定义
协议 = 消息格式 + 消息顺序 + 收到消息后的动作
3. 网络结构
Network edge:主机、客户端、服务器
Access network:把端系统接入第一个路由器
Network core:互联路由器组成的核心网络
4. Forwarding vs Routing
Forwarding:本地动作,按表转发
Routing:全局动作,决定路径
5. 分组交换 vs 电路交换
分组交换:共享资源,适合突发数据,可能排队和丢包
电路交换:预留资源,性能稳定,但资源利用率低
6. 四种时延
d_nodal = d_proc + d_queue + d_trans + d_prop
d_trans = L / R
d_prop = d / s
7. 流量强度
Traffic intensity = La / R
接近 1 时,排队时延急剧增大。
8. 吞吐量
Throughput = min(R1, R2, …, Rn)
端到端吞吐量由瓶颈链路决定。
9. BDP
BDP = bandwidth × propagation delay
表示链路中可以同时容纳多少 bit。
10. 分层和封装
五层模型:
Application
Transport
Network
Link
Physical
PDU:
message
segment
datagram
frame
bits
封装:
message -> segment -> datagram -> frame -> bits
11. TCP/IP 沙漏模型
Everything over IP
IP over everything
核心思想:IP 是中间窄腰,网络核心简单,端系统复杂。
三十五、常见易错点整理
易错点 1:传输时延和传播时延混淆
错误理解:带宽越大,传播时延越小。
正确理解:带宽影响传输时延,不直接影响传播时延。
易错点 2:FDM 和 TDM 反了
正确:FDM 分频率,TDM 分时间。
易错点 3:Forwarding 和 Routing 混淆
正确:Forwarding 是路由器内部本地转发,Routing 是全局路径计算。
易错点 4:吞吐量不是链路速率相加
端到端吞吐量看瓶颈链路:
min(R1, R2, …, Rn)
易错点 5:La/R = 1 不代表现实中稳定
只有完全均匀到达时才可能“刚好处理”。真实网络流量有突发性,所以接近 1 就已经很危险。
易错点 6:IP 地址不等于身份认证
IP spoofing 可以伪造源 IP,因此 IP 地址本身不能证明身份。
易错点 7:分层中“服务变化”和“实现变化”不同
实现变化通常对其他层透明;服务接口变化会影响上一层。
三十六、选择判断速记版
三十七、计算题公式汇总
1. 传输时延
d_trans = L / R
2. 传播时延
d_prop = d / s
3. 节点总时延
d_nodal = d_proc + d_queue + d_trans + d_prop
4. 流量强度
La / R
5. 吞吐量
Throughput = min(R1, R2, …, Rn)
6. BDP
BDP = R × d_prop
7. Header overhead
nh / (M + nh)
8. 碰撞概率
P(collision) = 1 – (1 – p)^n – n p (1 – p)^(n – 1)
9. 电路交换时延
T_circuit = s + kd + x/b
10. 分组交换时延
T_packet = kd + x/b + (k – 1)p/b
结语
第一讲看起来很杂,其实主线非常清楚:
应用想通信,就要把消息交给协议栈;协议栈逐层封装;数据通过接入网络进入网络核心;核心路由器用分组交换一跳一跳转发;传输过程中会产生时延、排队、丢包和吞吐瓶颈;为了管理复杂性,网络被设计成分层结构;为了安全,还要考虑嗅探、伪造、DoS 和各种防御机制。
这一讲真正要掌握的是“网络整体框架”。后面应用层、传输层、网络层、链路层,都是在这张框架图上继续展开。
只要第一讲这张图搭好了,后面的知识就不会散。





