计算机网络课程笔记
概论
什么是网络 -> 网络长什么样 -> 网络怎么分类 -> 怎么设计复杂的网络(分层) -> 怎么衡量网络好坏。
计算机网络的组成与功能
- 定义:多个独立的计算机通过通信线路和设备互连,实现信息交换和资源共享的系统。
- **三大功能 **
- 数据通信 (核心功能)
- 资源共享 (硬件、软件、数据)
- 分布式处理 (提高可靠性、负载均衡)
- 逻辑组成
- 通信子网 负责数据的传输和转发。
- 包括:通信节点(路由器、交换机)、通信链路。
- 资源子网 负责信息处理,向用户提供资源。
- 包括:主机(Host)、终端、软件资源。
- 通信子网 负责数据的传输和转发。
网络的拓扑结构
各种拓扑的优缺点(常见选择题考点):
- 网状 两两相连。可靠性高,但造价高、管理复杂。通常用于广域网核心。
- 星状 有中央控制器(Hub/Switch)。结构简单、易管理,但中央节点是瓶颈(单点故障)。局域网最常用。
- 总线型 一根线串联。结构简单、省线,但故障隔离困难(断一处全网瘫痪),且需解决冲突问题。
- 环状 令牌环网。时延确定,但延时大。
- 树状 星状的扩展,易于扩展范围。
网络的分类
- 按覆盖范围
- PAN (个域网): 10米内 (蓝牙)。
- LAN (局域网): 1km内,高带宽,低延迟 (校园网、办公楼)。
- MAN (城域网): 城市范围。
- WAN (广域网): 几十到几千公里 (Internet的核心部分)。
- 按工作模式
- C/S (客户机/服务器): 也就是Client/Server。服务集中,从Server获取资源。
- P2P (对等网): 没有固定的服务器,每个节点既是Client也是Server(如下载软件BitTorrent)。
网络分层体系结构
这是本章最重要的理论部分。
- 为什么分层? 化繁为简 (Divide and Conquer)。
- 协议三要素
- 语法 数据格式、电平结构(怎么写)。
- 语义 做什么控制、动作(做什么)。
- 时序 顺序、速度匹配(什么时候做)。
- OSI 七层模型
- 物理层 (Physical): 传输比特 (Bit)。涉及机械、电气特性。
- 数据链路层 (Data Link): 传输帧 (Frame)。相邻节点可靠传输、差错控制、MAC地址。
- 网络层 (Network): 传输分组/包 (Packet)。路由选择、拥塞控制、IP地址。
- 传输层 (Transport): 传输报文 (Message/Segment)。端到端通信、进程间通信、流量控制 (TCP/UDP)。
- 会话层 (Session): 建立维护会话。
- 表示层 (Presentation): 数据格式转换、加密、压缩。
- 应用层 (Application): 为用户提供服务。
- TCP/IP 模型: 事实上的工业标准。通常分为4层(应用层、传输层、网络层、网络接口层)或5层(加上物理层)。
- 数据封装与解封装
- PDU (协议数据单元) = SDU (服务数据单元) + PCI (协议控制信息/Header)
- 发送方:层层加头 (Encapsulation)。
- 接收方:层层去头 (Decapsulation)。
- 数据每下一层,就包上一层信封(Header);到了接收端,每上一层,就拆掉一层信封。
- 协议 & 服务:
- 协议 (Protocol): 水平的。控制对等实体(如主机A的传输层和主机B的传输层)之间的通信规则。
- 服务 (Service): 垂直的。由下层向上层通过接口(SAP)提供。上层使用下层的服务,但不知道下层怎么实现的(透明性)。
网络互连设备
不同层次对应的设备:
- 物理层:中继器 (Repeater)、集线器 (Hub)。
- 数据链路层:网桥 (Bridge)、交换机 (Switch)。
- 网络层:路由器 (Router)。
- 高层:网关 (Gateway)。
网络性能指标与计算
速率/带宽: 单位是 bps (bit per second)。注意:在存储中 ,但在通信速率中 。
时延的四个组成部分
发送时延
含义: 机器把数据推到线路上需要的时间。受网卡速度影响。
传播时延
含义: 数据在线路上跑需要的时间。受距离和介质影响(光纤/铜线通常取 或 )。
排队时延 & 处理时延: 通常会直接给出,或者忽略不计。
例题
- 题1: 100米距离,计算传播时延。
- 题2: 10Mbps速率,发送5000B (Bytes) 文件。注意单位换算! Byte 转 bit。
- 题1: 100米距离,计算传播时延。
数据通信基础
数据通信系统
五大组成部分
- 信源 (Source): 产生数据(如PC)。
- 发送设备 (Transmitter): 编码/调制(如Modem),将数据转为信号。
- 传输系统 (Transmission System): 线路或网络。
- 接收设备 (Receiver): 解调/解码。
- 信宿 (Destination): 接收数据。
核心术语
- 数据 (Data): 运送信息的实体。
- 信号 (Signal): 数据的电气或电磁表现。
- 信道 (Channel): 信号传输的通道。
- 比特率 (Bit Rate): 每秒传输的比特数 ()。
- 波特率 (Baud Rate): 每秒传输的码元(信号状态)数 ()。
信号和数据编码
包含两大定理和多种编码方式。
信号基础与两大定理
- 奈奎斯特 (Nyquist) 准则 (无噪声环境):
- 公式:
- 含义: 是最大数据传输率(bps), 是信道带宽(Hz), 是一个码元所能携带的离散状态数(比如有4种电压值,N=4)。
- 香农 (Shannon) 定理 (有噪声环境):
- 公式:
- 含义: 是信噪比(功率比)。
- 分贝 (dB) 换算: 题目通常给dB,必须先换算成数值比。
例如: 。
- 例题: 带宽3kHz,信噪比30dB。
- 先算S/N=1000,带入公式 。
编码技术
- 数字 -> 数字编码
- 单极性: 高电平1,低电平0。缺点:有直流分量,难同步。
- 非归零 (NRZ): 也就是电平翻转。
- 双相位编码 (Bi-phase):
- 曼彻斯特编码 (Manchester): 每一位中间都有跳变。
- 定义: 负正 = 0,正负 = 1。(不同教材定义可能相反)。
- 差分曼彻斯特 (Differential Manchester): 位中间跳变仅用于同步。
- 规则: 每一位开始处,有跳变 = 0,无跳变 = 1。
- 曼彻斯特编码 (Manchester): 每一位中间都有跳变。

- 数字 -> 模拟编码
- ASK (幅移): 调幅度。抗干扰差。
- FSK (频移): 调频率。抗干扰优于ASK。
- PSK (相移): 调相位。
- QAM (正交调幅): 结合幅度+相位。效率最高。
- 重要公式 (Slide 40):
- : 比特率,: 波特率,: 码元状态数(例如16-QAM,N=16)。
- 模拟 -> 数字编码 (PCM) (Slides 51-53):
- 过程: 采样 (Sampling) 量化 (Quantization) 编码 (Encoding)。
- 采样定理: 。
线路配置与传输方式
- 通信模式:
- 单工: 单向(如广播)。
- 半双工: 双向但不能同时(如对讲机)。
- 全双工: 双向且同时(如手机)。
- 同步 vs 异步:
- 异步: 一次传一个字符,带起始位/停止位。效率低,适合低速。
- 同步: 一次传一帧,需要时钟同步。效率高。
多路复用技术
- FDM (频分复用): 分割带宽频率,用于模拟信号。
- TDM (时分复用): 分割时间片,用于数字信号。
- 同步TDM: 固定分配时间片,轮询,可能浪费。
- 异步/统计TDM: 按需分配,需要发带地址信息,利用率高。
- WDM (波分复用): 光纤上的FDM,不同波长的光。
- CDMA (码分复用): (计算题高频考点)
- 原理: 不同用户使用正交的码片序列 (Chip Sequence)。
- 规则: 发送1发原码,发送0发反码(补码)。
- 计算: 接收方想听谁的数据,就用收到的总信号与该用户的码片序列做内积 (规格化内积)。
- 结果 = 1 发送了1
- 结果 = -1 发送了0
- 结果 = 0 未发送数据
数据交换技术
比较三种交换方式。
- 电路交换 (Circuit Switching):
- 特点: 建立独占物理通路 (建立传输拆除)。
- 优点: 实时性好,传输时延小。
- 缺点: 建立时间长,线路利用率低。
- 报文交换 (Message Switching):
- 特点: 存储转发 (Store and Forward)。整个报文一起传。
- 缺点: 时延大,对中间节点缓存要求高。
- 分组交换 (Packet Switching):
- 特点: 报文切小块(分组),存储转发。
- 优点: 线路利用率高,适合突发数据。
- 分类:
- 数据报 (Datagram): 无连接,每个包独立路由,可能乱序。
- 虚电路 (Virtual Circuit): 逻辑连接,保序,包括SVC(交换)和PVC(永久)。
错误检测和控制
- 基本概念: 检错 vs 纠错。码距 (Hamming Distance)。
- 检错 ;纠错 。
- 奇偶校验 (Parity):
- 奇校验: 加上校验位后,1的个数为奇数。
- 偶校验: 加上校验位后,1的个数为偶数。
- CRC (循环冗余校验):
- 步骤:
- 给定生成多项式 ,最高次幂为 。
- 在数据 后面补 个 0。
- 用模2除法 (即XOR异或运算,不借位减法) 用补0后的数据除以 对应的比特串。
- 余数即为 FCS (帧检验序列)。
- 例子: 数据1101011,G(x)=11001 (4阶)。后面补4个0 11010110000。除以11001,余数1010。发送数据为 11010111010。
- 步骤:
- 校验和 (Checksum): 反码算术求和,取反。
物理层
传输介质
传输介质是信号传输的通道,主要分为有线介质和无线介质。
双绞线
这是最常见的传输介质。
- 结构:两根绝缘铜导线按一定密度绞合在一起。绞合的目的是为了抵御外界电磁干扰并减少线对间的串扰。
- 分类:
- UTP (非屏蔽双绞线):没有金属屏蔽层,便宜,常用。分为多类,性能指标如下:
- 1、2类:4Mbps(老式语音/低速数据)。
- 3类:10Mbps。
- 4、5类:100Mbps。
- 超5类、6类:1Gbps。
- 超6类:10Gbps。
- STP (屏蔽双绞线):有金属屏蔽层,能有效防止噪声干扰,但价格更贵。
- UTP (非屏蔽双绞线):没有金属屏蔽层,便宜,常用。分为多类,性能指标如下:
- 连接器:RJ-45插头(水晶头)和插座。
- 线序标准:EIA/TIA规定了两种线序标准。
- T568A标准:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕。
- T568B标准:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。
- 线缆类型与用途:
- 直通线:两端线序相同(都用A或都用B)。用于连接不同类型设备(如:电脑连交换机、交换机连路由器)。
- 交叉线:一端568A,一端568B。用于连接相同类型设备(如:电脑连电脑、交换机连交换机)。
同轴电缆
- 结构:由内向外依次是:内层导体(铜芯)、绝缘层、网状导电屏蔽层、外层塑料皮。
- 分类:粗缆(用于早期总线网络主干)、细缆。
- 特点:用于总线型拓扑结构,抗干扰性较好,但现在局域网中已很少使用。
光纤
- 结构:
- 纤芯 (Core):高折射率。
- 包层 (Cladding):低折射率。
- 保护层。
- 工作原理(物理原理):利用全反射原理。光线从高折射率的纤芯射向低折射率的包层,只要入射角满足条件,光线就会在界面发生全反射,从而限制在纤芯内传输。
- 分类(重点区分):
- 多模光纤 (Multi-mode):纤芯较粗,允许多束光线以不同反射角传输。输入脉冲在传输后会展宽(色散大),适合近距离传输。
- 单模光纤 (Single-mode):纤芯很细(波长级别),光线像沿着直线一样传播,几乎无反射干扰。损耗小,适合远距离、高速度传输。
- 优缺点:
- 优点:传输速率高、距离远、抗电磁干扰(因为传的是光)、重量轻。
- 缺点:价格高、安装维护和熔接困难、易断。
无线传输介质
- 信号类型:无线电波、微波、红外线、声波等。
- 传播方式:定向传播(点对点)、全向传播(广播)。
- 常见频段:WiFi常用的2.4GHz和5GHz频段(属于免授权频段)。
物理连接与协议特性
物理层协议主要定义DTE和DCE之间的接口标准。
DTE 与 DCE
- DTE (数据终端设备):产生和处理数据的设备,如计算机 (PC)。
- DCE (数据电路终接设备):负责信号变换(数模转换)和网络接入的设备,如调制解调器 (Modem)。
- 连接关系:DTE —> (接口) —> DCE —> 通信网络 —> DCE —> (接口) —> DTE。
物理层协议的四大特性
物理层协议(如EIA-232)必须定义以下四个方面:
- 机械特性:规定接口的形状、尺寸、引脚数量、排列方式等(如DB-25连接器)。
- 电气特性:规定信号线上电压的范围、阻抗匹配等(如多少伏代表1,多少伏代表0)。
- 功能特性:规定每一根引脚的具体含义和功能(如哪根线是发数据的,哪根是控制信号的)。
- 规程特性 (过程特性):规定不同功能信号出现的先后顺序和时序关系(握手过程)。
EIA-232 接口标准 (RS-232)
这是本章介绍最详细的接口标准,也是典型的DTE-DCE接口。
机械特性
- 使用 DB-25 连接器(25根针脚)。
- 规定电缆长度不能超过 25米。
电气特性
- 采用 非归零电平编码 (NRZ-L)。
- 逻辑 0:对应 正电平 (+3V ~ +15V)。
- 逻辑 1:对应 负电平 (-3V ~ -15V)。
- (注:与TTL电平相反,正电压反而是0)。
功能特性(主要引脚定义)
虽然有25根线,但常用的主要是以下几根(记住英文缩写和流向):
- Pin 2 (BA/TD) - 发送数据:DTE -> DCE。
- Pin 3 (BB/RD) - 接收数据:DCE -> DTE。
- Pin 4 (CA/RTS) - 请求发送:DTE -> DCE(DTE问Modem:我能发吗?)。
- Pin 5 (CB/CTS) - 清除待发送:DCE -> DTE(Modem回DTE:你可以发了)。
- Pin 6 (CC/DSR) - DCE准备好:DCE -> DTE(Modem在线)。
- Pin 20 (CD/DTR) - DTE准备好:DTE -> DCE(电脑在线)。
- Pin 7 (AB/GND) - 信号地。
- Pin 8 (CF/CD) - 载波检测:DCE -> DTE(Modem检测到了对方发来的信号)。
- Pin 22 (CE/RI) - 振铃指示:DCE -> DTE(有人呼叫)。
规程特性(通信步骤)
这是一个典型的握手过程,分为五个阶段:
- 准备:保证设备加电并连接。
- 就绪:
- DTE发送 DTR (20) -> DCE。
- DCE发送 DSR (6) -> DTE。
- 双方确认对方都在线。
- 建立连接 (物理连接):
- 发送方DTE发送 RTS (4) 请求发送。
- 发送方DCE向对方发送载波,然后回送 CTS (5) 给DTE,表示允许发送。
- 接收方DCE检测到载波,激活 CD (8) 通知接收方DTE传输开始。
- 数据传输:
- DTE通过 TD (2) 发送数据给DCE。
- DCE将数据调制后发到网络。
- 接收端DCE解调后通过 RD (3) 发给接收端DTE。
- 注:同步通信时还需要时钟信号线(Pin 15/17/24)配合。
- 清除 (断开):
- DTE撤销 RTS (4)。
- DCE撤销载波和 CTS (5)。
- 接收方检测到载波消失,断开连接。
其他相关概念
- EIA-232子集:实际应用(如PC串口)常用9针接口(DB-9),去掉了同步时钟线和辅助信道线,只保留核心的异步通信控制线。
- 空调制解调器 (Null Modem):
- 场景:两台DTE设备(如两台电脑)距离很近,不需要Modem直接相连。
- 做法:使用交叉线连接。将一端的发送(TX)连到另一端的接收(RX),一端的RTS连到另一端的CTS等,欺骗DTE以为连接了DCE。
- X.21标准:ITU-T制定的数字接口标准,使用DB-15连接器,减少了控制线数量,更适合数字网络。
物理层网络互连设备
中继器 (Repeater) / 集线器 (Hub)
- 层级:工作在物理层。
- 功能:再生(Regenerate)信号。接收衰减的信号,整形、放大后转发出去。
- 作用:扩展局域网的地理覆盖范围。
- 限制与问题:
- 不能隔离冲突:所有连接的设备在同一个冲突域,设备越多,冲突概率越大,性能越低。
- 安全性差:数据会广播到所有端口。
- 协议要求:连接的两端必须使用相同的物理层协议和速率(如都是10Mbps以太网)。
数据链路层
数据链路层位于物理层之上,它将物理层提供的比特流封装成帧 (Frame)。其核心任务是将不可靠的物理链路转变为可靠的数据链路。主要工作包括三个方面:线路规程、差错控制和流量控制。
线路规程
线路规程主要解决“谁在什么时候有权发送数据”的问题,分为两种模式:
询问/确认模式 (ENQ/ACK)
适用场景:点对点 (Point-to-Point) 的专用链路,两端设备地位平等。
工作过程:
- 发起方想发数据,先发一个 ENQ (询问帧) 问接收方:“你准备好了吗?”
- 接收方如果准备好,回 ACK (确认帧);如果没准备好,回 NAK (否认帧)。
- 收到 ACK 后,发起方开始传数据。
- 数据传完,发 EOT (传输结束帧) 断开。
异常处理:如果发了 ENQ 后没收到回应,或者收到 NAK,或者传输中 ACK 丢失,都需要相应的超时重发或等待机制。
轮询/选择模式 (Poll/Select)
适用场景:多点连接 (Multipoint),即主从式结构(一个主设备,多个从设备)。
工作方式:主设备控制链路,从设备只能响应。
选择 (Select):主设备 -> 从设备。当主设备有数据要发给从设备时,发 SEL 帧。从设备回 ACK 表示准备好接收,回 NAK 表示拒绝。
轮询 (Poll):从设备 -> 主设备。主设备想知道从设备有没有数据要发,逐个询问。
- 主设备发 POLL。
- 如果从设备没数据,回 NAK。
- 如果从设备有数据,直接回 数据帧。
流量控制与差错控制
流量控制防止发送方发太快把接收方淹没,差错控制(ARQ)处理帧的损坏或丢失。
停止等待协议 (Stop-and-Wait)
- 原理:发一帧,等一个 ACK,再发下一帧。
- 流量控制:每次只发一帧。效率低,特别是距离长时,大部分时间浪费在等待 ACK 上(半双工)。
- 差错控制:
- 帧破坏:接收方收到坏帧,回 NAK,发送方重传。
- 帧丢失:发送方设置定时器,超时未收到应答则重传。
- 应答帧丢失:发送方超时重传,接收方通过帧编号 (0和1交替) 识别并丢弃重复帧。
发送一帧所需的最短总时间 ():
完成一个数据帧的发送、传播以及收到确认帧所需的最小时间间隔通常记为 (或 )。
符号含义:
- :发送一帧所需的最短总时间。
- :发送数据帧的时间,计算公式为 。
- :信号传播时延,计算公式为 。
- :节点处理数据的时间。
- :发送确认帧(ACK)的时间,计算公式为 。
信道利用率 ( 或 ):
信道利用率定义为信道被有效占用的时间与总时间之比。
- 新版定义: $$F = \frac{t_I}{W_T}$$
- 旧版定义(包含传播时延): $$F = \frac{t_I + t_p}{W_T}$$
符号含义:
- 或 :信道利用率。
有效数据传输率 ()
单位时间内传输的有效数据位数。
符号含义:
- :有效数据传输率。
- :一帧中的有效数据位数(不含首部和尾部开销)。
存在差错时的平均传输时间 ()
当考虑帧的出错率 时,正确发送一帧所需的平均时间间隔为:
符号含义:
- :正确发送一帧的平均时间。
- :无差错情况下的最小时间间隔(等同于 )。
- :数据帧的出错率。
系统吞吐量与传输效率
- 最大吞吐量 ():每秒成功发送的帧数。 $$\lambda_{\max} = \frac{1}{t_V} = \frac{1 - p}{t_W}$$
- 极限吞吐量 (): $$M = \frac{1}{t_I}$$
- 系统的传输效率 ():最大吞吐量与极限吞吐量之比。 $$\rho = \frac{1 - p}{a}$$ 其中, 为总时间与发送时间之比: ()。
符号含义:
- :系统传输效率,其大小与 成反比, 越小(即等待时间越短),效率越高。
滑动窗口协议
- 原理:允许发送方在收到 ACK 前连续发送多个帧。
- 窗口概念:
- 发送窗口:存放已发送但未确认的帧。
- 接收窗口:存放已接收但未上交/未确认的帧。
- 编号:帧使用模 编号()。
- 差错控制策略 (ARQ):
- 回退 N (Go-Back-N):
- 如果某一帧出错,接收方丢弃该帧及之后所有帧。发送方重传出错帧及之后的所有帧。
- 窗口大小限制:发送窗口尺寸 。如果等于 ,无法区分是新帧还是重传的旧帧(会产生歧义)。
- 选择拒绝 (Selective Reject):
- 接收方只拒收出错的那一帧,缓存后续正确的帧。发送方只重传出错的那一帧。
- 需排序和查找机制,复杂。
- 窗口大小限制:发送窗口 + 接收窗口 。通常设为。
- 回退 N (Go-Back-N):
窗口大小的选择:
为了使发送方能够不间断地发送数据(即达到极限吞吐量),窗口的大小 必须足够大,以覆盖信号在往返时间内能够传输的帧数。
- 基本条件: $$nt_I > 2(t_I + t_p)$$
- 考虑确认帧发送时间时: $$nt_I > t_I + 2t_p + t_s$$
符号含义:
- :窗口大小(允许连续发送的帧数)。
- :发送一个数据帧的时间。
- :信号传播时延。
- :发送一个确认帧(ACK)的时间。
回退 N 协议的效率分析
在回退N协议中,若某一帧损坏或丢失,发送方必须重传该帧及其后续所有已发送但未确认的帧。
- 正确传送一帧所需的平均时间 (): $$t_V = t_I + \frac{pt_W}{1 - p}$$
- 系统最大吞吐量 (): $$\lambda_{max} = \frac{1}{t_V} = \frac{1 - p}{t_I(1 + p(a - 1))}$$
- 系统传输效率 (): $$\rho = \frac{1 - p}{1 + p(a - 1)}$$
符号含义:
- :数据帧的出错率。
- :发送一帧并收到确认所需的最小时间间隔(在效率对比中,)。
- :总时间与发送时间之比()。
- :系统传输效率,其随 的增大而降低,但在相同条件下通常优于停止等待协议。
窗口尺寸与编号范围的关系
为了区分新帧和重复帧,协议对窗口尺寸有严格限制:
- 回退N协议: 若帧的编号范围是 (模 编号),则发送窗口最大为 。
- 选择拒绝协议: 若帧的编号范围是 ,则发送窗口尺寸 和接收窗口尺寸 必须满足: $$W_t + W_r \le n$$ 若要求 ,则窗口尺寸最大为 。
例题
卫星通信下的窗口计算
已知: 卫星通信中,帧长为 1200 bit,信道速率为 4.8 kbit/s,传播延迟 。 求: 在全双工通信中,窗口 至少应为多少? 解:
- 计算发送一帧的时间 : $$t_I = \frac{1200}{4.8 \times 10^3} = 0.25\text{ s} = 250\text{ ms}$$
- 根据窗口选择公式: $$n > \frac{2(t_I + t_p)}{t_I} = \frac{2(250 + 250)}{250} = 4$$ 结论: 窗口 至少应大于 4。
不同协议的传输效率对比
已知: 数据帧差错率 ,参数 。 比较: 停止等待协议与滑动窗口协议的效率。 解:
- 停止等待协议: $$\rho = \frac{1 - p}{a} = \frac{0.99}{4} = 0.2475$$
- 滑动窗口协议: $$\rho = \frac{1 - p}{1 + (a - 1)p} = \frac{0.99}{1 + 3 \times 0.01} = \frac{0.99}{1.03} \approx 0.96$$ 结论: 即使出错率达到 1%,滑动窗口协议的效率(0.96)仍远高于停止等待协议(约 0.25)。
HDLC 通信协议
HDLC (High-level Data Link Control) 是典型的面向比特的协议,不依赖字符集,通过比特填充实现透明传输。
帧结构
- 标志 (Flag):
01111110,用于定界。 - 位填充 (Bit Stuffing):在数据中,只要发现连续 5 个
1,发送方自动插入一个0;接收方接收时,发现 5 个1后面的0自动删除。确保数据中不会出现01111110。 - 地址 (Address):全 1 为广播。
- 控制 (Control):决定帧类型(核心)。
- 信息 (Info):用户数据。
- FCS:CRC 校验。
三种帧类型 (由控制字段决定)
- 信息帧 (I-帧, Information):
- 首位为 0。
- 用于传输用户数据,包含
N(S)(发送序号) 和N(R)(期望接收的下一帧序号)。 - 支持捎带确认:在发数据的同时确认对方的数据。
- 监管帧 (S-帧, Supervisory):
- 前两位为 10。
- 用于流量和差错控制,没有信息字段。
- 类型:
- RR (Receive Ready):准备好接收,相当于 ACK。
- RNR (Receive Not Ready):忙,暂停发送。
- REJ (Reject):拒绝,要求重发 (Go-Back-N)。
- SREJ (Selective Reject):选择拒绝。
- 无编号帧 (U-帧, Unnumbered):
- 前两位为 11。
- 用于链路建立、断开和管理 (如 SABM 建立连接, DISC 断开连接, UA 确认)。
数据链路层网络互连
这一部分讨论如何扩展局域网,主要涉及网桥和交换机。
网桥 (Bridge)
- 层级:工作在数据链路层 (MAC 子层)。
- 功能:连接两个局域网,存储转发帧,进行地址过滤(隔离冲突域)。
- 路由算法:
- 透明网桥 (Transparent Bridge):
- 自学习:通过观察源 MAC 地址和入端口,建立转发表 (MAC地址 -> 端口)。
- 转发:查目的 MAC,如果在表中且端口不同则转发;如果在表中且端口相同则丢弃(隔离);如果不在表中则泛洪 (广播)。
- 生成树协议 (Spanning Tree Protocol, STP):解决环路导致的广播风暴。通过选举根网桥 (Root Bridge)(ID 最小的),并在每个网段选出指定端口,禁用多余路径,将网络逻辑上变成无环树状结构。
- 源路由网桥:由发送源在帧中指定路由路径,网桥只照做。
- 透明网桥 (Transparent Bridge):
第二层交换机 (L2 Switch)
- 本质:多端口的网桥。
- 特点:每个端口独享带宽(并行工作),隔离冲突域,但不隔离广播域。
- 交换方式:
- 直通式 (Cut-Through):读到目的 MAC (前6字节) 就立即转发。速度快,延迟小,但无法检错,不能连接不同速率端口。
- 存储转发 (Store-and-Forward):收完整个帧,CRC 校验无误后再转发。最广泛使用,支持不同速率转换,但延迟大。
VLAN (虚拟局域网)
- 定义:在物理交换机上逻辑划分网段。
- 优点:
- 端口分隔:不同 VLAN 无法直接通信(逻辑隔离)。
- 安全性:隔离了广播域,防止广播风暴,提升安全。
- 灵活管理:不受物理位置限制,通过软件配置更改用户组。
- 实现:通常在帧中插入 VLAN Tag (如 802.1Q 标准)。不同 VLAN 间通信需要通过路由器或三层交换机。
网络层
网络层的功能与服务
网络层的主要任务是将数据从源主机传输到目的主机。为了实现这一目标,它主要提供两个功能:路由(Routing)和交换(Switching)。
逻辑寻址
IP地址:网络层使用逻辑地址(如IP地址)来标识信源和信宿。这与数据链路层的物理地址(MAC地址)不同。IP地址具有层次结构,有助于路由选择。
两种服务模型
网络层向传输层提供的服务有两种主要模式,这直接影响了内部的交换方式。
面向连接的服务:虚电路 (Virtual Circuit, VC)
核心思想:模仿电话系统。
过程:
- 建立连接:发送方发送呼叫请求,建立一条逻辑路径(虚电路)。
- 数据传输:所有分组沿着这条建立好的路径按序发送。分组头部只需要包含短的虚电路号 (VC ID),不需要完整的目的地址。
- 连接释放:传输结束,拆除电路。
优点:保证顺序、可靠性较高、头部开销小、支持预分配带宽。
缺点:建立连接有延迟;若路径中某节点瘫痪,整个电路中断(脆弱性)。
无连接的服务:数据报 (Datagram)
核心思想:模仿邮政系统。
过程:每个分组(Packet)独立处理。每个分组都携带完整的源和目的地址。路由器根据当前网络状态为每个分组独立选择路径。
- 特点:
- 分组可能乱序到达。
- 分组可能走不同的路径。
- 尽力而为的交付(不可靠)。
- 优点:灵活、健壮(某节点坏了可以绕路)、无建立连接延迟。
- 缺点:头部开销大(每次都要带全地址)、不保证顺序和可靠性。
- 特点:
交换技术的时延计算
| 方式 | 是否先建立连接 | 是否分组 | 是否存储转发 |
|---|---|---|---|
| 电路交换 | ✅ | ❌ | ❌ |
| 报文交换 | ❌ | ❌ | ✅(整报) |
| 虚电路 | ✅ | ✅ | ✅(分组) |
| 数据报 | ❌ | ✅ | ✅(分组) |
例题,对比电路交换、报文交换、**分组交换(虚电路)和分组交换(数据报)**的端到端延迟。
场景假设:
- 路径:(3段链路)。
- 报文长度: bit。
- 带宽(速率): bps。
- 传播延迟:(每段)。
- 分组大小: bit(含头部)。
- 建立连接时间:。
电路交换 (Circuit Switching)
机制:物理链路直接连通,数据像水流一样过去。
总时延 = 建立时间 + 发送时延 + 传播时延
注:中间节点没有存储转发,所以发送时延只算一次(源头发出,终点几乎同时开始接收)。
报文交换 (Message Switching)
机制:存储-转发。整个报文在每一跳都要收齐了再发。
总时延 = (发送时延 + 传播时延) 跳数
注:每一跳都要完整的发送时间。
分组交换 - 虚电路 (Packet Switching - Virtual Circuit)
机制:先建立连接,然后分组流水线(Pipeline)传输。
时延组成:建立时间 + 第一个分组到达时间 + 剩余分组的发送时间。
总时延
- 其中 是分组数量。
- 第一部分是建立连接。
- 第二部分是第一个分组完整走完3跳到达终点的时间。
- 第三部分是后续分组紧接着从源头出来的时间(因为是流水线,当第1个分组在链路2时,第2个分组在链路1,以此类推,终点每隔 就收到一个包)。
分组交换 - 数据报 (Packet Switching - Datagram)
机制:无连接,直接分组流水线传输。
总时延 = (第一个分组到达时间) + (剩余分组发送时间)
区别:相比虚电路,仅仅少了一个 。
路由算法
路由算法分为非适应性(静态)和适应性(动态)。重点掌握动态路由算法。
距离向量路由 (Distance Vector, DV)
- 典型协议:RIP (Routing Information Protocol)。
- 算法基础:Bellman-Ford 算法。
- 工作原理:
- "谣言"传播:每个路由器只和邻居交换信息。
- 交换内容:自己的整个路由表(我去哪里需要多远)。
- 更新策略:周期性(如30秒)更新。
- 计算逻辑:如果邻居到目标X的距离 + 我到邻居的距离 < 我当前到X的距离,则更新路由表。
- 特点:实现简单,但收敛慢,存在**计数到无穷大(Count-to-Infinity)**问题(好消息传得快,坏消息传得慢)。
链路状态路由 (Link State, LS)
- 典型协议:OSPF (Open Shortest Path First)。
- 算法基础:Dijkstra 算法 (SPF)。
- 工作原理:
- 发现邻居:发送 Hello 包。
- 测量开销:测算到邻居的 metric(如带宽、延迟)。
- 构造LSP (链路状态包):包含“我是谁,我的邻居是谁,费用多少”。
- 广播 (Flooding):将LSP发送给网络中所有路由器(不仅仅是邻居)。
- 计算:每个路由器拥有全网一致的拓扑图(链路状态数据库),独立运行 Dijkstra 算法计算以自己为根的最短路径树。
- 特点:收敛快,不易产生环路,CPU消耗较高。
Dijkstra 算法计算步骤(必考操作):
给定一个图和起点(如A):
- 初始化:集合 。列出A到直接邻居的距离,其他为 。
- 找最小:在不在 中的节点里,找一个距离A最近的节点(比如B),加入 。
- 更新(松弛):以新加入的节点B为跳板,检查能不能缩短A到其他节点的距离。如果 ,则更新 的距离。
- 重复:直到所有节点都加入 。
路由协议体系
互联网路由协议分为两大类:
IGP (内部网关协议):在同一个自治系统 (AS) 内部使用。
- RIP:基于距离向量,跳数作为度量,最大15跳,适合小网络。
- OSPF:基于链路状态,度量值通常与带宽成反比,支持大规模网络,分区域 (Area) 管理。
EGP (外部网关协议):在不同的自治系统 (AS) 之间使用。
- BGP (Border Gateway Protocol):
- 路径向量协议 (Path Vector)。
- 不仅考虑最短路径,还考虑策略(如政治、经济因素)。
- 避免环路:通过记录经过的 AS 序列。
- BGP (Border Gateway Protocol):
网络层互连设备
- 路由器 (Router):
- 工作在网络层。
- 根据 IP 地址转发。
- 隔离广播域。
- 主要功能:路由选择、分组转发。
- 第三层交换机 (L3 Switch):
- 本质是“带有路由功能的交换机”。
- 一次路由,多次交换:第一个包通过CPU软件路由,建立流表后,后续包通过硬件ASIC芯片快速转发。
- 速度快,常用于局域网核心层。
拥塞控制与流量控制
- 拥塞 (Congestion):是一个全局性问题。网络中数据包太多,超过了处理能力,导致性能下降(吞吐量下降,延迟急剧增加)。
- 流量控制 (Flow Control):是点对点问题。发送方发太快,接收方来不及收。
- 拥塞控制方法:
- 开环控制(预防):设计时就决定好,如限制入网流量。
- 闭环控制(反馈):基于反馈调节。
- 抑制包 (Choke Packet):路由器拥塞时直接发包告诉源主机“慢点发”。
- 丢弃分组:缓冲区满了就丢包(TCP会将其视为拥塞信号)。
- 死锁:
- 存储转发死锁:缓冲区满了,这就形成了互锁。
- 重装死锁:接收端无法重组分片,这就占着缓冲区不释放。
网络层专题:网络互联设备
物理层互联设备
物理层设备只负责处理信号(比特流),不理解帧结构或IP地址,因此它们也是“傻瓜”设备。
中继器 (Repeater)
功能:对衰减的信号进行再生、整形和放大,然后转发出去。
目的:扩展局域网的物理覆盖范围(克服信号衰减限制)。
限制:
- 连接的两端必须是相同的物理层和MAC协议(例如都是10Mbps以太网)。
- 不能隔离冲突:它会将一端的冲突和噪声复制到另一端。
- 性能影响:连接的站点越多,流量越大,冲突概率越高,导致网络性能下降。
- 连接的两端必须是相同的物理层和MAC协议(例如都是10Mbps以太网)。
集线器 (Hub)
本质:多端口的中继器。
工作方式:从一个端口收到的信号,经过再生放大后,向除输入端口外的所有其他端口转发(广播式转发)。
- 特性:
- 物理星型,逻辑总线:物理上看是星型连接,但逻辑上所有设备共享同一条介质。
- 共享带宽:所有端口共享总带宽(如10Mbps的Hub,10个端口同时工作,每个平均只有1Mbps)。
- 安全性差:所有数据发往所有端口,容易被窃听(Sniffing)。
- 冲突域:Hub连接的所有设备属于同一个冲突域(Collision Domain)。
- 特性:
数据链路层互联设备
链路层设备能识别MAC地址(帧),具备存储转发和寻址能力。
网桥 (Bridge)
功能:连接两个或多个局域网网段,基于MAC地址表进行帧的存储和转发。
- 核心作用:
- 隔离冲突域:网桥的每个端口是一个独立的冲突域。端口A的冲突不会传到端口B。
- 过滤通信:根据目的MAC地址决定是转发到另一端,还是丢弃(如果在同一侧)。
- 核心作用:
优点:扩展网络范围,减少冲突,提高性能和安全性。
二层交换机 (L2 Switch)
- 本质:多端口的网桥。
- 工作原理:
- MAC地址表:自动学习源MAC地址与端口的映射关系。
- 独占带宽:每个端口独享带宽(如10个100Mbps端口,总背板带宽需大于1000Mbps),支持全双工通信。
- 硬件转发:使用ASIC芯片实现线速交换,速度极快。
- 工作原理:
三种典型的交换技术
- 直通式 (Cut-Through):
- 机制:一读到目的MAC地址(前6字节)就立即查找转发表并转发。
- 优点:延迟极小,速度快。
- 缺点:无法检错(CRC校验在帧尾),坏帧也会被转发;不能连接不同速率的端口。
- 存储转发 (Store-and-Forward):
- 机制:收完整个帧,进行CRC校验,无误后再转发。
- 优点:检错能力强,可靠性高;支持不同速率端口转换(如10M转100M)。
- 缺点:延迟大(尤其是长帧)。
- 注:这是目前最广泛使用的方式。
- 免碎片转发 (Fragment Free):
- 机制:接收前64字节(最小帧长)后开始转发。
- 折中方案:过滤掉了因冲突产生的碎片(通常小于64字节),速度介于前两者之间。
冲突域与广播域
- 冲突域 (Collision Domain):
- 定义:同一物理网段上,可能发生信号碰撞的节点集合。
- Hub:所有端口在同一个冲突域。
- Switch/Bridge:每个端口是一个独立的冲突域(隔离了冲突)。
- 广播域 (Broadcast Domain):
- 定义:能接收到同一个广播帧(MAC全1)的节点集合。
- Hub/Switch/Bridge:默认情况下,连接的所有设备都在同一个广播域(广播帧会穿透交换机)。
- Router/VLAN:可以隔离广播域。
VLAN (虚拟局域网)
- 定义:在二层交换机上,通过软件逻辑地将设备划分为不同的广播域,而不受物理位置限制。
- 优点:
- 控制广播风暴:广播帧只在VLAN内部传播,不会扩散到全网。
- 安全性:不同VLAN的用户默认无法直接通信。
- 灵活管理:更改用户所属组只需修改软件配置,无需物理换线。
- 划分方式:最常用的是基于端口划分,也有基于MAC地址划分。
- 通信限制:不同VLAN之间属于不同的逻辑网络,二层交换机无法实现跨VLAN通信,必须借助路由器或三层交换机。
网络层互联设备
路由器 (Router)
- 层级:工作在网络层。
- 功能:
- 异构网络互联:连接不同的网络(如以太网和广域网)。
- 路由选择:基于IP地址,利用路由表选择最佳路径。
- 隔离广播:路由器不转发广播包,因此每个端口都是一个独立的广播域。
- 与网桥/交换机的区别:
- 交换机看MAC地址,路由器看IP地址。
- 交换机(二层)不需要IP地址即可转发数据;路由器每个接口都必须配置IP地址。
三层交换机 (L3 Switch)
- 产生背景:VLAN隔离了广播域,但VLAN间通信如果全靠单臂路由器(Router-on-a-stick),速度慢且有瓶颈。
- 本质:二层交换机 + 路由模块(通常是硬件路由)。
- 工作原理:“一次路由,多次交换”。
- 首个数据流的第一个包通过路由模块(CPU软件查找)处理,确定路径。
- 系统生成硬件转发表。
- 后续数据包直接由底层硬件(ASIC)高速转发,不再经过CPU。
- 应用:用于局域网核心层,实现VLAN间的高速互访。
高层互联设备
网关 (Gateway)
- 定义:一个笼统的概念,指协议转换器。
- 功能:用于连接两个体系结构完全不同的网络(如TCP/IP网络和SNA网络),通常工作在应用层或高层。
- 注意:在日常PC配置中提到的“默认网关”,实际上通常指的是局域网出口路由器的IP地址。
| 设备 | 所在层次 | 隔离冲突域? | 隔离广播域? | 寻址依据 | 核心功能 |
|---|---|---|---|---|---|
| 中继器/集线器 | 物理层 | 否 | 否 | 无 | 信号再生、放大 |
| 网桥/二层交换机 | 数据链路层 | 是 (每端口) | 否 (VLAN除外) | MAC地址 | 帧过滤、转发 |
| 路由器 | 网络层 | 是 | 是 (每接口) | IP地址 | 路由选择、网络互联 |
| 三层交换机 | 网络层+链路层 | 是 | 是 (VLAN间) | IP+MAC | VLAN间高速路由 |
传输层
传输层的功能与服务
- 位置:位于通信子网(下三层)和资源子网(上三层)之间。
- 对象:网络层负责“主机到主机”的通信,而传输层负责源主机进程到目的主机进程(端到端)的通信。
- 目标:提供可靠的、透明的数据传输。
主要功能:
- 端到端报文传递:确保数据从发送进程准确到达接收进程。
- 服务点寻址:
- NSAP (网络服务访问点):即IP地址,用于定位主机。
- TSAP (传输服务访问点):即端口号,用于定位主机上的具体进程。
- 复用与分用:
- 向上复用:多个传输层连接共享一个网络层连接(IP)。它们用不同的端口。
- 向下复用:一个传输层连接使用多个网络层连接(以增加带宽或可靠性)。把一个传输连接复用到多个IP,例如在流量较⼤时,使⽤多个⽹卡将流量拆分。
- 差错控制:传输层需要进⾏差错处理以保证端到端的可靠性。例如,当包在路由器内部处理时可能引⼊差错,这些差错不会被数据链路层发现,因此传输层必须进⾏⾃⼰的端到端检查。
- 拆分与组装:将长报文切分成适合网络传输的数据段,标上序号,并在接收端重组。
- 丢失控制:通过丢失重传来确保数据包正确到达。
- 重复控制:通过序列编号使接收⽅可以识别并丢弃重复的段。
两种服务类型:
- 面向连接的服务:建立连接 -> 传输数据 -> 释放连接(如 TCP)。
- 无连接的服务:直接发送数据,不保证到达(如 UDP)。
传输服务原语
ISO定义了四类基本的交互动作:
- 请求 (Request):用户(上层)发给服务提供者(传输层),请求某项工作(如建立连接)。
- 指示 (Indication):服务提供者通知用户发生了某事(如收到连接请求)。
- 响应 (Response):用户对“指示”的回复。
- 确认 (Confirm):服务提供者告诉用户,刚才的“请求”已经完成了。
- 具体的原语包括:T-CONNECT(连接)、T-DISCONNECT(断开)、T-DATA(数据)、T-UNITDATA(无连接数据)。
传输协议要素
为了在不可靠的网络上实现可靠传输,传输层协议必须解决以下问题:
差错控制 (Error Control)
范围:不仅检查数据,还检查控制信息。
机制:
- 校验和 (Checksum):检测数据是否损坏。
- ARQ (自动重传请求):接收方发送确认 (ACK) 或 否认 (NAK),发送方超时重传。
- 区分错误:需要区分是“数据链路层没检查出来的错误”还是“传输层引入的错误”。
序列控制 (Sequence Control)
分段:将大块数据切分。
编号:给每个数据段分配序列号。
功能:解决数据包的丢失、重复和乱序问题。接收方根据序列号去重并重新排序。
流量控制 (Flow Control)
区别:数据链路层的流量控制是相邻节点间的,传输层是端到端的。
机制:可变大小的滑动窗口协议。
动态调整:窗口大小不是固定的,而是根据接收端的缓冲区大小(接收能力)动态变化的。发送窗口 = 。
传输层拥塞控制
拥塞控制是为了防止过多的数据注入到网络中,导致网络核心负载过大。TCP 采用了四种核心算法。
关键变量:
Cwnd (Congestion Window):拥塞窗口,发送方估算的当前网络能承受的数据量。
Rwnd (Receiver Window):接收端窗口,接收方通知的自己缓冲区的剩余空间。
ssthresh (Slow Start Threshold):慢启动阈值,用于切换算法。
SMSS:发送端最大数据段尺寸(单位通常是字节或报文段个数)。
四大算法
慢启动 (Slow Start)
初始状态:Cwnd = 1 个 SMSS。
增长规则:每收到一个 ACK,Cwnd 加 1。即每经过一个传输轮次(RTT),Cwnd 加倍(指数增长:1, 2, 4, 8…)。
停止条件:当 时,停止慢启动,转入拥塞避免。
拥塞避免 (Congestion Avoidance)
触发条件:。
增长规则:每经过一个 RTT,Cwnd 增加 1 个 SMSS。即线性增长(加法增大),让窗口缓慢变大,试探网络极限。
超时处理 (Severe Congestion)
- 如果发生超时 (Timeout)(说明网络堵塞严重):
- 新的 ssthresh = 当前 Cwnd / 2。
- 新的 Cwnd = 1。
- 重新进入慢启动。
- 如果发生超时 (Timeout)(说明网络堵塞严重):
快速重传与快速恢复 (Fast Retransmit / Fast Recovery)
触发条件:发送方连续收到 3个重复的 ACK(即共收到4个相同的ACK)。这通常意味着某个报文段丢了,但网络还没完全瘫痪(还能传回ACK)。
快速重传:立即重传丢失的报文段,不等超时定时器。
快速恢复:
- 新的 ssthresh = 当前 Cwnd / 2。
- 新的 Cwnd = 新的 (这3个是为了抵消那3个重复ACK带来的窗口占用)。
- 之后进入拥塞避免(线性增长),而不是慢启动。
拥塞控制图解与计算例题

图解逻辑:
- 指数上升:慢启动阶段。
- 拐点:达到 ssthresh,变为线性上升。
- 大跌:遇到超时,降为1,阈值减半。
- 小跌:遇到3个重复ACK,降为一半,阈值减半(快速恢复)。
计算例题解析:
- 题目:。当前 。发生超时。问:接着4个传输并发量也是成功的,该窗口将是多少?
- 解析步骤:
- 发生超时:
- 新 。
- 新 重置为 。
- 进入慢启动。
- 第1次传输:发送1KB。成功收到ACK。 翻倍 。
- 第2次传输:发送2KB。成功收到ACK。 翻倍 。
- 第3次传输:发送4KB。成功收到ACK。 翻倍 。
- 第4次传输:此时窗口为8KB,发送8KB数据。
- 注意:如果是问第4次传输后的窗口大小:下次理论翻倍是16,但 。所以 会变成 9(到达阈值),余下的按线性增长。但根据PPT的简略答案,它问的是“接着4个…传输”,通常指这4次传输所使用的窗口序列是 1, 2, 4, 8。所以第4次传输时的窗口是 8KB。
- 发生超时:
传输连接管理(三次握手)
连接建立

即著名的三次握手:
- A -> B: 发送 CR (Connection Request) 或 SYN。携带初始序号 。
- B -> A: 发送 CC (Connection Confirm) 或 SYN+ACK。确认号 ,携带B的初始序号 。
- A -> B: 发送 AK (Acknowledgment) 或 ACK。确认号 。
- 异常处理:如果出现重复的CR(延迟到达的旧请求),接收方会发送相关确认,发送方收到后发现是无效的,会发送 REJ (Reject) 或 RST 来终止错误连接。
连接终止

- 通常采用“四次挥手”或对称释放模型。
- 发送方发 DR (Disconnect Request),接收方回 DC (Disconnect Confirm)。
局域网和广域网技术
IEEE 局域网通信协议体系
局域网 (LAN) 定义
局域网是在有限的地理范围内连接许多独立设备,使它们相互直接通信的系统。为了解决设备互连的兼容性,IEEE 802委员会制定了一系列标准。
IEEE 802 参考模型与 OSI 的关系
IEEE 802 标准主要对应 OSI 参考模型的物理层和数据链路层。为了适应不同的物理传输介质,IEEE 802 将数据链路层拆分为两个子层:
- 逻辑链路控制子层 (LLC, 802.2):位于上层。对所有局域网标准都是通用的,负责向网络层提供统一的服务接口(如数据报、虚电路服务)。
- 媒体访问控制子层 (MAC):位于下层。与具体的物理传输介质相关,负责解决**“谁在什么时候使用信道”**(即介质争用)的问题。
常见的 802 标准
- 802.3:以太网(CSMA/CD)。
- 802.5:令牌环。
- 802.11:无线局域网(WLAN)。
- FDDI:光纤分布式数据接口(ANSI标准,但也常被归入此类讨论)。
以太网
以太网是应用最广泛的局域网技术,其核心在于它如何解决多设备共享同一条总线的冲突问题。
介质访问控制:CSMA/CD 协议
全称是载波侦听多路访问/冲突检测 (Carrier Sense Multiple Access with Collision Detection)。
注意,这里也有一个MAC的概念,但是跟MAC地址不是一个东西。
| 控制方式 | 描述 | 应用 |
|---|---|---|
| 循环式 | 每个站轮流得到发送机会,若一段时间内有多站发送 数据,则该方式很有效;若只有少数站发送数据时, 会增加不必要的开销。 | 令牌环网、令牌总线 网、FDDI |
| 预约式 | 将传输介质的使用时间划分为时间槽,而预约管理可 以集中控制,也可以是分布控制。 | DQDB |
| 竞争式 | 不对各个工作站的发送权限进行控制,而是自由竞争, 它适合于分布控制,轻负载时效率较高。 | CSMA/CD |
三⼤类多路访问协议及⼩分类
- 随机访问协议
特点:冲突不可避免。 - 受控访问协议
特点:克服了冲突。 - 有限竞争协议
特点:利⽤上述⼆者的优势。

在LAN中,多个⽤⼾在没有任何控制的情况下同时访问⼀条线路时,会存在由于不同信号叠加⽽相互破坏的情
况。这就是冲突。为了使冲突发⽣的可能性最⼩,需要有⼀种机制来协调通信。
以太⽹的媒体访问控制机制称为带有冲突检测的载波侦听多路访问(CSMA/CD)
CSMA/CD的发展:MA-〉CSMA-〉CSMA/CD
演进逻辑
- ALOHA 协议:
- 纯ALOHA:想发就发。冲突严重,效率极低。
- 分隙ALOHA:只能在时间片开始时发送。效率提升,但仍有冲突。
- CSMA (载波侦听):先听后发。
- 非坚持:忙则等待随机时间。
- 1-坚持:忙则一直听,空闲立即发(以太网采用,利用率高但冲突几率也高)。
- P-坚持:空闲时以概率P发送。
- CSMA/CD (带冲突检测):边发边听。一旦检测到冲突,立即停止发送并发送干扰信号(Jam)。
CSMA/CD 工作流程
- 侦听:如果信道空闲,立即发送;如果忙,继续侦听直到空闲。
- 发送与检测:边发送数据边检测信道电平。
- 冲突处理:如果检测到冲突(电平叠加),立即停止发送当前帧,发送阻塞信号 (Jam signal) 强化冲突,让所有站点都知道。
- 退避重传:等待一段随机时间后,重新尝试发送。
二进制指数退避算法 (Binary Exponential Backoff)
这是解决冲突后何时重传的关键算法。
- 规则:发生第 次冲突后,从整数集合 中随机取出一个数 。
- 等待时间:( 为争用期,即两倍的端到端传播时延)。
- 限制:
- 最大取 10(即超过10次冲突,集合不再扩大,固定为 )。
- 重传次数超过 16 次,丢弃该帧并报错。
最短帧长计算
为了保证发送方在停止发送前能检测到可能发生的冲突,帧的发送时间必须大于等于两倍的信号传播时延(RTT)。
计算公式:
- :最短帧长(bit)。
- :数据传输速率(bps)。
- :两站点间最大距离(m)。
- :信号传播速度(m/s,通常光速的2/3,约 )。
- :往返传播时延 ()。
以太网标准值:
- 10Mbps以太网,规定最短帧长为 64字节 (512 bit)。
- 凡是长度小于64字节的帧,都被视为由于冲突而异常终止的“碎片帧”,直接丢弃。
系统跨距的计算方法与上面相同
MAC 帧格式

- DIX Ethernet V2(最常用):包含类型 (Type) 字段,用于标识上层协议(如IP、ARP)。
- IEEE 802.3:包含长度 (Length) 字段。
- 兼容性:如果该字段值大于 1500 (0x05DC),解释为类型(V2);如果小于等于 1500,解释为长度(802.3)。
- MAC地址:6字节(48位),全球唯一。前3字节为厂商代码,后3字节为序列号。
以太网的发展
- 10Base-T:使用双绞线,物理星型拓扑(集线器Hub),逻辑总线。
- 100Base-T (快速以太网):速率100Mbps,帧格式不变,但为了维持CSMA/CD,网络直径(最大距离)减小了(约为100m)。
- Gigabit Ethernet (千兆):1Gbps。支持全双工(不使用CSMA/CD)和半双工(使用CSMA/CD,但需通过“载波扩充”增加短帧长度)。
- 10G/40G/100G:通常只支持全双工,不再受CSMA/CD距离限制。
其他局域网技术
令牌环网 (Token Ring, IEEE 802.5)
- 机制:令牌传递。只有持有“令牌”的站点才能发送数据。
- 流程:令牌在环上流动 -> 站点截获令牌 -> 修改令牌状态为忙 -> 附加上数据发送 -> 数据绕环一周被接收方复制 -> 回到发送方 -> 发送方检查状态(是否被接收) -> 释放新令牌。
- 优点:无冲突,确定性延迟,适合重负载。
- 帧结构:包含 SD (起始定界符), AC (访问控制), ED (结束), FS (帧状态) 等。FS域中的A位和C位用于确认地址识别和数据复制。
FDDI (光纤分布式数据接口)
- 特点:双环结构(容错),100Mbps,使用光纤。
- 编码:4B/5B 编码(将4比特数据编码为5比特信号,防止全0导致同步丢失,效率80%)。
- 访问控制:定时令牌协议。
- 引入 TTRT (目标令牌循环时间)。
- 同步帧:保证带宽,收到令牌即可发送。
- 异步帧:只有当令牌提前到达(实际循环时间 < TTRT,说明网络不忙)时才能发送。
无线局域网 (WLAN, IEEE 802.11)
无线环境比有线复杂,主要体现在隐蔽终端、暴露终端问题以及信号衰减。
介质访问控制:CSMA/CA
无线网络不能简单使用CSMA/CD,因为:
- 检测困难:发送功率远大于接收功率,难以边发边听。
- 隐蔽终端:A和C都想发给B,但A听不到C,直接发会导致在B处冲突。

- 暴露终端:由于侦听到其他站点的发送⽽误以为信道忙导致不能发送。暴露站点能侦听到发送端但不会⼲扰接收端

因此,802.11 采用了 CSMA/CA (带冲突避免) 机制:
- IFS (帧间间隔):发送前必须等待的一段时间。优先级越高,等待时间(IFS)越短。
- SIFS (短):最高优先级,用于ACK、CTS。
- PIFS:中等,用于轮询。
- DIFS (分布):最低,用于普通数据。
- 退避算法:信道忙时,挂起倒计时;信道空闲时,继续倒计时。
- ACK确认:由于无线传输不可靠,必须使用停止-等待协议,每发一个数据帧都要等一个ACK。
思考:采⽤停等机制的原因?为什么不采⽤流⽔线机制?
- ⽆线环境中的冲突和⼲扰
⽆线环境中信号容易受到各种因素的影响,如⼲扰、噪声和信号衰减。在这种环境下,确保每个帧的可靠传
输显得尤为重要。停等机制能够在每帧传输后⽴即等待接收确认,确保帧已成功接收或在检测到错误时进⾏
重传,从⽽提⾼了传输的可靠性。 - 隐藏终端和暴露终端问题
⽆线局域⽹中存在隐藏终端和暴露终端问题,这使得冲突检测变得复杂。使⽤停等机制可以减⼩这些问题的
影响,因为每次发送后都要等待接收确认,从⽽可以及时发现并处理冲突。 - 资源有限和复杂性
⽆线通信资源有限,停等机制相对简单,容易实现和管理。⽽流⽔线机制需要更多的缓冲和复杂的管理策
略,容易导致在⽆线环境中增加系统的复杂性和资源开销。
RTS/CTS 机制 (解决隐蔽终端)
这是一个可选机制,用于预约信道。
- RTS (请求发送):发送方广播“我要发数据,需占用多长时间”。
- CTS (允许发送):接收方广播“允许发送,大家都闭嘴”。
- NAV (网络分配矢量):收到RTS或CTS的第三方站点,会设置自己的NAV计时器,在此期间不尝试发送。
- 作用:虽然会有RTS冲突,但RTS很短,代价小;一旦CTS发送成功,长数据帧的传输就有了保障。
组网模式
- Ad Hoc:自组织,无AP,点对点直接通信。
- Infrastructure (基础架构):所有通信通过 AP (访问点) 转发。包含 BSS (基本服务集) 和 ESS (扩展服务集)。
广域网技术
ATM (异步传输模式)
一种面向连接的、基于信元(Cell)的交换技术,曾试图统一局域网和广域网。
- 信元结构:固定 53字节(5字节信头 + 48字节数据/净荷)。
- 连接方式:虚电路。使用 VPI (虚通路标识) 和 VCI (虚通道标识) 进行路由。
- 交换机通过查找映射表,修改进入信元的VPI/VCI和端口号,转发到输出端口。
- 特点:硬件转发快,延迟低,支持QoS(服务质量),适合语音、视频、数据综合传输。
帧中继 (Frame Relay)
- 背景:随着光纤普及,链路误码率极低,X.25那种逐段复杂的差错控制变得多余。
- 特点:
- 简化:只工作在物理层和链路层。
- 无逐段纠错:中间节点发现错误直接丢弃,由端到端(高层)负责重传。
- 面向连接:使用 DLCI (数据链路连接标识) 标识虚电路(主要是永久虚电路 PVC)。
- 拥塞控制:简单地丢弃超额数据包。
TCP/IP基础
TCP/IP 网络体系结构

TCP/IP 是事实上的工业标准,不同于 OSI 的七层理论模型,TCP/IP 实际上由四层组成,运⾏TCP/IP协议的⽹络通常由五层构成,将接口层拆分)。
- 网络接口层:对应 OSI 的物理层和数据链路层。
- 网络层:核心协议是 IP,辅助协议包括 ICMP、IGMP、ARP、RARP。
- 传输层:提供端到端的通信,主要协议是 TCP (可靠) 和 UDP (不可靠)。
- 应用层:对应 OSI 的会话、表示、应用层。
网际协议 IP (Internet Protocol)
IP 是 TCP/IP 的核心,所有的TCP、UDP、ICMP和IGMP数据都是以IP数据报格式进⾏传输。
提供不可靠、无连接的数据报服务。
- 不可靠:
IP协议不能保证IP数据报能成功到达⽬的地。任何对数据传输可靠性的要求必须由上层协议(如TCP)来提供。 - ⽆连接:
IP协议不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独⽴的,IP数据报可以不按发送顺序接收。
IP 地址 (IPv4)
- 长度:32位(4字节),通常用点分十进制表示(如 192.168.1.1)。
- 分类编址:
- A类:0开头,范围 1.0.0.0 - 127.x.x.x(用于超大型网络)。
- B类:10开头,范围 128.0.0.0 - 191.x.x.x(用于中型网络)。
- C类:110开头,范围 192.0.0.0 - 223.x.x.x(用于小型网络)。
- D类:1110开头,范围 224.0.0.0 - 239.x.x.x(组播/多播地址)。
- E类:11110开头,保留。
- 特殊地址:
- 主机位全0:代表网络本身(网络地址)。
- 主机位全1:本网段的广播地址。
- 127.x.x.x:环回地址(Loopback),用于本机测试。
- 私有地址:10.x.x.x, 172.16-31.x.x, 192.168.x.x(企业内部使用,不可在公网路由)。

子网划分与 VLSM (计算重点)
为了解决 IP 地址浪费,引入了子网掩码。
| 子网掩码 | 前缀 |
|---|---|
255.255.255.0 | /24 |
255.255.255.128 | /25 |
255.255.255.192 | /26 |
255.255.255.224 | /27 |
255.255.255.240 | /28 |
255.255.255.248 | /29 |
255.255.255.252 | /30 |
- 子网掩码 (Subnet Mask):32位,网络位和子网位全为1,主机位全0。
- 计算公式:
- 网络地址 = IP地址 AND 子网掩码 (二进制按位与)。
- 主机位全 1 得到广播地址
- 可用地址范围:
- 第一个主机 = 网络地址 + 1
- 最后一个主机 = 广播地址 − 1
- 主机数 = (减去全0的网络号和全1的广播号)。
- VLSM (可变长子网掩码):允许在一个网络中使用不同长度的子网掩码,提高利用率。先分大的再分小的。
- CIDR (无类别域间路由):消除A/B/C类界限,使用斜线记法(如 /24, /30)。支持路由聚合(超网),路由表中采用最长前缀匹配原则转发数据。
IPv4 地址不够 + 网络规模变大 ➡️ A/B/C 类地址浪费严重 ➡️ 引入 CIDR(取消分类) ➡️ 允许 VLSM(内部精细划分) ➡️ 允许路由聚合(外部减少路由条目) ➡️ 路由器路由表规模可控 ➡️ 使用最长前缀匹配保证转发正确
IP 数据报格式与分片

版本号 (Version) [4 bit]:
⽬前IP协议的版本号为4(IPv4),它正在逐渐被IPv6版本所替代。报头⻓度 (Header Length) [4 bit]:
报头⻓度指的是报头占32位字的数量(⼀般是20字节,即5⾏,对应的报头⻓度的字段值为5【1字段值对应4B】)。
报头包括可选项,报头⻓度字段值最⼤是15,对应报头最⻓为60B服务类型 (Type of Service, TOS) [8 bit]:
4个⽐特的TOS分别表⽰:最⼩延迟、最⼤吞吐量、最⾼可靠性和最⼩费⽤。【4位中只能有1位为1】⾼3位和末位未使⽤。最新的RFC2474重新定义为区分服务,⽤来映射⼀个底层的服务。总⻓度 (Total Length) [16 bit]:
该字段以字节为单位定义IP数据报的总⻓度(报头加上数据)。【1字段值对应1B,所以IP数据报的最⼤⻓度为65536B】太⻓的报⽂会进⾏分段,⼀般不会超过576B标识 (Identification) [16 bit]:
标识字段唯⼀地标识主机发送的每⼀个数据报。通常每发送⼀个报⽂,其值⾃动加1。如果数据报被分⽚,每个分⽚都设置相同的标识号码。【在分段中使⽤】标志 (Flags) [3 bit]:第1位未使⽤,DF位(第2位)置1表⽰不要分段,MF位(第3位)置1表⽰分段后还有进⼀步的分段,最后⼀个分段MF位为0。
⽚偏移 (Fragment Offset) [13 bit]:
分段偏移说明该分段在数据报中的位置。以8字节为单位,如偏移量1对应字节号8,偏移量2对应字节号16。⽣存时间 (Time to Live, TTL) [8 bit]:
TTL字段设置数据报可以经过的最多路由器数量。每经过⼀个路由器,值减1,值为0时数据报被丢弃(并发送ICMP报⽂通知源主机)。防⽌数据报在⽹络中⽆限循环。【通常⽣存时间的起始值是32、64、128】协议 (Protocol) [8 bit]:
IP数据报的上层协议。常⻅的协议值包括ICMP(1)、IGMP(2)、TCP(6)、UDP(17)、IPv6(41)、OSPF(89)。报头校验和 (Header Checksum) [16 bit]:
根据IP报头计算的校验和,⽤于检测报头在传输过程中是否出现差错。采⽤16位反码求和算法。IP数据报每经过⼀个路由器,路由器都要重新计算⾸部检验和,因为某些字段(⽣存时间、标志、⽚偏移等)的取值可能发⽣变化。由于IP层本⾝并不提供可靠传输的服务,并且计算⾸部校验和是⼀项耗时的操作,因此在IPv6中,路由器不再计算⾸部校验和,从⽽更快转发IP数据报。源IP地址 (Source IP Address):
每个数据报都包含源IP地址。⽬的IP地址 (Destination IP Address):
每个数据报都包含⽬的IP地址。
可变部分(选项、数据)
- 选项:可选字段,⽤于携带额外的信息。【最⼤40B】
- 数据:实际传输的数据部分。
最⼤传送单元(MTU): MTU(Maximum Transmission Unit)是指在⽹络上传输的最⼤数据帧的⼤⼩,通常以字节为单位。MTU限制了IP数据报在传输链路上的最⼤⻓度。MTU的⼤⼩包括IP报头和数据部分。当数据报的⼤⼩超过MTU时,需要进⾏分⽚(Fragmentation)。


ARP (地址解析协议)
- 功能:将 IP 地址(逻辑地址)解析为 MAC 地址(物理地址)。
- 工作流程:ARP协议的请求包是以⼴播⽅式发送的。⽹段中的所有主机都会接收到这个包,如果⼀个主机的IP地址和ARP请求中的⽬的IP地址相同,该主机会对这个请求数据包作出ARP应答,将其MAC地址发送给源端。
- 广播请求:发送方在局域网广播 ARP Request(“谁是 IP x.x.x.x?请告诉我你的 MAC”)。
- 单播响应:目标主机收到后,单播回复 ARP Reply。
- 缓存:双方将映射关系存入 ARP 高速缓存。
- ARP 代理:路由器代替处于另一网段的主机回答 ARP 请求。
DHCP (动态主机配置协议)
- 功能:自动分配 IP 地址、网关、DNS 等。
- 流程:
- Discover:客户机广播寻找服务器。
- Offer:服务器提供 IP 地址。
- Request:客户机选择并请求使用该 IP。
- Ack:服务器确认。
ICMP (Internet 控制报文协议)
ICMP 封装在 IP 数据报中,用于报错和查询。
- 差错报文:
- 终点不可达:路由找不到目标。
- 源点抑制:网络拥塞,让发送方慢点发(流量控制)。
- 超时:TTL 耗尽(Traceroute 利用此原理)。
- 重定向:告诉主机有更好的路由路径。
- 查询报文:
- 回送请求/回答:即 Ping 命令的原理,测试连通性。
- 时间戳请求/回答、地址掩码请求/回答。
IGMP (Internet 组管理协议)
- 功能:管理多播组成员。
- 地址映射:组播 IP (Class D) 映射到 MAC 地址时,IP 的低 23 位直接映射到 MAC 的低 23 位,MAC 高位固定为
01-00-5E。由于 IP 多播地址有 28 位有效,映射时会丢弃 5 位,导致 32 个不同的 IP 组播地址可能映射到同一个 MAC 地址(需在 IP 层进一步过滤)。
传输层协议:UDP 与 TCP
UDP (用户数据报协议)
- 特点:无连接、不可靠、面向报文、无拥塞控制、首部开销小(仅 8 字节)。
- 首部:源端口、目的端口、长度、校验和。
- 适用:实时应用(视频、语音)、DNS、DHCP。
TCP (传输控制协议)
- 特点:面向连接、可靠、字节流、全双工。
- 首部格式:
- 序号 (Seq):本报文段第一个字节的编号。
- 确认号 (Ack):期望收到对方下一个报文段的第一个字节序号。
- 标志位:SYN (建立连接), ACK (确认有效), FIN (断开连接), RST (复位), URG (紧急), PSH (推送)。
- 窗口:接收方通知发送方自己的缓存大小(用于流量控制)。
TCP 连接管理
- 三次握手 (建立连接):
- A -> B: SYN=1, Seq=x (A 请求连接)。
- B -> A: SYN=1, ACK=1, Seq=y, Ack=x+1 (B 同意并请求连接)。
- A -> B: ACK=1, Seq=x+1, Ack=y+1 (A 确认 B 的请求)。
- 四次挥手 (释放连接):
- A -> B: FIN=1, Seq=u (A 说我发完了)。
- B -> A: ACK=1, Seq=v, Ack=u+1 (B 说知道了,但 B 可能还有数据要发)。
- … (B 继续发送数据) …
- B -> A: FIN=1, ACK=1, Seq=w, Ack=u+1 (B 也发完了)。
- A -> B: ACK=1, Seq=u+1, Ack=w+1 (A 确认,等待 2MSL 后彻底关闭)。
TCP 拥塞控制
拥塞控制是防止网络过载,不同于流量控制(点对点)。包含四个算法:
慢启动 (Slow Start):
- 初始拥塞窗口 cwnd = 1 (MSS)。
- 每收到一个 ACK,cwnd 加 1。
- 效果:每经过一个传输轮次 (RTT),cwnd 加倍 (1, 2, 4, 8…),呈指数增长。
- 直到 cwnd 达到 慢启动阈值 (ssthresh)。
拥塞避免 (Congestion Avoidance):
- 当 cwnd >= ssthresh 时进入此阶段。
- 每经过一个 RTT,cwnd 加 1 (线性增长)。
超时处理 (Timeout):
- 若发生超时(严重拥塞):
- ssthresh = 当前 cwnd / 2。
- cwnd = 1。
- 重新进入慢启动。
- 若发生超时(严重拥塞):
快速重传与快速恢复 (Fast Retransmit / Fast Recovery):
- 若收到 3个重复的 ACK(轻度拥塞):
- 立即重传丢失的报文(快速重传)。
- ssthresh = 当前 cwnd / 2。
- cwnd = 新的 ssthresh + 3 (加上3个重复ACK的量)。
- 进入拥塞避免(线性增长)。
- 若收到 3个重复的 ACK(轻度拥塞):
计算例题解析 (Slide 30-31):
- 题目:MSS=1KB,当前拥塞窗口 18KB,发生超时。接着 4 个传输并发量都成功。求窗口大小?
- 解析:
- 发生超时:ssthresh = 18 / 2 = 9KB,cwnd = 1KB。
- 第1次传输成功(慢启动):cwnd = 1 * 2 = 2KB。
- 第2次传输成功:cwnd = 2 * 2 = 4KB。
- 第3次传输成功:cwnd = 4 * 2 = 8KB。
- 第4次传输:此时窗口为8KB。
- 注意:若问第4次传输后的窗口:理论上 8*2=16,但 ssthresh=9。所以 cwnd 会先变成 9,然后进入拥塞避免线性增长。
IPv6 基础
- 地址长度:128位(16字节),冒号十六进制表示。
- 改进:
- 简化的固定首部(40字节),提高路由器处理效率。
- 取消了首部校验和(依赖链路层和传输层)。
- 不允许路由器分片(源主机负责分片)。
- 支持即插即用(自动配置)。
- 过渡技术:双协议栈、隧道技术。
Internet 服务
DNS 服务 (Domain Name System)
DNS 是互联网的基础设施,解决了“人类好记的域名”与“机器好用的IP地址”之间的转换问题。
核心概念
- 功能:实现域名 <–> IP地址的相互映射。
- 特性:是一个分布式数据库系统,具有层次结构。相比于早期的HOSTS文件(集中式、无法缩放),DNS通过分层管理解决了网络规模扩展的问题。
域名空间结构 (Tree Structure)
DNS 使用倒树状的层次结构:
- 根域 (Root):树的顶端,通常用点号
.表示。 - 顶级域 (TLD):
- 通用顶级域 (gTLD):
.com(商业),.edu(教育),.org(非盈利),.net(网络服务) 等。 - 国家/地区顶级域 (ccTLD):
.cn(中国),.us(美国),.uk(英国),.hk(香港) 等。
- 通用顶级域 (gTLD):
- 二级/三级域:如
jlu.edu.cn(吉林大学),pku.edu.cn(北大)。 - 完全限定域名 (FQDN):从叶子节点到根节点的完整路径,如
www.jlu.edu.cn.。
域名服务器体系
- 根域名服务器:全球共有13套(A-M),知道所有顶级域服务器的地址。
- 顶级域名服务器:负责管理 com, org, cn 等顶级域。
- 权限域名服务器:负责管理某个具体区域(Zone)的解析,如吉林大学的DNS服务器管理
jlu.edu.cn。 - 本地域名服务器 (Local DNS):电脑上网时默认配置的DNS(如ISP提供的),负责代理用户进行查询。
解析过程 (重点)
- 递归查询 (Recursive):主机向本地域名服务器发起。要求“必须给我一个结果”(如果不知道,你去帮我问)。
- 迭代查询 (Iterative):本地域名服务器向根/顶级/权限服务器发起。答复通常是“我不知道具体IP,但你可以去问下一级的某某服务器”。
- 流程示例:
- 主机询问本地DNS:
www.mcgraw.com是多少? - 本地DNS问根服务器:
.com归谁管? -> 根回复:去找.com服务器。 - 本地DNS问
.com服务器:mcgraw.com归谁管? -> 回复:去找mcgraw.com的权限服务器。 - 本地DNS问
mcgraw.com服务器:www是多少? -> 回复:是x.x.x.x。 - 本地DNS将结果返回给主机。
- 主机询问本地DNS:
缓存 (Caching)
为了减轻服务器负担,解析结果(包括“查无此人”的否定结果)会在本地DNS和主机中缓存一段时间(TTL)。
常用工具
nslookup <域名>:查询域名解析。ipconfig /displaydns:查看本地DNS缓存。
电子邮件服务 (E-mail)
电子邮件是互联网最早、最广泛的应用之一。
系统组成
- 用户代理 (User Agent, UA):用户使用的客户端软件(如Outlook, Foxmail),负责撰写、阅读、管理邮件。
- 邮件服务器 (Mail Server):负责发送和接收邮件,维护用户邮箱。
- 协议:
- 发送协议:SMTP (推模式)。
- 接收协议:POP3 或 IMAP (拉模式)。
SMTP (简单邮件传输协议)
- 功能:用于将邮件从发送方UA推送到发送方服务器,以及从发送方服务器中继到接收方服务器。
- 特点:
- 使用 TCP 连接,端口 25。
- 纯文本协议,命令/响应模式(如
HELO,MAIL FROM,RCPT TO,DATA)。 - 限制:只能传输 7位 ASCII 码。
MIME (通用互联网邮件扩充)
- 背景:为了解决SMTP只能传纯文本、无法传非英语字符/二进制文件(图片、视频)的问题。
- 机制:在邮件首部增加额外的域(如
Content-Type,Content-Transfer-Encoding),将非ASCII数据编码为ASCII字符串传输(常用 Base64 编码)。 - 复合类型:
Multipart类型允许一封邮件包含正文、附件等多个部分。
接收协议 (POP3 vs IMAP)
- POP3 (邮局协议 v3):
- 脱机模型。用户下载邮件到本地,通常会从服务器删除(虽可配置保留,但同步性差)。
- 操作简单,端口 110。
- IMAP (互联网邮件访问协议):
- 联机模型。邮件保存在服务器上,客户端只是一个“窗口”。
- 支持在服务器上建文件夹、标记状态,适合多终端同步使用。端口 143。
FTP 服务 (File Transfer Protocol)
FTP 用于在异构网络(不同操作系统)之间可靠地传输文件。
工作原理 (双连接模式)
FTP 不同于 HTTP,它同时使用两个 TCP 连接:
- 控制连接 (Control Connection):
- 端口 21。
- 用于发送命令(如
LIST,RETR,STOR)和响应。 - 在整个会话期间一直保持。
- 数据连接 (Data Connection):
- 端口 20(主动模式下)。
- 用于传输实际的文件内容或目录列表。
- 非持续:每传一个文件,建立一个新连接,传完即断开。
两种工作模式 (常考区别)
- 主动模式 (PORT / Active):
- 客户端告诉服务器:“我打开了端口X,你来连我”。
- 服务器从 20端口 主动发起连接到客户端的X端口。
- 问题:客户端如果有防火墙,可能会拦截服务器的主动连接。
- 被动模式 (PASV / Passive):
- 客户端告诉服务器:“我准备好了,你开个端口等我连”。
- 服务器开启一个随机端口P,通知客户端。
- 客户端主动发起连接到服务器的P端口。
- 优势:对客户端防火墙友好。
Web 服务 (World Wide Web)
万维网是一个分布式的超媒体系统。
核心组件
- URL (统一资源定位符):标识网络资源的地址。格式:
<协议>://<主机>:<端口>/<路径>。 - HTML (超文本标记语言):用于描述网页结构和内容。
- HTTP (超文本传输协议):浏览器和服务器之间的通信规则。
HTTP 协议
- 特点:
- 基于 TCP,默认端口 80。
- 无状态 (Stateless):服务器不记得以前来过这台客户端(需用 Cookie/Session 维持状态)。
- 请求/响应模型。
- 连接方式:
- 非持久连接 (HTTP/1.0):每请求一个对象(如网页里的一张图),都要新建一个TCP连接。效率低,延迟高。
- 持久连接 (HTTP/1.1):Keep-Alive。建立一次TCP连接后,可以传输多个对象,减少握手开销。
Web 代理 / 缓存
- 为了加快访问速度,通常在局域网出口设置代理服务器(Proxy)。
- 浏览器先问代理:“你有这个网页吗?”
- 如果有(命中),直接返回;如果没有,代理由去源服务器取,取回后发给用户并保存在本地缓存中。