#计算机网络学习笔记1
计算机网络概述
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或其他事件方面所采取的动作
网络边缘
通常把和因特网相连的计算机和其他设备称为端系统(end system),也叫主机(host)。端系统可以是个人计算机、工作站、服务器、智能手机等。端系统通过访问网络来获取各种服务,如电子邮件、网页浏览、视频流等。
主机有时分为两类:客户(client)和服务器(server)
接入网
接入网是指将端系统物理连接到边缘路由器的网络
边缘路由器是端系统到任何其他远程端系统路径上的第一台路由器
##### 家庭接入: DSL 、电缆、FTTH 、拨号和卫星
宽带住宅接入有两种最流行的类型:数字用户线(Digital Subscriber Line, DSL) 和电缆
当使用DSL 时,用户的本地电话公司也是它的ISP
家庭电话线同时承载了数据和传统的电话信号,它们用不同的频率进行编码:
- 高速下行信道,位于 50kHz 到 1MHz 频段;
- 中速上行信道,位于 4kHz 到 50kHz 频段;
- 普通的双向电话信道,位于 0 到 4kHz 频段。
这种方法使单根DSL 线路看起来就像有3 根单独的线路一样, 因此一个电话呼叫和一个因特网连接能够同时共享DSL 链路
DSL 标准定义了多个传输速率,包括12Mbps 下行和1.8Mbps 上行传输速率,以及55Mbps 下行和15Mbps 上行传输速率
DSL 利用电话公司现有的本地电话基础设施,而电缆因特网接入(cable Internet access) 利用了有线电视公司现有的有线电视基础设施
光缆将电缆头端连接到地区枢纽,从这里使用传统的同轴电缆到达各家各户和公寓
在这个系统中应用了光纤和同轴电缆,所以它经常被称为混合光纤同轴(Hybrid Fiber Coax, HFC) 系统
FTTH
光纤到户(Fiber To The Home, FTTH):从本地中心局直接到家庭提供光纤路径
两种光纤分布体系结构:
- 主动光纤网络(Active Optical Network, AON):本质上是交换以太网
- 被动光纤网络(Passive Optical Network, PON):每个家庭有一个光纤网络端接器(Optical Network Terminator, ONT),由专门的光纤连接到邻近的光纤分配器(splitter)。光纤分配器将多条家庭光纤汇聚到一条共享光纤,连接到本地电话公司的中心局中的光纤线路端接器(Optical Line Terminator, OLT)
FTTH 能提供的速率可以达到千兆比特每秒
企业(和家庭)接入:以太网和 WIFI
以太网用户使用双绞铜线与一台以太网交换机相连
以太网交换机或这样相连的交换机网络,则再与更大的因特网相连。使用以太网接入,用户通常以 100 Mbps 或 1 Gbps 速率接入以太网交换机,而服务器可能具有1 Gbps 甚至 10 Gbps 的接入速率
基于IEEE 802.11 技术的无线LAN 接入,更通俗地称为WiFi
广域无线接入:3G、LTE、5G
应用了与蜂窝移动电话相同的无线基础设施,通过蜂窝网提供商运营的基站来发送和接收分组
- 4G LTE:Long-Term Evolution,下行峰值速率可达数百 Mbps
- 5G:第五代蜂窝无线接入,提供更高速率(峰值可达数 Gbps)、更低延迟(毫秒级)和更大的设备密度,不仅用于手机还面向物联网(IoT)场景
物理媒体
导引型媒体:信号沿着固体媒介被导引:同轴电缆、光纤、双绞线
非导引型媒体:开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
双绞铜线
由两根绝缘的铜线组成,每根大约1mm 粗,以规则的螺旋状排列
无屏蔽双绞线(Unshielded Twisted Pair, UTP) 常用在建筑物内的计算机网络中,即用于局域网(LAN) 中
目前局域网中的双绞线的数据速率从 10 Mbps 到 10 Gbps 。所能达到的数据传输速率取决于线的粗细以及传输方和接收方之间的距离
同轴电缆
两根同轴的铜导线,双向
基带电缆:电缆上一个单个信道,Ethernet
宽带电缆:电缆上多个信道,HFC
同轴电缆能被用作导引型共享媒体(shared medium)。特别是,许多端系统能够直接与该电缆相连,每个端系统都能接收由其他端系统发送的内容
光纤和光缆
光脉冲,每个脉冲表示一个 bit,在玻璃纤维中传输
高速:点到点的高速传输(如 10 Gbps - 100 Gbps 的传输速率)
低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
安全
无线链路
开放空间传输电磁波,携带需要传输的数据
不需要物理的线缆
双向
传播环境效应
- 反射
- 吸收
- 干扰
类型:
- 地面微波
- LAN(e.g.: WIFI)
- wide-area(e.g.: 蜂窝)
- 卫星:
- 每个信道 Kbps 到 45Mbps(或者多个聚集信道)
- 同步静止卫星和低轨卫星
- 一颗通信卫星连接地球上的两个或多个微波发射器/接收器,它们被称为地面站。该卫星在一个频段上接收传输,使用一个转发器再生信号,并在另一个频率上发射信号
网络核心
网络核心是路由器的网状网络
数据通过网络进行传输的方式:
- 电路交换:为每个呼叫预留一条专有电路
- 分组交换:
- 将要传送的数据分成一个个单位
- 将分组从一个路由器到相邻路由器(hop),一段段最终从源端传送到目标端
- 每段:采用链路的最大传输能力
电路交换
端到端的资源被分配给从源端到目标端的呼叫
独享资源(不共享):每个呼叫一旦建立起来就能保证性能
如果呼叫没有数据发送,被分配的资源就会被浪费
通常被传统电话采用
为呼叫预留端-端资源
- 链路带宽、交换能力
- 专用资源:不共享
- 保证性能
- 要求建立呼叫链接
频分复用 FDM

在连接期间链路为每条连接专用一个频段,这个频段的宽度称为带宽
时分复用 TDM

时间被划分为固定期间的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙,这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据
e.g.: 在一个电路交换网络上,从主机 A 到主机 B 发送一个 640000 bit 的文件需要多长时间
所有的链路速率为 1536 Mbps
每条链路使用时隙数为 24 的 TDM
建立端-端的电路需要 500ms
解:
每条链路的速率(一个时间片):\(\frac{\text{1.536 Mbps}}{\text{24}}=\text{64kbps}\)
传输时间:\(\frac{\text{640000 bits}}{\text{64 kbps}}=\text{10s}\)
总时间:\(500ms+10s=10.5s\)
电路交换不适合计算机之间的通信:
- 建立时间长
- 计算机之间通信具有突发性,使用线路交换浪费的片较多
分组交换
以分组为单位存储-转发
存储转发传输
存储-转发传输(store-and-forward transmission):分组交换机在开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组
设分组长度为 \(L\) bit,链路传输速率为 \(R\) bps
单段链路的存储转发延迟:\(\frac{L}{R}\)
经过 \(N\) 段链路的端到端延迟:\(N\frac{L}{R}\)(忽略传播延迟和其他延迟)
e.g.: 源主机经过 2 个路由器(3 段链路)向目的主机发送 1 个分组,\(L=10000\) bit, \(R=100\) kbps
每段链路延迟 \(\frac{L}{R}=\frac{10000}{100000}=0.1s\)
端到端延迟 \(= 3 \times 0.1 = 0.3s\)
若同时发送 3 个分组呢?第一个分组在 \(t=0.3s\) 到达目的地,但第二个在 \(t=0.1s\) 才完全进入第一段链路,第三个在 \(t=0.2s\),所以三个分组全部到达的时间为 \(0.3 + 0.1 \times 2 = 0.5s\)
一般地,\(P\) 个分组经过 \(N\) 段链路的端到端延迟为 \((N+P-1)\frac{L}{R}\)
排队延迟和分组丢失
每台分组交换机有多条链路与之相连,对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称输出队列),用于存储路由器准备发往那条链路的分组
如果到达的分组需要传输到某条链路但该链路正忙于传输其他分组,则到达的分组必须在输出缓存中等待,产生排队延迟(queuing delay)
缓存空间有限,当到达的分组发现缓存已满时,将出现分组丢失(丢包,packet loss)——到达的分组或已排队的分组之一将被丢弃
转发表和路由选择协议
每个端系统具有一个 IP 地址。源在发送分组时,在分组首部包含了目的地的 IP 地址
每台路由器具有一个转发表(forwarding table),将目的地址(或目的地址的一部分)映射成输出链路
路由选择协议(routing protocol)用于自动设置转发表
虚电路网络
虚电路(Virtual Circuit, VC):介于电路交换和数据报之间的方式
- 在数据传输前建立一条虚电路(逻辑连接),分配虚电路号(VC ID)
- 分组沿建立好的路径转发,每个路由器维护 VC 转发表:(入链路, 入VC号) → (出链路, 出VC号)
- 传输结束后拆除虚电路
- 需要信令协议(signaling protocol)建立、维护和拆除 VC
代表:ATM、X.25、帧中继
因特网采用的是数据报网络(datagram network),不使用虚电路
| 数据报网络 | 虚电路网络 | |
|---|---|---|
| 连接建立 | 不需要 | 需要 |
| 路由器状态 | 不维护连接状态 | 维护每条 VC 的状态 |
| 转发依据 | 目的地址 | VC 号 |
| 代表 | 因特网 | ATM |
分组交换 vs 电路交换
分组交换允许更多用户同时使用网络
e.g.: 1 Mbps 的链路,每个用户活跃时需要 100 kbps,活跃时间占 10%
电路交换:最多同时支持 10 个用户
分组交换:35 个用户时,同时有 >10 个活跃用户的概率 < 0.0004
\[P(\text{超过10个用户活跃}) = 1 - \sum_{k=0}^{10}\binom{35}{k}(0.1)^k(0.9)^{35-k} < 0.0004\]
分组交换的优点:
- 适用于突发数据传输
- 资源共享,无需呼叫建立
分组交换的问题:
- 可能产生拥塞:分组延迟和丢失
- 需要协议保证可靠数据传输和拥塞控制
分组交换网络中的延迟、丢包和吞吐量
延迟的类型
分组从上游节点到路由器 A,经路由器 A 转发到路由器 B 的过程中,在路由器 A 经历的延迟为节点延迟:
\[d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop}\]
处理延迟 \(d_{proc}\)
- 检查分组首部,决定将该分组导向何处
- 检查比特级差错
- 通常是微秒级或更低
排队延迟 \(d_{queue}\)
- 在输出链路缓存中等待传输
- 取决于先期到达的、正在排队等待向链路传输的分组数量
- 如果队列为空且没有正在传输的分组,则排队延迟为 0
- 微秒到毫秒级
传输延迟 \(d_{trans}\)
- 将分组的所有比特推向链路所需的时间
- \(d_{trans} = \frac{L}{R}\),其中 \(L\) 为分组长度(bit),\(R\) 为链路传输速率(bps)
- 微秒到毫秒级
传播延迟 \(d_{prop}\)
- 比特从一个路由器传播到下一个路由器所需的时间
- \(d_{prop} = \frac{d}{s}\),其中 \(d\) 为两个路由器之间的距离,\(s\) 为链路中的传播速率(约 \(2 \times 10^8\) m/s 到 \(3 \times 10^8\) m/s)
- 毫秒级
传输延迟和传播延迟的区别:
传输延迟是路由器将分组推出所需的时间,与两个路由器之间的距离无关
传播延迟是比特从一个路由器传播到另一个路由器所需的时间,与分组长度和链路传输速率无关
收费站-车队类比:一支 10 辆车的车队(分组)经过收费站(路由器)
- 传输延迟 ≈ 收费站处理完所有 10 辆车所需的时间(每辆车 12 秒 → 共 120 秒)
- 传播延迟 ≈ 一辆车从这个收费站开到下一个收费站的时间(假设 100 km,100 km/h → 1 小时)
两者是完全不同的物理过程
e.g.: 完整的节点延迟计算
分组长度 \(L = 1500\) 字节,链路速率 \(R = 10\) Mbps,链路长度 \(d = 20\) km,传播速率 \(s = 2 \times 10^8\) m/s,处理延迟忽略,队列为空
\[d_{trans} = \frac{1500 \times 8}{10 \times 10^6} = 1.2 \text{ ms}\]
\[d_{prop} = \frac{20000}{2 \times 10^8} = 0.1 \text{ ms}\]
\[d_{nodal} = 0 + 0 + 1.2 + 0.1 = 1.3 \text{ ms}\]
排队延迟和丢包
令 \(a\) 表示分组到达队列的平均速率(pkt/s),\(L\) 为分组长度(bit),\(R\) 为链路传输速率(bps)
流量强度(traffic intensity):\(\frac{La}{R}\)
- \(\frac{La}{R} > 1\):比特到达队列的平均速率超过从队列传输出去的速率,队列趋向于无限增长,排队延迟趋向无穷大
- \(\frac{La}{R} \le 1\):排队延迟取决于到达流量的性质(周期性还是突发性)
- \(\frac{La}{R} \to 0\):排队延迟很小
- \(\frac{La}{R} \to 1\):排队延迟急剧增加
在实际中,队列容量有限,当分组到达一个满的队列时,路由器将丢弃该分组,即丢包
端到端延迟
假设从源到目的地之间有 \(N-1\) 个路由器(\(N\) 段链路),且网络无拥塞(排队延迟可忽略)
\[ d_{end-end} = N(d_{proc} + d_{trans} + d_{prop}) \]
其中 \(d_{trans} = \frac{L}{R}\)
Traceroute:向目的地发送一系列特殊分组。在经过 \(n\) 个路由器后,第 \(n\) 个路由器向源返回一个报文,源记录从发送到接收之间的时间,可以推断路径和延迟
吞吐量
瞬时吞吐量(instantaneous throughput):接收主机在某一时刻接收到文件的速率(bps)
平均吞吐量(average throughput):\(\frac{F}{T}\),其中 \(F\) 为接收的总比特数,\(T\) 为接收所有比特所花费的时间
瓶颈链路(bottleneck link):端到端路径上限制端到端吞吐量的链路
对于 \(N\) 段链路的路径,吞吐量为:
\[ throughput = \min\{R_1, R_2, \ldots, R_N\} \]
在实际因特网中,瓶颈通常出现在接入网
e.g.: 服务器通过速率 \(R_s = 2\) Mbps 的链路连接到网络核心,客户通过速率 \(R_c = 1\) Mbps 的链路连接到网络核心,核心链路速率远高于两者
端到端吞吐量 = \(\min\{R_s, R_c\} = 1\) Mbps(瓶颈在客户接入链路)
若有 10 个连接共享服务器接入链路(\(R_s = 2\) Mbps),每条连接的吞吐量 ≈ \(\min\{\frac{R_s}{10}, R_c\} = \min\{200 \text{ kbps}, 1 \text{ Mbps}\} = 200\) kbps(瓶颈变为服务器接入链路)
网络的网络
端系统通过接入ISP(access ISP)连入因特网
接入ISP本身必须互联 → 形成了”网络的网络”
演化过程:
- 如果每对接入ISP都直接互联 → \(O(n^2)\) 连接,不可扩展
- 全球转接ISP(transit ISP):接入ISP为客户,全球ISP为提供商
- 此时会出现多个竞争的全球ISP → 它们之间也必须互联
- 因特网交换点(Internet Exchange Point, IXP):多个ISP在此对等互联
- 内容提供商网络(如 Google):构建自己的网络,直接连接到低层ISP,减少对顶层ISP的付费
最终形成的层次结构:

- 第一层ISP(Tier-1 ISP):全球覆盖,互相对等互联(如 AT&T, NTT)
- 区域ISP(regional ISP):连接到一个或多个第一层ISP
- 接入ISP:连接到区域ISP或直接连接到第一层ISP
- IXP:不同ISP之间的交换节点
- 内容提供商网络:如 Google 的私有网络
协议层次及其服务模型
分层的体系结构
分层的好处:
- 为讨论系统组成部分提供了结构化方式
- 模块化使得更新系统组成部分更加容易
服务与协议的区别:
- 服务(service):下层为上层提供的功能(纵向,层间关系),通过服务访问点(SAP,如端口号)访问
- 协议(protocol):同层对等实体之间的通信规则(横向,对等关系)
面向连接的服务 vs 无连接的服务:
- 面向连接(connection-oriented):通信前建立连接,传输数据,结束后释放连接(如 TCP)
- 无连接(connectionless):每个报文独立路由,无需建立连接(如 UDP、IP)
因特网协议栈(5 层)
| 层次 | 名称 | 功能 | 典型协议 |
|---|---|---|---|
| 5 | 应用层 | 支持网络应用 | HTTP, SMTP, DNS, FTP |
| 4 | 传输层 | 进程间的数据传输 | TCP, UDP |
| 3 | 网络层 | 将数据报从源路由到目的地 | IP, ICMP, 路由协议 |
| 2 | 链路层 | 在相邻网络节点间传输数据 | Ethernet, WiFi, PPP |
| 1 | 物理层 | 在线路上传输比特 | — |
ISO/OSI 参考模型(7 层)
在因特网协议栈的应用层和传输层之间增加了两层:
- 表示层:使通信的应用程序能够解释交换数据的含义,包括数据压缩、数据加密、数据描述
- 会话层:提供数据交换的定界和同步,包括建立检查点和恢复方案
因特网协议栈缺少这两层,这些服务如果需要则由应用程序自身实现
封装
每一层的分组由两部分组成:首部字段和有效载荷字段(payload,通常是来自上一层的分组)
| 层次 | 分组名称 |
|---|---|
| 应用层 | 报文(message) |
| 传输层 | 报文段(segment) |
| 网络层 | 数据报(datagram) |
| 链路层 | 帧(frame) |
封装过程:
应用层报文 \(M\) → 传输层加上传输层首部 \(H_t\) 得到报文段 → 网络层加上网络层首部 \(H_n\) 得到数据报 → 链路层加上链路层首部 \(H_l\) 得到帧
中间设备的处理层次:
- 交换机(switch):工作在链路层和物理层,解封装到链路层再重新封装
- 路由器(router):工作在网络层、链路层和物理层,解封装到网络层查看目的 IP,再重新封装向下转发
网络安全
恶意软件可以经网络进入主机:
- 病毒(virus):需要用户交互才能感染设备(如打开邮件附件)
- 蠕虫(worm):无需用户交互即可感染设备
常见的网络攻击方式:
- 分组嗅探(packet sniffing):在共享广播媒体中放置被动接收器,记录经过的分组
- IP欺骗(IP spoofing):发送带有虚假源地址的分组
- 拒绝服务攻击(Denial-of-Service, DoS):使资源(服务器、带宽等)对合法用户不可用
- 漏洞攻击
- 带宽洪泛
- 连接洪泛
小结
本节概述了计算机网络和因特网的整体框架:
- 因特网的组成:网络边缘(端系统)、接入网、网络核心(路由器组成的网状网络)
- 数据传输方式:电路交换(FDM/TDM)vs 分组交换(存储转发)
- 性能度量:延迟(处理、排队、传输、传播)、丢包、吞吐量
- 协议分层:因特网五层协议栈与 OSI 七层模型
- 网络安全的基本威胁