计算机网络课程笔记

概论

什么是网络 -> 网络长什么样 -> 网络怎么分类 -> 怎么设计复杂的网络(分层) -> 怎么衡量网络好坏。

计算机网络的组成与功能

  • 定义:多个独立的计算机通过通信线路和设备互连,实现信息交换资源共享的系统。
  • **三大功能 **
    1. 数据通信 (核心功能)
    2. 资源共享 (硬件、软件、数据)
    3. 分布式处理 (提高可靠性、负载均衡)
  • 逻辑组成
    • 通信子网 负责数据的传输和转发。
      • 包括:通信节点(路由器、交换机)、通信链路。
    • 资源子网 负责信息处理,向用户提供资源。
      • 包括:主机(Host)、终端、软件资源。

网络的拓扑结构

各种拓扑的优缺点(常见选择题考点):

  1. 网状 两两相连。可靠性高,但造价高、管理复杂。通常用于广域网核心。
  2. 星状 有中央控制器(Hub/Switch)。结构简单、易管理,但中央节点是瓶颈(单点故障)。局域网最常用。
  3. 总线型 一根线串联。结构简单、省线,但故障隔离困难(断一处全网瘫痪),且需解决冲突问题。
  4. 环状 令牌环网。时延确定,但延时大
  5. 树状 星状的扩展,易于扩展范围。

网络的分类

  • 按覆盖范围
    • PAN (个域网): 10米内 (蓝牙)。
    • LAN (局域网): 1km内,高带宽,低延迟 (校园网、办公楼)。
    • MAN (城域网): 城市范围。
    • WAN (广域网): 几十到几千公里 (Internet的核心部分)。
  • 按工作模式
    • C/S (客户机/服务器): 也就是Client/Server。服务集中,从Server获取资源。
    • P2P (对等网): 没有固定的服务器,每个节点既是Client也是Server(如下载软件BitTorrent)。

网络分层体系结构

这是本章最重要的理论部分。

  • 为什么分层? 化繁为简 (Divide and Conquer)。
  • 协议三要素
    1. 语法 数据格式、电平结构(怎么写)。
    2. 语义 做什么控制、动作(做什么)。
    3. 时序 顺序、速度匹配(什么时候做)。
  • OSI 七层模型
    1. 物理层 (Physical): 传输比特 (Bit)。涉及机械、电气特性。
    2. 数据链路层 (Data Link): 传输帧 (Frame)。相邻节点可靠传输、差错控制、MAC地址。
    3. 网络层 (Network): 传输分组/包 (Packet)路由选择、拥塞控制、IP地址。
    4. 传输层 (Transport): 传输报文 (Message/Segment)端到端通信、进程间通信、流量控制 (TCP/UDP)。
    5. 会话层 (Session): 建立维护会话。
    6. 表示层 (Presentation): 数据格式转换、加密、压缩。
    7. 应用层 (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)。注意:在存储中 1K=210=10241K=2^{10}=1024,但在通信速率1K=103=10001K=10^3=1000

  • 时延的四个组成部分

    总时延=发送时延+传播时延+排队时延+处理(访问)时延总时延 = 发送时延 + 传播时延 + 排队时延 + 处理(访问)时延

    1. 发送时延

      发送时延=数据块长度(bit)发送速率(bit/s)发送时延 = \frac{数据块长度 (\text{bit})}{发送速率 (\text{bit/s})}

      含义: 机器把数据推到线路上需要的时间。受网卡速度影响。

    2. 传播时延

      传播时延=信道长度(m)电磁波在信道上的传播速率(m/s)传播时延 = \frac{信道长度 (\text{m})}{电磁波在信道上的传播速率 (\text{m/s})}

      含义: 数据在线路上跑需要的时间。受距离和介质影响(光纤/铜线通常取 2×108m/s2\times10^8 \text m/\text s200m/μs200\text m/\mu\text s)。

    3. 排队时延 & 处理时延: 通常会直接给出,或者忽略不计。

  • 例题

    • 题1: 100米距离,计算传播时延。

      Time=100m200m/μs=0.5μs\text{Time} = \frac{100 \text m}{200m/\mu \text s} = 0.5 \mu \text s

    • 题2: 10Mbps速率,发送5000B (Bytes) 文件。注意单位换算! Byte 转 bit。

      Time=5000×8 bits10×106 bits/s=4000010000000=0.004s=4ms\text{Time} = \frac{5000 \times 8 \text{ bits}}{10 \times 10^6 \text{ bits/s}} = \frac{40000}{10000000} = 0.004\text s = 4\text{ms}

数据通信基础

数据通信系统

五大组成部分

  1. 信源 (Source): 产生数据(如PC)。
  2. 发送设备 (Transmitter): 编码/调制(如Modem),将数据转为信号。
  3. 传输系统 (Transmission System): 线路或网络。
  4. 接收设备 (Receiver): 解调/解码。
  5. 信宿 (Destination): 接收数据。

核心术语

  • 数据 (Data): 运送信息的实体。
  • 信号 (Signal): 数据的电气或电磁表现。
  • 信道 (Channel): 信号传输的通道。
  • 比特率 (Bit Rate): 每秒传输的比特数 (bps\text{bps})。
  • 波特率 (Baud Rate): 每秒传输的码元(信号状态)数 (Baud\text{Baud})。

信号和数据编码

包含两大定理和多种编码方式。

信号基础与两大定理

  • 奈奎斯特 (Nyquist) 准则 (无噪声环境):
    • 公式: C=2H×log2NC = 2H \times \log_2 N
    • 含义: CC 是最大数据传输率(bps),HH 是信道带宽(Hz),NN 是一个码元所能携带的离散状态数(比如有4种电压值,N=4)。
  • 香农 (Shannon) 定理 (有噪声环境):
    • 公式: C=H×log2(1+S/N)C = H \times \log_2(1 + S/N)
    • 含义: S/NS/N 是信噪比(功率比)。
    • 分贝 (dB) 换算: 题目通常给dB,必须先换算成数值比。

      dB=10×log10(S/N)\text{dB} = 10 \times \log_{10}(S/N)

      例如: 30dB    10log10(S/N)=30    log10(S/N)=3    S/N=103=100030dB \implies 10 \log_{10}(S/N) = 30 \implies \log_{10}(S/N) = 3 \implies S/N = 10^3 = 1000
      • 例题: 带宽3kHz,信噪比30dB。
      • 先算S/N=1000,带入公式 C=3000×log2(1+1000)30kbpsC = 3000 \times \log_2(1+1000) \approx 30kbps

编码技术

  • 数字 -> 数字编码
    • 单极性: 高电平1,低电平0。缺点:有直流分量,难同步。
    • 非归零 (NRZ): 也就是电平翻转。
    • 双相位编码 (Bi-phase):
      • 曼彻斯特编码 (Manchester): 每一位中间都有跳变。
        • 定义:\to正 = 0,正\to负 = 1。(不同教材定义可能相反)。
      • 差分曼彻斯特 (Differential Manchester): 位中间跳变仅用于同步。
        • 规则: 每一位开始处,有跳变 = 0,无跳变 = 1。

  • 数字 -> 模拟编码
    • ASK (幅移): 调幅度。抗干扰差。
    • FSK (频移): 调频率。抗干扰优于ASK。
    • PSK (相移): 调相位。
    • QAM (正交调幅): 结合幅度+相位。效率最高。
    • 重要公式 (Slide 40): S=B×log2NS = B \times \log_2 N
      • SS: 比特率,BB: 波特率,NN: 码元状态数(例如16-QAM,N=16)。
  • 模拟 -> 数字编码 (PCM) (Slides 51-53):
    • 过程: 采样 (Sampling) \to 量化 (Quantization) \to 编码 (Encoding)。
    • 采样定理: f采样2×f信号最高频率f_{采样} \ge 2 \times f_{信号最高频率}

线路配置与传输方式

  • 通信模式:
    • 单工: 单向(如广播)。
    • 半双工: 双向但不能同时(如对讲机)。
    • 全双工: 双向且同时(如手机)。
  • 同步 vs 异步:
    • 异步: 一次传一个字符,带起始位/停止位。效率低,适合低速。
    • 同步: 一次传一帧,需要时钟同步。效率高。

多路复用技术

  • FDM (频分复用): 分割带宽频率,用于模拟信号。
  • TDM (时分复用): 分割时间片,用于数字信号。
    • 同步TDM: 固定分配时间片,轮询,可能浪费。
    • 异步/统计TDM: 按需分配,需要发带地址信息,利用率高。
  • WDM (波分复用): 光纤上的FDM,不同波长的光。
  • CDMA (码分复用): (计算题高频考点)
    • 原理: 不同用户使用正交的码片序列 (Chip Sequence)。
    • 规则: 发送1发原码,发送0发反码(补码)。
    • 计算: 接收方想听谁的数据,就用收到的总信号与该用户的码片序列做内积 (规格化内积)
      • 结果 = 1 \to 发送了1
      • 结果 = -1 \to 发送了0
      • 结果 = 0 \to 未发送数据

数据交换技术

比较三种交换方式。

  1. 电路交换 (Circuit Switching):
    • 特点: 建立独占物理通路 (建立\to传输\to拆除)。
    • 优点: 实时性好,传输时延小。
    • 缺点: 建立时间长,线路利用率低。
  2. 报文交换 (Message Switching):
    • 特点: 存储转发 (Store and Forward)。整个报文一起传。
    • 缺点: 时延大,对中间节点缓存要求高。
  3. 分组交换 (Packet Switching):
    • 特点: 报文切小块(分组),存储转发。
    • 优点: 线路利用率高,适合突发数据。
    • 分类:
      • 数据报 (Datagram): 无连接,每个包独立路由,可能乱序。
      • 虚电路 (Virtual Circuit): 逻辑连接,保序,包括SVC(交换)和PVC(永久)。

错误检测和控制

  • 基本概念: 检错 vs 纠错。码距 (Hamming Distance)。
    • 检错 dD+1d \ge D+1;纠错 d2C+1d \ge 2C+1
  • 奇偶校验 (Parity):
    • 奇校验: 加上校验位后,1的个数为奇数。
    • 偶校验: 加上校验位后,1的个数为偶数。
  • CRC (循环冗余校验):
    • 步骤:
      1. 给定生成多项式 G(x)G(x),最高次幂为 mm
      2. 在数据 U(x)U(x) 后面补 mm 个 0。
      3. 模2除法 (即XOR异或运算,不借位减法) 用补0后的数据除以 G(x)G(x) 对应的比特串。
      4. 余数即为 FCS (帧检验序列)。
    • 例子: 数据1101011,G(x)=11001 (4阶)。后面补4个0 \to 11010110000。除以11001,余数1010。发送数据为 11010111010
  • 校验和 (Checksum): 反码算术求和,取反。

物理层

传输介质

传输介质是信号传输的通道,主要分为有线介质无线介质

双绞线

这是最常见的传输介质。

  • 结构:两根绝缘铜导线按一定密度绞合在一起。绞合的目的是为了抵御外界电磁干扰并减少线对间的串扰
  • 分类
    • UTP (非屏蔽双绞线):没有金属屏蔽层,便宜,常用。分为多类,性能指标如下:
      • 1、2类:4Mbps(老式语音/低速数据)。
      • 3类:10Mbps。
      • 4、5类:100Mbps。
      • 超5类、6类:1Gbps。
      • 超6类:10Gbps。
    • STP (屏蔽双绞线):有金属屏蔽层,能有效防止噪声干扰,但价格更贵。
  • 连接器: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)必须定义以下四个方面:

  1. 机械特性:规定接口的形状、尺寸、引脚数量、排列方式等(如DB-25连接器)。
  2. 电气特性:规定信号线上电压的范围、阻抗匹配等(如多少伏代表1,多少伏代表0)。
  3. 功能特性:规定每一根引脚的具体含义和功能(如哪根线是发数据的,哪根是控制信号的)。
  4. 规程特性 (过程特性):规定不同功能信号出现的先后顺序和时序关系(握手过程)。

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(有人呼叫)。

规程特性(通信步骤)

这是一个典型的握手过程,分为五个阶段:

  1. 准备:保证设备加电并连接。
  2. 就绪
    • DTE发送 DTR (20) -> DCE。
    • DCE发送 DSR (6) -> DTE。
    • 双方确认对方都在线。
  3. 建立连接 (物理连接)
    • 发送方DTE发送 RTS (4) 请求发送。
    • 发送方DCE向对方发送载波,然后回送 CTS (5) 给DTE,表示允许发送。
    • 接收方DCE检测到载波,激活 CD (8) 通知接收方DTE传输开始。
  4. 数据传输
    • DTE通过 TD (2) 发送数据给DCE。
    • DCE将数据调制后发到网络。
    • 接收端DCE解调后通过 RD (3) 发给接收端DTE。
    • 注:同步通信时还需要时钟信号线(Pin 15/17/24)配合。
  5. 清除 (断开)
    • 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)信号。接收衰减的信号,整形、放大后转发出去。
  • 作用:扩展局域网的地理覆盖范围。
  • 限制与问题
    1. 不能隔离冲突:所有连接的设备在同一个冲突域,设备越多,冲突概率越大,性能越低。
    2. 安全性差:数据会广播到所有端口。
    3. 协议要求:连接的两端必须使用相同的物理层协议和速率(如都是10Mbps以太网)。

数据链路层

数据链路层位于物理层之上,它将物理层提供的比特流封装成帧 (Frame)。其核心任务是将不可靠的物理链路转变为可靠的数据链路。主要工作包括三个方面:线路规程差错控制流量控制

线路规程

线路规程主要解决“谁在什么时候有权发送数据”的问题,分为两种模式:

  1. 询问/确认模式 (ENQ/ACK)

    • 适用场景:点对点 (Point-to-Point) 的专用链路,两端设备地位平等。

    • 工作过程

      1. 发起方想发数据,先发一个 ENQ (询问帧) 问接收方:“你准备好了吗?”
      2. 接收方如果准备好,回 ACK (确认帧);如果没准备好,回 NAK (否认帧)
      3. 收到 ACK 后,发起方开始传数据。
      4. 数据传完,发 EOT (传输结束帧) 断开。
    • 异常处理:如果发了 ENQ 后没收到回应,或者收到 NAK,或者传输中 ACK 丢失,都需要相应的超时重发或等待机制。

  2. 轮询/选择模式 (Poll/Select)

    • 适用场景:多点连接 (Multipoint),即主从式结构(一个主设备,多个从设备)。

    • 工作方式:主设备控制链路,从设备只能响应。

    • 选择 (Select)主设备 -> 从设备。当主设备有数据要发给从设备时,发 SEL 帧。从设备回 ACK 表示准备好接收,回 NAK 表示拒绝。

    • 轮询 (Poll)从设备 -> 主设备。主设备想知道从设备有没有数据要发,逐个询问。

      • 主设备发 POLL
      • 如果从设备没数据,回 NAK
      • 如果从设备有数据,直接回 数据帧

流量控制与差错控制

流量控制防止发送方发太快把接收方淹没,差错控制(ARQ)处理帧的损坏或丢失。

停止等待协议 (Stop-and-Wait)

  • 原理:发一帧,等一个 ACK,再发下一帧。
  • 流量控制:每次只发一帧。效率低,特别是距离长时,大部分时间浪费在等待 ACK 上(半双工)。
  • 差错控制
    • 帧破坏:接收方收到坏帧,回 NAK,发送方重传。
    • 帧丢失:发送方设置定时器,超时未收到应答则重传。
    • 应答帧丢失:发送方超时重传,接收方通过帧编号 (0和1交替) 识别并丢弃重复帧。

发送一帧所需的最短总时间 (WTW_T):

完成一个数据帧的发送、传播以及收到确认帧所需的最小时间间隔通常记为 WTW_T(或 tWt_W)。

WT=tI+2tp+2tproc+tSW_T = t_I + 2t_p + 2t_\text{proc} + t_S

符号含义:

  • WTW_T:发送一帧所需的最短总时间
  • tIt_I发送数据帧的时间,计算公式为 tI=帧长接口速率t_I = \frac{\text{帧长}}{\text{接口速率}}
  • tpt_p信号传播时延,计算公式为 tp=距离0.7×光速t_p = \frac{\text{距离}}{0.7 \times \text{光速}}
  • tproct_\text{proc}节点处理数据的时间
  • tSt_S发送确认帧(ACK)的时间,计算公式为 tS=确认帧长接口速率t_S = \frac{\text{确认帧长}}{\text{接口速率}}

信道利用率 (FFPP):

信道利用率定义为信道被有效占用的时间与总时间之比。

  • 新版定义: $$F = \frac{t_I}{W_T}$$
  • 旧版定义(包含传播时延): $$F = \frac{t_I + t_p}{W_T}$$

符号含义:

  • FFPP信道利用率

有效数据传输率 (SS)

单位时间内传输的有效数据位数。

S=D1WTS = \frac{D_1}{W_T}

符号含义:

  • SS有效数据传输率
  • D1D_1:一帧中的有效数据位数(不含首部和尾部开销)。

存在差错时的平均传输时间 (tVt_V)

当考虑帧的出错率 pp 时,正确发送一帧所需的平均时间间隔为:

tV=tW1pt_V = \frac{t_W}{1 - p}

符号含义:

  • tVt_V:正确发送一帧的平均时间
  • tWt_W:无差错情况下的最小时间间隔(等同于 WTW_T)。
  • pp数据帧的出错率

系统吞吐量与传输效率

  • 最大吞吐量 (λmax\lambda_{\max}):每秒成功发送的帧数。 $$\lambda_{\max} = \frac{1}{t_V} = \frac{1 - p}{t_W}$$
  • 极限吞吐量 (MM): $$M = \frac{1}{t_I}$$
  • 系统的传输效率 (ρ\rho):最大吞吐量与极限吞吐量之比。 $$\rho = \frac{1 - p}{a}$$ 其中,aa 为总时间与发送时间之比:a=tWtIa = \frac{t_W}{t_I} (a>1a > 1)。

符号含义:

  • ρ\rho系统传输效率,其大小与 aa 成反比,aa 越小(即等待时间越短),效率越高。

滑动窗口协议

  • 原理:允许发送方在收到 ACK 前连续发送多个帧。
  • 窗口概念
    • 发送窗口:存放已发送但未确认的帧。
    • 接收窗口:存放已接收但未上交/未确认的帧。
    • 编号:帧使用模 nn 编号(0,1,n10,1 \dots, n-1)。
  • 差错控制策略 (ARQ)
    1. 回退 N (Go-Back-N)
      • 如果某一帧出错,接收方丢弃该帧及之后所有帧。发送方重传出错帧及之后的所有帧。
      • 窗口大小限制:发送窗口尺寸 n1\le n-1。如果等于 nn,无法区分是新帧还是重传的旧帧(会产生歧义)。
    2. 选择拒绝 (Selective Reject)
      • 接收方只拒收出错的那一帧,缓存后续正确的帧。发送方只重传出错的那一帧。
      • 需排序和查找机制,复杂。
      • 窗口大小限制:发送窗口 + 接收窗口 n\le n。通常设为发送窗口=接收窗口n/2发送窗口=接收窗口 \le n/2

窗口大小的选择

为了使发送方能够不间断地发送数据(即达到极限吞吐量),窗口的大小 nn 必须足够大,以覆盖信号在往返时间内能够传输的帧数。

  • 基本条件: $$nt_I > 2(t_I + t_p)$$
  • 考虑确认帧发送时间时: $$nt_I > t_I + 2t_p + t_s$$

符号含义:

  • nn窗口大小(允许连续发送的帧数)。
  • tIt_I发送一个数据帧的时间
  • tpt_p信号传播时延
  • tst_s发送一个确认帧(ACK)的时间

回退 N 协议的效率分析

在回退N协议中,若某一帧损坏或丢失,发送方必须重传该帧及其后续所有已发送但未确认的帧。

  • 正确传送一帧所需的平均时间 (tVt_V): $$t_V = t_I + \frac{pt_W}{1 - p}$$
  • 系统最大吞吐量 (λmax\lambda_{max}): $$\lambda_{max} = \frac{1}{t_V} = \frac{1 - p}{t_I(1 + p(a - 1))}$$
  • 系统传输效率 (ρ\rho): $$\rho = \frac{1 - p}{1 + p(a - 1)}$$

符号含义:

  • pp数据帧的出错率
  • tWt_W:发送一帧并收到确认所需的最小时间间隔(在效率对比中,a=tW/tIa = t_W / t_I)。
  • aa总时间与发送时间之比a>1a > 1)。
  • ρ\rho系统传输效率,其随 aa 的增大而降低,但在相同条件下通常优于停止等待协议。

窗口尺寸与编号范围的关系

为了区分新帧和重复帧,协议对窗口尺寸有严格限制:

  • 回退N协议: 若帧的编号范围是 0n10 \sim n-1(模 nn 编号),则发送窗口最大为 n1n-1
  • 选择拒绝协议: 若帧的编号范围是 0n10 \sim n-1,则发送窗口尺寸 WtW_t 和接收窗口尺寸 WrW_r 必须满足: $$W_t + W_r \le n$$ 若要求 Wt=WrW_t = W_r,则窗口尺寸最大为 n/2n/2

例题

卫星通信下的窗口计算

已知: 卫星通信中,帧长为 1200 bit,信道速率为 4.8 kbit/s,传播延迟 tp=250 mst_p = 250\text{ ms}求: 在全双工通信中,窗口 nn 至少应为多少? 解:

  1. 计算发送一帧的时间 tIt_I: $$t_I = \frac{1200}{4.8 \times 10^3} = 0.25\text{ s} = 250\text{ ms}$$
  2. 根据窗口选择公式: $$n > \frac{2(t_I + t_p)}{t_I} = \frac{2(250 + 250)}{250} = 4$$ 结论: 窗口 nn 至少应大于 4。

不同协议的传输效率对比

已知: 数据帧差错率 p=0.01p = 0.01,参数 a=4a = 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 校验。

三种帧类型 (由控制字段决定)

  1. 信息帧 (I-帧, Information)
    • 首位为 0
    • 用于传输用户数据,包含 N(S) (发送序号) 和 N(R) (期望接收的下一帧序号)。
    • 支持捎带确认:在发数据的同时确认对方的数据。
  2. 监管帧 (S-帧, Supervisory)
    • 前两位为 10
    • 用于流量和差错控制,没有信息字段。
    • 类型:
      • RR (Receive Ready):准备好接收,相当于 ACK。
      • RNR (Receive Not Ready):忙,暂停发送。
      • REJ (Reject):拒绝,要求重发 (Go-Back-N)。
      • SREJ (Selective Reject):选择拒绝。
  3. 无编号帧 (U-帧, Unnumbered)
    • 前两位为 11
    • 用于链路建立、断开和管理 (如 SABM 建立连接, DISC 断开连接, UA 确认)。

数据链路层网络互连

这一部分讨论如何扩展局域网,主要涉及网桥和交换机。

网桥 (Bridge)

  • 层级:工作在数据链路层 (MAC 子层)。
  • 功能:连接两个局域网,存储转发帧,进行地址过滤(隔离冲突域)。
  • 路由算法
    1. 透明网桥 (Transparent Bridge)
      • 自学习:通过观察源 MAC 地址和入端口,建立转发表 (MAC地址 -> 端口)。
      • 转发:查目的 MAC,如果在表中且端口不同则转发;如果在表中且端口相同则丢弃(隔离);如果不在表中则泛洪 (广播)。
      • 生成树协议 (Spanning Tree Protocol, STP):解决环路导致的广播风暴。通过选举根网桥 (Root Bridge)(ID 最小的),并在每个网段选出指定端口,禁用多余路径,将网络逻辑上变成无环树状结构。
    2. 源路由网桥:由发送源在帧中指定路由路径,网桥只照做。

第二层交换机 (L2 Switch)

  • 本质:多端口的网桥。
  • 特点:每个端口独享带宽(并行工作),隔离冲突域,但不隔离广播域
  • 交换方式
    1. 直通式 (Cut-Through):读到目的 MAC (前6字节) 就立即转发。速度快,延迟小,但无法检错,不能连接不同速率端口。
    2. 存储转发 (Store-and-Forward):收完整个帧,CRC 校验无误后再转发。最广泛使用,支持不同速率转换,但延迟大。

VLAN (虚拟局域网)

  • 定义:在物理交换机上逻辑划分网段。
  • 优点
    1. 端口分隔:不同 VLAN 无法直接通信(逻辑隔离)。
    2. 安全性:隔离了广播域,防止广播风暴,提升安全。
    3. 灵活管理:不受物理位置限制,通过软件配置更改用户组。
  • 实现:通常在帧中插入 VLAN Tag (如 802.1Q 标准)。不同 VLAN 间通信需要通过路由器三层交换机

网络层

网络层的功能与服务

网络层的主要任务是将数据从源主机传输到目的主机。为了实现这一目标,它主要提供两个功能:路由(Routing)交换(Switching)

逻辑寻址

IP地址:网络层使用逻辑地址(如IP地址)来标识信源和信宿。这与数据链路层的物理地址(MAC地址)不同。IP地址具有层次结构,有助于路由选择。

两种服务模型

网络层向传输层提供的服务有两种主要模式,这直接影响了内部的交换方式。

  1. 面向连接的服务:虚电路 (Virtual Circuit, VC)

    • 核心思想:模仿电话系统。

    • 过程

      1. 建立连接:发送方发送呼叫请求,建立一条逻辑路径(虚电路)。
      2. 数据传输:所有分组沿着这条建立好的路径按序发送。分组头部只需要包含短的虚电路号 (VC ID),不需要完整的目的地址。
      3. 连接释放:传输结束,拆除电路。
    • 优点:保证顺序、可靠性较高、头部开销小、支持预分配带宽。

    • 缺点:建立连接有延迟;若路径中某节点瘫痪,整个电路中断(脆弱性)。

  2. 无连接的服务:数据报 (Datagram)

    • 核心思想:模仿邮政系统。

    • 过程:每个分组(Packet)独立处理。每个分组都携带完整的源和目的地址。路由器根据当前网络状态为每个分组独立选择路径。

      • 特点
        • 分组可能乱序到达。
        • 分组可能走不同的路径。
        • 尽力而为的交付(不可靠)。
      • 优点:灵活、健壮(某节点坏了可以绕路)、无建立连接延迟。
      • 缺点:头部开销大(每次都要带全地址)、不保证顺序和可靠性。

交换技术的时延计算

方式是否先建立连接是否分组是否存储转发
电路交换
报文交换✅(整报)
虚电路✅(分组)
数据报✅(分组)

例题,对比电路交换报文交换、**分组交换(虚电路)分组交换(数据报)**的端到端延迟。

场景假设

  • 路径:ABCDA\to B\to C\to D(3段链路)。
  • 报文长度:LL bit。
  • 带宽(速率):RR bps。
  • 传播延迟:tpt_p(每段)。
  • 分组大小:PP bit(含头部)。
  • 建立连接时间:tsetupt_\text{setup}
  1. 电路交换 (Circuit Switching)

    • 机制:物理链路直接连通,数据像水流一样过去。

    • 总时延 = 建立时间 + 发送时延 + 传播时延

      T=tsetup+LR+3×tpT = t_\text{setup} + \frac{L}{R} + 3 \times t_p

    • :中间节点没有存储转发,所以发送时延只算一次(源头发出,终点几乎同时开始接收)。

  2. 报文交换 (Message Switching)

    • 机制:存储-转发。整个报文在每一跳都要收齐了再发。

    • 总时延 = (发送时延 + 传播时延) ×\times 跳数

      T=3×(L+headerR+tp)T = 3 \times (\frac{L + \text{header}}{R} + t_p)

    • :每一跳都要完整的发送时间。

  3. 分组交换 - 虚电路 (Packet Switching - Virtual Circuit)

    • 机制:先建立连接,然后分组流水线(Pipeline)传输。

    • 时延组成:建立时间 + 第一个分组到达时间 + 剩余分组的发送时间。

    • 总时延

      T=tsetup+[3×(PR+tp)]+(N1)×PRT=t_\text{setup} + [3 \times (\frac{P}{R} + t_p)] + (N-1) \times \frac{P}{R}

      • 其中 NN 是分组数量。
      • 第一部分是建立连接。
      • 第二部分是第一个分组完整走完3跳到达终点的时间。
      • 第三部分是后续分组紧接着从源头出来的时间(因为是流水线,当第1个分组在链路2时,第2个分组在链路1,以此类推,终点每隔 P/RP/R 就收到一个包)。
  4. 分组交换 - 数据报 (Packet Switching - Datagram)

    • 机制:无连接,直接分组流水线传输。

    • 总时延 = (第一个分组到达时间) + (剩余分组发送时间)

      T=[3×(PR+tp)]+(N1)×PRT = [3 \times (\frac{P}{R} + t_p)] + (N-1) \times \frac{P}{R}

    • 区别:相比虚电路,仅仅少了一个 tsetupt_{setup}


路由算法

路由算法分为非适应性(静态)适应性(动态)。重点掌握动态路由算法。

距离向量路由 (Distance Vector, DV)

  • 典型协议:RIP (Routing Information Protocol)。
  • 算法基础:Bellman-Ford 算法。
  • 工作原理
    • "谣言"传播:每个路由器只和邻居交换信息。
    • 交换内容:自己的整个路由表(我去哪里需要多远)。
    • 更新策略:周期性(如30秒)更新。
    • 计算逻辑:如果邻居到目标X的距离 + 我到邻居的距离 < 我当前到X的距离,则更新路由表。
  • 特点:实现简单,但收敛慢,存在**计数到无穷大(Count-to-Infinity)**问题(好消息传得快,坏消息传得慢)。
  • 典型协议:OSPF (Open Shortest Path First)。
  • 算法基础:Dijkstra 算法 (SPF)。
  • 工作原理
    1. 发现邻居:发送 Hello 包。
    2. 测量开销:测算到邻居的 metric(如带宽、延迟)。
    3. 构造LSP (链路状态包):包含“我是谁,我的邻居是谁,费用多少”。
    4. 广播 (Flooding):将LSP发送给网络中所有路由器(不仅仅是邻居)。
    5. 计算:每个路由器拥有全网一致的拓扑图(链路状态数据库),独立运行 Dijkstra 算法计算以自己为根的最短路径树。
  • 特点:收敛快,不易产生环路,CPU消耗较高。

Dijkstra 算法计算步骤(必考操作):
给定一个图和起点(如A):

  1. 初始化:集合 N={A}N=\{A\}。列出A到直接邻居的距离,其他为 \infty
  2. 找最小:在不在 NN 中的节点里,找一个距离A最近的节点(比如B),加入 NN
  3. 更新(松弛):以新加入的节点B为跳板,检查能不能缩短A到其他节点的距离。如果 Dist(A,B)+Dist(B,C)<Dist(A,C)Dist(A, B) + Dist(B, C) < Dist(A, C),则更新 CC 的距离。
  4. 重复:直到所有节点都加入 NN

路由协议体系

互联网路由协议分为两大类:

  1. IGP (内部网关协议):在同一个自治系统 (AS) 内部使用。

    • RIP:基于距离向量,跳数作为度量,最大15跳,适合小网络
    • OSPF:基于链路状态,度量值通常与带宽成反比,支持大规模网络,分区域 (Area) 管理。
  2. EGP (外部网关协议):在不同的自治系统 (AS) 之间使用。

    • BGP (Border Gateway Protocol)
      • 路径向量协议 (Path Vector)。
      • 不仅考虑最短路径,还考虑策略(如政治、经济因素)。
      • 避免环路:通过记录经过的 AS 序列。

网络层互连设备

  • 路由器 (Router)
    • 工作在网络层。
    • 根据 IP 地址转发。
    • 隔离广播域。
    • 主要功能:路由选择、分组转发。
  • 第三层交换机 (L3 Switch)
    • 本质是“带有路由功能的交换机”。
    • 一次路由,多次交换:第一个包通过CPU软件路由,建立流表后,后续包通过硬件ASIC芯片快速转发。
    • 速度快,常用于局域网核心层。

拥塞控制与流量控制

  • 拥塞 (Congestion):是一个全局性问题。网络中数据包太多,超过了处理能力,导致性能下降(吞吐量下降,延迟急剧增加)。
  • 流量控制 (Flow Control):是点对点问题。发送方发太快,接收方来不及收。
  • 拥塞控制方法
    • 开环控制(预防):设计时就决定好,如限制入网流量。
    • 闭环控制(反馈):基于反馈调节。
      • 抑制包 (Choke Packet):路由器拥塞时直接发包告诉源主机“慢点发”。
      • 丢弃分组:缓冲区满了就丢包(TCP会将其视为拥塞信号)。
  • 死锁
    • 存储转发死锁:缓冲区满了,这就形成了互锁。
    • 重装死锁:接收端无法重组分片,这就占着缓冲区不释放。

网络层专题:网络互联设备

物理层互联设备

物理层设备只负责处理信号(比特流),不理解帧结构或IP地址,因此它们也是“傻瓜”设备。

中继器 (Repeater)

  • 功能:对衰减的信号进行再生、整形和放大,然后转发出去。

  • 目的:扩展局域网的物理覆盖范围(克服信号衰减限制)。

  • 限制

    • 连接的两端必须是相同的物理层和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芯片实现线速交换,速度极快。

三种典型的交换技术

  1. 直通式 (Cut-Through)
    • 机制:一读到目的MAC地址(前6字节)就立即查找转发表并转发。
    • 优点:延迟极小,速度快。
    • 缺点:无法检错(CRC校验在帧尾),坏帧也会被转发;不能连接不同速率的端口。
  2. 存储转发 (Store-and-Forward)
    • 机制:收完整个帧,进行CRC校验,无误后再转发。
    • 优点:检错能力强,可靠性高;支持不同速率端口转换(如10M转100M)。
    • 缺点:延迟大(尤其是长帧)。
    • 注:这是目前最广泛使用的方式。
  3. 免碎片转发 (Fragment Free)
    • 机制:接收前64字节(最小帧长)后开始转发。
    • 折中方案:过滤掉了因冲突产生的碎片(通常小于64字节),速度介于前两者之间。

冲突域与广播域

  • 冲突域 (Collision Domain)
    • 定义:同一物理网段上,可能发生信号碰撞的节点集合。
    • Hub:所有端口在同一个冲突域。
    • Switch/Bridge每个端口是一个独立的冲突域(隔离了冲突)。
  • 广播域 (Broadcast Domain)
    • 定义:能接收到同一个广播帧(MAC全1)的节点集合。
    • Hub/Switch/Bridge:默认情况下,连接的所有设备都在同一个广播域(广播帧会穿透交换机)。
    • Router/VLAN:可以隔离广播域

VLAN (虚拟局域网)

  • 定义:在二层交换机上,通过软件逻辑地将设备划分为不同的广播域,而不受物理位置限制。
  • 优点
    1. 控制广播风暴:广播帧只在VLAN内部传播,不会扩散到全网。
    2. 安全性:不同VLAN的用户默认无法直接通信。
    3. 灵活管理:更改用户所属组只需修改软件配置,无需物理换线。
  • 划分方式:最常用的是基于端口划分,也有基于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+MACVLAN间高速路由

传输层

传输层的功能与服务

  • 位置:位于通信子网(下三层)和资源子网(上三层)之间。
  • 对象:网络层负责“主机到主机”的通信,而传输层负责源主机进程到目的主机进程(端到端)的通信。
  • 目标:提供可靠的、透明的数据传输。

主要功能

  • 端到端报文传递:确保数据从发送进程准确到达接收进程。
  • 服务点寻址
    • NSAP (网络服务访问点):即IP地址,用于定位主机。
    • TSAP (传输服务访问点):即端口号,用于定位主机上的具体进程。
  • 复用与分用
    • 向上复用:多个传输层连接共享一个网络层连接(IP)。它们用不同的端口。
    • 向下复用:一个传输层连接使用多个网络层连接(以增加带宽或可靠性)。把一个传输连接复用到多个IP,例如在流量较⼤时,使⽤多个⽹卡将流量拆分。
  • 差错控制:传输层需要进⾏差错处理以保证端到端的可靠性。例如,当包在路由器内部处理时可能引⼊差错,这些差错不会被数据链路层发现,因此传输层必须进⾏⾃⼰的端到端检查。
  • 拆分与组装:将长报文切分成适合网络传输的数据段,标上序号,并在接收端重组。
  • 丢失控制:通过丢失重传来确保数据包正确到达。
  • 重复控制:通过序列编号使接收⽅可以识别并丢弃重复的段。

两种服务类型

  • 面向连接的服务:建立连接 -> 传输数据 -> 释放连接(如 TCP)。
  • 无连接的服务:直接发送数据,不保证到达(如 UDP)。

传输服务原语

ISO定义了四类基本的交互动作:

  • 请求 (Request):用户(上层)发给服务提供者(传输层),请求某项工作(如建立连接)。
  • 指示 (Indication):服务提供者通知用户发生了某事(如收到连接请求)。
  • 响应 (Response):用户对“指示”的回复。
  • 确认 (Confirm):服务提供者告诉用户,刚才的“请求”已经完成了。
  • 具体的原语包括:T-CONNECT(连接)、T-DISCONNECT(断开)、T-DATA(数据)、T-UNITDATA(无连接数据)。

传输协议要素

为了在不可靠的网络上实现可靠传输,传输层协议必须解决以下问题:

  1. 差错控制 (Error Control)

    • 范围:不仅检查数据,还检查控制信息。

    • 机制

      • 校验和 (Checksum):检测数据是否损坏。
      • ARQ (自动重传请求):接收方发送确认 (ACK) 或 否认 (NAK),发送方超时重传。
      • 区分错误:需要区分是“数据链路层没检查出来的错误”还是“传输层引入的错误”。
  2. 序列控制 (Sequence Control)

    • 分段:将大块数据切分。

    • 编号:给每个数据段分配序列号。

    • 功能:解决数据包的丢失重复乱序问题。接收方根据序列号去重并重新排序。

  3. 流量控制 (Flow Control)

    • 区别:数据链路层的流量控制是相邻节点间的,传输层是端到端的。

    • 机制可变大小的滑动窗口协议。

    • 动态调整:窗口大小不是固定的,而是根据接收端的缓冲区大小(接收能力)动态变化的。发送窗口 = min(拥塞窗口,接收端通告窗口)\min(\text{拥塞窗口}, \text{接收端通告窗口})

传输层拥塞控制

拥塞控制是为了防止过多的数据注入到网络中,导致网络核心负载过大。TCP 采用了四种核心算法。

关键变量

  • Cwnd (Congestion Window):拥塞窗口,发送方估算的当前网络能承受的数据量。

  • Rwnd (Receiver Window):接收端窗口,接收方通知的自己缓冲区的剩余空间。

  • ssthresh (Slow Start Threshold):慢启动阈值,用于切换算法。

  • SMSS:发送端最大数据段尺寸(单位通常是字节或报文段个数)。

四大算法

  1. 慢启动 (Slow Start)

    • 初始状态:Cwnd = 1 个 SMSS。

    • 增长规则:每收到一个 ACK,Cwnd 加 1。即每经过一个传输轮次(RTT),Cwnd 加倍(指数增长:1, 2, 4, 8…)。

    • 停止条件:当 Cwndssthresh\text{Cwnd} \ge \text{ssthresh} 时,停止慢启动,转入拥塞避免

  2. 拥塞避免 (Congestion Avoidance)

    • 触发条件Cwndssthresh\text{Cwnd} \ge \text{ssthresh}

    • 增长规则:每经过一个 RTT,Cwnd 增加 1 个 SMSS。即线性增长(加法增大),让窗口缓慢变大,试探网络极限。

  3. 超时处理 (Severe Congestion)

    • 如果发生超时 (Timeout)(说明网络堵塞严重):
      1. 新的 ssthresh = 当前 Cwnd / 2。
      2. 新的 Cwnd = 1。
      3. 重新进入慢启动
  4. 快速重传与快速恢复 (Fast Retransmit / Fast Recovery)

    • 触发条件:发送方连续收到 3个重复的 ACK(即共收到4个相同的ACK)。这通常意味着某个报文段丢了,但网络还没完全瘫痪(还能传回ACK)。

    • 快速重传:立即重传丢失的报文段,不等超时定时器。

    • 快速恢复

      1. 新的 ssthresh = 当前 Cwnd / 2。
      2. 新的 Cwnd = 新的 ssthresh+3×SMSS\text{ssthresh} + 3 \times \text{SMSS}(这3个是为了抵消那3个重复ACK带来的窗口占用)。
      3. 之后进入拥塞避免(线性增长),而不是慢启动。

拥塞控制图解与计算例题

图解逻辑

  1. 指数上升:慢启动阶段。
  2. 拐点:达到 ssthresh,变为线性上升。
  3. 大跌:遇到超时,降为1,阈值减半。
  4. 小跌:遇到3个重复ACK,降为一半,阈值减半(快速恢复)。

计算例题解析

  • 题目MSS=1KBMSS = 1KB。当前 Cwnd=18KBCwnd = 18KB。发生超时。问:接着4个传输并发量也是成功的,该窗口将是多少?
  • 解析步骤
    1. 发生超时
      • ssthresh=当前 Cwnd/2=18/2=9KBssthresh = \text{当前 } Cwnd / 2 = 18 / 2 = 9KB
      • CwndCwnd 重置为 1KB1KB
      • 进入慢启动
    2. 第1次传输:发送1KB。成功收到ACK。CwndCwnd 翻倍 2KB\to 2KB
    3. 第2次传输:发送2KB。成功收到ACK。CwndCwnd 翻倍 4KB\to 4KB
    4. 第3次传输:发送4KB。成功收到ACK。CwndCwnd 翻倍 8KB\to 8KB
    5. 第4次传输:此时窗口为8KB,发送8KB数据。
      • 注意:如果是问第4次传输的窗口大小:下次理论翻倍是16,但 ssthresh=9ssthresh=9。所以 CwndCwnd 会变成 9(到达阈值),余下的按线性增长。但根据PPT的简略答案,它问的是“接着4个…传输”,通常指这4次传输所使用的窗口序列是 1, 2, 4, 8。所以第4次传输时的窗口是 8KB

传输连接管理(三次握手)

连接建立

即著名的三次握手

  1. A -> B: 发送 CR (Connection Request) 或 SYN。携带初始序号 xx
  2. B -> A: 发送 CC (Connection Confirm) 或 SYN+ACK。确认号 ack=x+1ack=x+1,携带B的初始序号 yy
  3. A -> B: 发送 AK (Acknowledgment) 或 ACK。确认号 ack=y+1ack=y+1
    • 异常处理:如果出现重复的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

三⼤类多路访问协议及⼩分类

  1. 随机访问协议
    特点:冲突不可避免。
  2. 受控访问协议
    特点:克服了冲突。
  3. 有限竞争协议
    特点:利⽤上述⼆者的优势。

在LAN中,多个⽤⼾在没有任何控制的情况下同时访问⼀条线路时,会存在由于不同信号叠加⽽相互破坏的情
况。这就是冲突。为了使冲突发⽣的可能性最⼩,需要有⼀种机制来协调通信。
以太⽹的媒体访问控制机制称为带有冲突检测的载波侦听多路访问(CSMA/CD)
CSMA/CD的发展:MA-〉CSMA-〉CSMA/CD

演进逻辑

  • ALOHA 协议
    • 纯ALOHA:想发就发。冲突严重,效率极低。
    • 分隙ALOHA:只能在时间片开始时发送。效率提升,但仍有冲突。
  • CSMA (载波侦听):先听后发。
    • 非坚持:忙则等待随机时间。
    • 1-坚持:忙则一直听,空闲立即发(以太网采用,利用率高但冲突几率也高)。
    • P-坚持:空闲时以概率P发送。
  • CSMA/CD (带冲突检测):边发边听。一旦检测到冲突,立即停止发送并发送干扰信号(Jam)。

CSMA/CD 工作流程

  1. 侦听:如果信道空闲,立即发送;如果忙,继续侦听直到空闲。
  2. 发送与检测:边发送数据边检测信道电平。
  3. 冲突处理:如果检测到冲突(电平叠加),立即停止发送当前帧,发送阻塞信号 (Jam signal) 强化冲突,让所有站点都知道。
  4. 退避重传:等待一段随机时间后,重新尝试发送。

二进制指数退避算法 (Binary Exponential Backoff)
这是解决冲突后何时重传的关键算法。

  • 规则:发生第 kk 次冲突后,从整数集合 [0,1,...,2k1][0, 1, ..., 2^k - 1] 中随机取出一个数 rr
  • 等待时间t=r×2τt = r \times 2\tau2τ2\tau 为争用期,即两倍的端到端传播时延)。
  • 限制
    • kk 最大取 10(即超过10次冲突,集合不再扩大,固定为 010230 \sim 1023)。
    • 重传次数超过 16 次,丢弃该帧并报错。

最短帧长计算

为了保证发送方在停止发送前能检测到可能发生的冲突,帧的发送时间必须大于等于两倍的信号传播时延(RTT)

  • 计算公式

    Lmin=R×2S/VL_{\min} = R \times 2S / V

    • LminL_{\min}:最短帧长(bit)。
    • RR:数据传输速率(bps)。
    • SS:两站点间最大距离(m)。
    • VV:信号传播速度(m/s,通常光速的2/3,约 200m/μs200\text m/\mu \text s)。
    • 2S/V2S/V:往返传播时延 (2τ2\tau)。
  • 以太网标准值

    • 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,因为:

  1. 检测困难:发送功率远大于接收功率,难以边发边听。
  2. 隐蔽终端:A和C都想发给B,但A听不到C,直接发会导致在B处冲突。

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

因此,802.11 采用了 CSMA/CA (带冲突避免) 机制:

  • IFS (帧间间隔):发送前必须等待的一段时间。优先级越高,等待时间(IFS)越短。
    • SIFS (短):最高优先级,用于ACK、CTS。
    • PIFS:中等,用于轮询。
    • DIFS (分布):最低,用于普通数据。
  • 退避算法:信道忙时,挂起倒计时;信道空闲时,继续倒计时。
  • ACK确认:由于无线传输不可靠,必须使用停止-等待协议,每发一个数据帧都要等一个ACK。

思考:采⽤停等机制的原因?为什么不采⽤流⽔线机制?

  1. ⽆线环境中的冲突和⼲扰
    ⽆线环境中信号容易受到各种因素的影响,如⼲扰、噪声和信号衰减。在这种环境下,确保每个帧的可靠传
    输显得尤为重要。停等机制能够在每帧传输后⽴即等待接收确认,确保帧已成功接收或在检测到错误时进⾏
    重传,从⽽提⾼了传输的可靠性。
  2. 隐藏终端和暴露终端问题
    ⽆线局域⽹中存在隐藏终端和暴露终端问题,这使得冲突检测变得复杂。使⽤停等机制可以减⼩这些问题的
    影响,因为每次发送后都要等待接收确认,从⽽可以及时发现并处理冲突。
  3. 资源有限和复杂性
    ⽆线通信资源有限,停等机制相对简单,容易实现和管理。⽽流⽔线机制需要更多的缓冲和复杂的管理策
    略,容易导致在⽆线环境中增加系统的复杂性和资源开销。

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
    • 主机数 = 2主机位数22^{\text{主机位数}} - 2 (减去全0的网络号和全1的广播号)。
  • VLSM (可变长子网掩码):允许在一个网络中使用不同长度的子网掩码,提高利用率。先分大的再分小的
  • CIDR (无类别域间路由):消除A/B/C类界限,使用斜线记法(如 /24, /30)。支持路由聚合(超网),路由表中采用最长前缀匹配原则转发数据。

IPv4 地址不够 + 网络规模变大 ➡️ A/B/C 类地址浪费严重 ➡️ 引入 CIDR(取消分类) ➡️ 允许 VLSM(内部精细划分) ➡️ 允许路由聚合(外部减少路由条目) ➡️ 路由器路由表规模可控 ➡️ 使用最长前缀匹配保证转发正确

IP 数据报格式与分片

  1. 版本号 (Version) [4 bit]:
    ⽬前IP协议的版本号为4(IPv4),它正在逐渐被IPv6版本所替代。

  2. 报头⻓度 (Header Length) [4 bit]:
    报头⻓度指的是报头占32位字的数量(⼀般是20字节,即5⾏,对应的报头⻓度的字段值为5【1字段值对应4B】)。
    报头包括可选项,报头⻓度字段值最⼤是15,对应报头最⻓为60B

  3. 服务类型 (Type of Service, TOS) [8 bit]:
    4个⽐特的TOS分别表⽰:最⼩延迟、最⼤吞吐量、最⾼可靠性和最⼩费⽤。【4位中只能有1位为1】⾼3位和末位未使⽤。最新的RFC2474重新定义为区分服务,⽤来映射⼀个底层的服务。

  4. 总⻓度 (Total Length) [16 bit]:
    该字段以字节为单位定义IP数据报的总⻓度(报头加上数据)。【1字段值对应1B,所以IP数据报的最⼤⻓度为65536B】太⻓的报⽂会进⾏分段,⼀般不会超过576B

  5. 标识 (Identification) [16 bit]:
    标识字段唯⼀地标识主机发送的每⼀个数据报。通常每发送⼀个报⽂,其值⾃动加1。如果数据报被分⽚,每个分⽚都设置相同的标识号码。【在分段中使⽤】

  6. 标志 (Flags) [3 bit]:第1位未使⽤,DF位(第2位)置1表⽰不要分段,MF位(第3位)置1表⽰分段后还有进⼀步的分段,最后⼀个分段MF位为0。

  7. ⽚偏移 (Fragment Offset) [13 bit]:
    分段偏移说明该分段在数据报中的位置。以8字节为单位,如偏移量1对应字节号8,偏移量2对应字节号16。

  8. ⽣存时间 (Time to Live, TTL) [8 bit]:
    TTL字段设置数据报可以经过的最多路由器数量。每经过⼀个路由器,值减1,值为0时数据报被丢弃(并发送ICMP报⽂通知源主机)。防⽌数据报在⽹络中⽆限循环。【通常⽣存时间的起始值是32、64、128】

  9. 协议 (Protocol) [8 bit]:
    IP数据报的上层协议。常⻅的协议值包括ICMP(1)、IGMP(2)、TCP(6)、UDP(17)、IPv6(41)、OSPF(89)。

  10. 报头校验和 (Header Checksum) [16 bit]:
    根据IP报头计算的校验和,⽤于检测报头在传输过程中是否出现差错。采⽤16位反码求和算法。IP数据报每经过⼀个路由器,路由器都要重新计算⾸部检验和,因为某些字段(⽣存时间、标志、⽚偏移等)的取值可能发⽣变化。由于IP层本⾝并不提供可靠传输的服务,并且计算⾸部校验和是⼀项耗时的操作,因此在IPv6中,路由器不再计算⾸部校验和,从⽽更快转发IP数据报。

  11. 源IP地址 (Source IP Address):
    每个数据报都包含源IP地址。

  12. ⽬的IP地址 (Destination IP Address):
    每个数据报都包含⽬的IP地址。

可变部分(选项、数据)

  1. 选项:可选字段,⽤于携带额外的信息。【最⼤40B】
  2. 数据:实际传输的数据部分。

最⼤传送单元(MTU): MTU(Maximum Transmission Unit)是指在⽹络上传输的最⼤数据帧的⼤⼩,通常以字节为单位。MTU限制了IP数据报在传输链路上的最⼤⻓度。MTU的⼤⼩包括IP报头和数据部分。当数据报的⼤⼩超过MTU时,需要进⾏分⽚(Fragmentation)。

ARP (地址解析协议)

  • 功能将 IP 地址(逻辑地址)解析为 MAC 地址(物理地址)
  • 工作流程:ARP协议的请求包是以⼴播⽅式发送的。⽹段中的所有主机都会接收到这个包,如果⼀个主机的IP地址和ARP请求中的⽬的IP地址相同,该主机会对这个请求数据包作出ARP应答,将其MAC地址发送给源端。
    1. 广播请求:发送方在局域网广播 ARP Request(“谁是 IP x.x.x.x?请告诉我你的 MAC”)。
    2. 单播响应:目标主机收到后,单播回复 ARP Reply。
    3. 缓存:双方将映射关系存入 ARP 高速缓存。
  • ARP 代理:路由器代替处于另一网段的主机回答 ARP 请求。

DHCP (动态主机配置协议)

  • 功能:自动分配 IP 地址、网关、DNS 等。
  • 流程
    1. Discover:客户机广播寻找服务器。
    2. Offer:服务器提供 IP 地址。
    3. Request:客户机选择并请求使用该 IP。
    4. 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 连接管理

  • 三次握手 (建立连接)
    1. A -> B: SYN=1, Seq=x (A 请求连接)。
    2. B -> A: SYN=1, ACK=1, Seq=y, Ack=x+1 (B 同意并请求连接)。
    3. A -> B: ACK=1, Seq=x+1, Ack=y+1 (A 确认 B 的请求)。
  • 四次挥手 (释放连接)
    1. A -> B: FIN=1, Seq=u (A 说我发完了)。
    2. B -> A: ACK=1, Seq=v, Ack=u+1 (B 说知道了,但 B 可能还有数据要发)。
    3. … (B 继续发送数据) …
    4. B -> A: FIN=1, ACK=1, Seq=w, Ack=u+1 (B 也发完了)。
    5. A -> B: ACK=1, Seq=u+1, Ack=w+1 (A 确认,等待 2MSL 后彻底关闭)。

TCP 拥塞控制

拥塞控制是防止网络过载,不同于流量控制(点对点)。包含四个算法:

  1. 慢启动 (Slow Start)

    • 初始拥塞窗口 cwnd = 1 (MSS)。
    • 每收到一个 ACK,cwnd 加 1。
    • 效果:每经过一个传输轮次 (RTT),cwnd 加倍 (1, 2, 4, 8…),呈指数增长。
    • 直到 cwnd 达到 慢启动阈值 (ssthresh)
  2. 拥塞避免 (Congestion Avoidance)

    • 当 cwnd >= ssthresh 时进入此阶段。
    • 每经过一个 RTT,cwnd 加 1 (线性增长)。
  3. 超时处理 (Timeout)

    • 若发生超时(严重拥塞):
      • ssthresh = 当前 cwnd / 2
      • cwnd = 1
      • 重新进入慢启动
  4. 快速重传与快速恢复 (Fast Retransmit / Fast Recovery)

    • 若收到 3个重复的 ACK(轻度拥塞):
      • 立即重传丢失的报文(快速重传)。
      • ssthresh = 当前 cwnd / 2
      • cwnd = 新的 ssthresh + 3 (加上3个重复ACK的量)。
      • 进入拥塞避免(线性增长)。

计算例题解析 (Slide 30-31):

  • 题目:MSS=1KB,当前拥塞窗口 18KB,发生超时。接着 4 个传输并发量都成功。求窗口大小?
  • 解析
    1. 发生超时:ssthresh = 18 / 2 = 9KBcwnd = 1KB
    2. 第1次传输成功(慢启动):cwnd = 1 * 2 = 2KB。
    3. 第2次传输成功:cwnd = 2 * 2 = 4KB。
    4. 第3次传输成功:cwnd = 4 * 2 = 8KB。
    5. 第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 (香港) 等。
  • 二级/三级域:如 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,但你可以去问下一级的某某服务器”。
  • 流程示例
    1. 主机询问本地DNS:www.mcgraw.com 是多少?
    2. 本地DNS问根服务器:.com 归谁管? -> 根回复:去找 .com 服务器。
    3. 本地DNS问 .com 服务器:mcgraw.com 归谁管? -> 回复:去找 mcgraw.com 的权限服务器。
    4. 本地DNS问 mcgraw.com 服务器:www 是多少? -> 回复:是 x.x.x.x
    5. 本地DNS将结果返回给主机。

缓存 (Caching)
为了减轻服务器负担,解析结果(包括“查无此人”的否定结果)会在本地DNS和主机中缓存一段时间(TTL)。

常用工具

  • nslookup <域名>:查询域名解析。
  • ipconfig /displaydns:查看本地DNS缓存。

电子邮件服务 (E-mail)

电子邮件是互联网最早、最广泛的应用之一。

系统组成

  • 用户代理 (User Agent, UA):用户使用的客户端软件(如Outlook, Foxmail),负责撰写、阅读、管理邮件。
  • 邮件服务器 (Mail Server):负责发送和接收邮件,维护用户邮箱。
  • 协议
    • 发送协议SMTP (推模式)。
    • 接收协议POP3IMAP (拉模式)。

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)。
  • 浏览器先问代理:“你有这个网页吗?”
  • 如果有(命中),直接返回;如果没有,代理由去源服务器取,取回后发给用户并保存在本地缓存中。

参考和注解


计算机网络课程笔记
https://blog.kisechan.space/2025/notes-networks/
作者
Kisechan
发布于
2025年9月27日
更新于
2025年12月21日
许可协议