Skip to content
NotesComputer Networking

自顶向下的计算机网络笔记,覆盖应用层、传输层、网络层与链路层。

Packet Path

Network Layer

The data plane forwards each packet locally; the control plane decides the global routing state.

datagramrouterSDN
01Ingresspacket in
02Lookuptable hit
03Switchfabric
04Egresslink out
best effortIP
routing statecontrol
congestionfeedback

第六章:链路层和局域网 ​

前面几章已经从应用层、传输层、网络层一路走到“下一跳如何被决定”。本章讨论 链路层:当网络层已经决定下一跳以后,数据报如何被封装成帧,并在一条具体链路上从一个节点交付给物理相邻的另一个节点。重点包括错误检测与纠正、多路访问、MAC 地址、ARP、以太网、交换机、VLAN、MPLS 和数据中心网络。

目录 ​


6.1 本章主线:链路层在做什么 ​

链路层负责把网络层数据报从一个节点交付到 物理相邻 的另一个节点。这里的节点可以是主机、路由器、交换机或无线接入点;连接相邻节点的通信信道称为链路,第二层的数据单位称为 帧 (frame)。

可以把一次端到端传输拆成多个链路层片段:

text
源主机 -> 第一跳路由器 -> 中间路由器 -> ... -> 目的主机

网络层关心端到端路径和下一跳;链路层只关心当前这一跳怎么把帧送过去。一个 IP 数据报可能先经过 WiFi 链路,再经过以太网链路,再经过光纤链路。每一跳可以使用不同链路层协议,但网络层数据报在这些链路之间逐跳被封装和解封装。

运输类比:

网络概念旅行类比
数据报旅客
链路一段旅程
链路层协议交通工具,如轿车、飞机、火车
路由算法旅行社规划路线

本章的核心问题是:在一条具体链路上,多个节点如何共享介质、如何发现对方、如何检测错误、如何把帧送到正确接口?

6.2 链路层服务与实现位置 ​

链路层可以提供的服务包括:

服务作用
帧封装把网络层数据报封装成帧,添加头部和尾部
链路接入在共享介质上决定什么时候可以发送
MAC 寻址用源/目的 MAC 地址标识本地链路上的接口
相邻节点可靠传输在某些链路上通过重传提高单跳可靠性
流量控制控制相邻发送方和接收方之间的发送节奏
错误检测检测信号衰减、噪声等造成的比特错误
错误纠正在不重传的情况下纠正部分比特错误
半双工/全双工半双工不能同时收发,全双工可以同时收发

链路层通常实现在 网络接口卡 (NIC) 或网络芯片中,例如以太网卡、WiFi 芯片。它是硬件、固件和软件的组合:

  • 发送端:从网络层接收数据报,封装成帧,添加错误检测位,执行链路接入和必要的可靠传输逻辑。
  • 接收端:接收物理层比特流,检查错误,按 MAC 地址过滤帧,提取网络层数据报并向上传递。

IEEE 802 标准族还把数据链路层拆成 LLC 和 MAC 两个子层。LLC 提供相对统一的逻辑链路控制接口;MAC 处理具体介质访问、MAC 地址和帧格式。

6.3 错误检测与纠正 ​

链路层帧在传输中可能因为噪声、衰减或干扰发生比特翻转。发送方在数据 D 之外添加错误检测与纠正位 EDC;接收方根据收到的 D′ 和 EDC' 判断是否出错。

错误检测不是 100% 可靠:协议可能遗漏某些错误,只是概率很低。通常 EDC 字段越大,检测和纠正能力越强。

奇偶校验 ​

最简单的错误检测方法是单比特奇偶校验。以偶校验为例,发送方设置一个校验位,使整个比特串中 1 的个数为偶数。

方法能力局限
单比特奇偶校验可检测单比特错误两个比特同时翻转时可能漏检
二维奇偶校验可检测并纠正单比特错误纠错能力有限,开销更高

二维奇偶校验把数据排成矩阵,同时计算行校验和列校验。若只有一个比特错误,出错行和出错列的交点就是错误位置,因此可以纠正。

互联网校验和 ​

互联网校验和在传输层已经见过。发送方把 UDP 段内容和相关伪首部字段视为 16 bit 整数序列,做反码求和,结果写入校验和字段;接收方重新计算并比较。

结果含义
计算值与字段值不相等检测到错误
计算值与字段值相等未检测到错误,但仍不能保证绝对无错

校验和简单、便宜,但检测能力弱于 CRC。

CRC ​

CRC (Cyclic Redundancy Check) 是链路层广泛使用的更强错误检测编码,以太网和 802.11 WiFi 都使用 CRC 思想。

设:

  • D:数据位,把它看成一个二进制数。
  • G:生成器,比特模式长度为 r+1。
  • R:要附加的 r 个 CRC 位。

发送方选择 R,使得:

⟨D,R⟩=D⋅2r⊕R

能够被 G 模 2 整除。等价地:

R=remainder(D⋅2rG)

接收方知道同一个 G,用收到的 ⟨D,R⟩ 除以 G。如果余数非零,就检测到错误。CRC 可以检测所有长度小于 r+1 bit 的突发错误。

课件中的例子:

text
帧数据 D:       10111
生成器 G:       1001
CRC 余数 R:     011
实际传输帧:     10111011

常见生成多项式包括 CRC-12、CRC-16、CRC-CCITT 和 IEEE 802 使用的 32 位 CRC 多项式。

6.4 多路访问链路与 MAC 协议分类 ​

链路可以分为两类:

链路类型特点例子
点对点链路两端节点独占链路主机到以太网交换机、PPP 拨号链路
广播链路多个节点共享同一传输介质传统总线以太网、HFC 上行、WiFi、蜂窝、卫星

在广播链路上,如果多个节点同时发送,信号会互相干扰,发生 冲突。多路访问协议就是一组分布式规则,用来决定节点何时可以发送,以及冲突后如何恢复。注意:节点之间的协调通信也必须通过这个共享信道完成,没有额外的带外协调信道。

理想多路访问协议希望满足:

  1. 只有一个节点要发送时,它能以信道速率 R 发送。
  2. 有 M 个节点要发送时,每个节点平均得到 R/M。
  3. 完全去中心化,无需专门协调者,也无需全局同步。
  4. 实现简单。

MAC 协议大致分三类:

类别核心思想代表
信道划分把信道切成时隙、频段或码片,分配给节点TDMA、FDMA、CDMA
随机接入不预先划分信道,允许冲突,再从冲突中恢复ALOHA、CSMA、CSMA/CD、CSMA/CA
轮流访问节点按某种顺序获得发送机会轮询、令牌传递

6.5 信道划分:TDMA 与 FDMA ​

TDMA ​

TDMA (time division multiple access) 把时间划分为轮次,每轮中每个站点获得固定长度的时隙。一个时隙通常足够发送一个分组。

优点是没有冲突、分配清晰;缺点是如果某个站点暂时没有数据,它的时隙会空闲,其他站点不能使用,低负载时效率较差。

FDMA ​

FDMA (frequency division multiple access) 把信道频谱划分为多个频带,每个站点分配固定频带。与 TDMA 类似,FDMA 能避免冲突,但未使用的频带会浪费。

信道划分协议在高负载且流量稳定时比较公平,但面对突发流量时不够灵活。

6.6 随机接入:ALOHA、CSMA、CSMA/CD 与 CSMA/CA ​

随机接入协议允许节点在有帧时以全信道速率发送;如果多个节点同时发送,则发生冲突。协议需要规定如何检测冲突,以及如何通过随机延迟进行重传。

纯 ALOHA ​

纯 ALOHA 没有时隙同步。节点一旦有新帧就立即发送。假设发送一帧需要 1 个时间单位,那么在 t0 开始发送的帧会与 [t0−1,t0+1] 内其他节点开始发送的帧冲突,冲突危险区长度为 2 个帧时间。

纯 ALOHA 的成功概率为:

p(1−p)2(N−1)

取最优发送概率并令 N 很大时,最大效率约为:

12e≈0.18

也就是说,最好情况下只有约 18% 的信道时间用于成功传输。

时隙 ALOHA ​

时隙 ALOHA 把时间划分成等长时隙,节点只能在时隙开始时发送。它要求:

  • 所有帧大小相同。
  • 节点时钟同步。
  • 若多个节点在同一时隙发送,则所有节点都能检测到冲突。
  • 冲突后,节点以概率 p 在后续时隙中重传。

给定 N 个节点,每个节点在时隙中以概率 p 发送,任意节点成功的概率为:

Np(1−p)N−1

当 N→∞ 时,最大效率为:

1e≈0.37

时隙 ALOHA 比纯 ALOHA 好,但仍有大量冲突和空闲时隙。

CSMA ​

CSMA (carrier sense multiple access) 的基本思想是 先听后说:

信道状态行为
空闲发送整个帧
忙碌延迟发送

由于传播时延,即使使用载波侦听,冲突仍可能发生。两个相距较远的节点可能在还没有听到对方信号时同时开始发送。

常见 CSMA 策略:

策略行为
1-持续 CSMA信道忙则持续监听;一旦空闲立即发送
非持续 CSMA信道忙则随机等待一段时间后再监听
p-持续 CSMA分隙信道中,空闲时以概率 p 发送,以概率 1−p 推迟到下一时隙

CSMA/CD ​

CSMA/CD (collision detection) 在 CSMA 基础上加入冲突检测,主要用于传统有线以太网。发送方边发送边监听,如果检测到冲突,就中止传输并发送阻塞信号,从而减少被冲突浪费的时间。

以太网 CSMA/CD 算法:

  1. NIC 从网络层接收数据报,创建以太网帧。
  2. 若信道空闲,开始发送;若信道忙,等待空闲后发送。
  3. 若完整发送期间没有冲突,处理完成。
  4. 若发送时检测到其他传输,中止发送并发送阻塞信号。
  5. 进入二进制指数退避:第 m 次冲突后,从 {0,1,…,2m−1} 中随机选择 K,等待 K⋅512 bit 时间后重试。

如果最大传播时延为 tprop,最大帧传输时间为 ttrans,CSMA/CD 效率近似为:

efficiency=11+5tprop/ttrans

传播时延越小、帧传输时间越大,效率越接近 1。

为什么无线不使用 CSMA/CD ​

无线链路中冲突检测很困难:

  • 发送节点在发送同时持续检测信道成本高。
  • 即使发送端没有检测到冲突,接收端也可能因为其他信号干扰而收不到。
  • 存在隐藏站点问题:A 和 C 互相听不到,但同时发给 B,会在 B 处冲突。
  • 存在暴露站点问题:C 听到 B 正在发给 A,因此不敢发给 D,但实际上 C 到 D 的发送可能不会干扰 A。

CSMA/CA ​

CSMA/CA (collision avoidance) 用于 802.11 等无线网络,目标是尽量避免冲突,而不是发送时检测冲突。

基本过程:

  1. 发送前监听信道。
  2. 如果信道忙,采用二进制指数退避选择等待时间,并持续监听。
  3. 如果信道空闲,等待一个短的帧间间隔 IFS,再等待退避计时结束后发送。
  4. 发送后不做冲突检测,而是等待接收方 ACK。
  5. 若未收到 ACK,认为帧丢失,继续退避重传。

CSMA/CA 中不同帧间间隔如 SIFS、PIFS、DIFS 可用于表达不同优先级和控制关系。

6.7 轮流访问与有线接入网络 ​

信道划分协议在高负载下公平,但低负载时浪费;随机接入协议低负载时高效,但高负载下冲突开销大。轮流协议试图兼顾两者。

轮询 ​

轮询 (polling) 中,主节点依次邀请从属节点发送。

优点问题
控制明确,避免冲突轮询开销、等待延迟、主节点单点故障

令牌传递 ​

令牌传递 (token passing) 中,一个控制令牌按顺序在节点间传递。只有持有令牌的节点可以发送。

优点问题
没有冲突,公平性好令牌开销、等待延迟、令牌丢失或故障处理

DOCSIS:有线接入网络中的混合机制 ​

有线接入网络使用 FDM、TDM 和随机接入的组合:

  • 下行:多个广播 FDM 信道,由 CMTS 向用户电缆调制解调器发送。
  • 上行:多个上行信道,部分时隙被分配为 TDM,部分时隙用于竞争。
  • 下行 MAP 帧告诉电缆调制解调器哪些上行时隙被分配。
  • 上行数据请求可在选定时隙中通过随机接入和二进制退避发送。

6.8 MAC 地址与 ARP ​

IP 地址和 MAC 地址属于不同层次:

地址层次作用
IP 地址网络层用于跨网络、端到端或逐跳路由
MAC 地址链路层用于同一局域网内从一个接口把帧交付到另一个接口

MAC 地址通常是 48 bit,用十六进制表示,例如:

text
1A-2F-BB-76-09-AD

MAC 地址由 IEEE 管理,制造商购买地址空间以保证唯一性。一个常见类比是:

  • MAC 地址像身份证号或社会保障号码,扁平、可随网卡移动。
  • IP 地址像邮政地址,取决于设备接入的网络位置。

ARP 的作用 ​

ARP (Address Resolution Protocol) 用来回答:

text
已知同一局域网内某接口的 IP 地址,如何得到它的 MAC 地址?

每个主机和路由器维护 ARP 表,记录:

text
<IP 地址, MAC 地址, TTL>

TTL 表示该映射多久后过期,典型值约 20 分钟。

ARP 查询过程 ​

假设 A 要给同一局域网中的 B 发送数据报,但 A 的 ARP 表中没有 B 的 MAC 地址:

  1. A 广播 ARP 查询,目标 MAC 地址为 FF-FF-FF-FF-FF-FF,查询内容包含 B 的 IP 地址。
  2. 局域网中所有节点都收到查询,但只有 B 发现目标 IP 是自己。
  3. B 向 A 单播 ARP 回复,告诉 A 自己的 MAC 地址。
  4. A 把 (B 的 IP, B 的 MAC) 加入本地 ARP 表。
  5. A 之后就能把 IP 数据报封装到目的 MAC 为 B 的帧中发送。

ARP 是即插即用的:节点不需要手工配置全网映射,而是按需解析并缓存。

6.9 跨子网转发中的 IP 地址与 MAC 地址 ​

当 A 给另一个子网中的 B 发送数据报时,链路层目的地址不是 B 的 MAC,而是第一跳路由器接口的 MAC。

假设:

  • A 知道 B 的 IP 地址。
  • A 知道默认网关 R 的 IP 地址。
  • A 通过 ARP 得到 R 在本地子网接口的 MAC 地址。

第一跳帧中:

字段值
IP 源地址A 的 IP
IP 目的地址B 的 IP
MAC 源地址A 的 MAC
MAC 目的地址R 本地接口的 MAC

R 收到帧后,链路层去掉帧头,把 IP 数据报交给网络层。R 根据目的 IP 地址查转发表,选择出站接口。如果下一跳就是 B 所在子网,R 再用新的链路层帧封装同一个 IP 数据报:

字段值
IP 源地址仍然是 A 的 IP
IP 目的地址仍然是 B 的 IP
MAC 源地址R 出站接口的 MAC
MAC 目的地址B 的 MAC

关键点:IP 地址在端到端路径上保持不变,MAC 地址在每一跳都会变化。

6.10 以太网 ​

以太网是主导性的有线局域网技术。它广泛使用的原因包括:出现早、实现简单、成本低,并且持续支持更高速率,从 10 Mbps 到 100 Mbps、1 Gbps、10 Gbps、40 Gbps 乃至更高。

物理拓扑 ​

拓扑特点
总线以太网早期常见,所有节点共享同一冲突域
交换式以太网现代主流,主机连接到交换机,每条链路独立,通常全双工无冲突

以太网帧结构 ​

以太网帧大致包括:

字段作用
preamble前同步码,7 字节 10101010 加 1 字节 10101011,用于时钟同步
destination address6 字节目的 MAC 地址
source address6 字节源 MAC 地址
type指明上层协议,如 IP、ARP,也用于接收端解复用
data载荷,通常是 IP 数据报或其他网络层分组
CRC循环冗余校验;检测到错误则丢弃帧

接收适配器只会把目的 MAC 匹配自己或广播地址的帧向上传递,否则丢弃。

以太网服务模型 ​

以太网是无连接、不可靠的链路层协议:

  • 无连接:发送 NIC 和接收 NIC 之间无需握手。
  • 不可靠:接收 NIC 不向发送 NIC 发送 ACK 或 NAK。
  • 错误帧被丢弃;如果上层使用 TCP 等可靠传输,丢失会在更高层恢复,否则数据就丢失。

传统共享以太网使用非时隙 CSMA/CD 和二进制指数退避;现代交换式全双工以太网通常不再发生碰撞。

6.11 以太网交换机 ​

以太网交换机是链路层设备,它检查帧头中的 MAC 地址,存储并转发以太网帧。交换机对主机透明,即插即用,并通过自学习自动构建交换表。

交换机相比共享总线的重要优势是支持多路同时传输:

  • 主机通过专用链路连接交换机。
  • 每条链路是独立冲突域,通常全双工。
  • A 到 A' 与 B 到 B' 可以同时通信,不互相冲突。
  • 若多个输入都要发往同一输出,仍可能在交换机内部排队。

交换表 ​

交换表项形式为:

text
<MAC 地址, 接口, TTL>

它看起来像路由表,但建立方式不同:

设备表项依据表项如何获得
路由器IP 前缀路由算法和路由协议
交换机MAC 地址泛洪和自学习

自学习与转发规则 ​

交换机收到一个帧时:

  1. 记录发送方 MAC 地址和帧到达接口,更新交换表。
  2. 用目的 MAC 地址查交换表。
  3. 如果找到目的地址:
    • 若目的接口就是帧进入接口,丢弃该帧。
    • 否则只从对应接口转发。
  4. 如果找不到目的地址,泛洪:从除进入接口外的所有接口转发。

多台自学习交换机可以互连,规则完全相同。帧沿途被泛洪和学习,交换机逐渐知道哪些 MAC 地址位于哪些接口后,就能选择性转发。

6.12 VLAN:虚拟局域网 ​

当一个局域网规模很大时,单一广播域会带来问题:

  • ARP、DHCP、未知 MAC 泛洪等二层广播必须穿越整个 LAN。
  • 广播流量影响扩展性和效率。
  • 不同部门之间缺少隔离,带来安全和隐私问题。
  • 用户物理位置变化时,逻辑网络归属难以维护。

VLAN (Virtual LAN) 让一个物理交换网络被划分成多个逻辑局域网。支持 VLAN 的交换机可以像多个虚拟交换机一样工作。

VLAN 划分方式 ​

方式特点
基于端口按交换机端口静态划分 VLAN,简单常用
基于 MAC按主机 MAC 地址动态划分,需要注册主机
基于 IP按主机 IP 地址动态划分,需要配置映射

VLAN 的技术特点:

  • 进出某个 VLAN 端口的帧只在同一 VLAN 内转发,实现流量隔离。
  • 不同物理位置的主机可以属于同一 VLAN。
  • 同一物理交换机上的主机也可以被划入不同 VLAN。
  • VLAN 间通信需要三层路由,就像两个独立局域网之间通信一样。
  • 可以减少广播风暴,提高可管理性和安全性。

跨交换机 VLAN 与 802.1Q ​

当 VLAN 跨越多个交换机时,交换机之间需要 中继端口 (trunk port)。中继链路上传输的帧必须携带 VLAN ID,否则另一台交换机无法知道该帧属于哪个 VLAN。

802.1Q 在以太网帧中插入 VLAN 标签:

字段含义
TPID2 字节标签协议标识符,常见值为 0x8100
TCI标签控制信息,包含 12 bit VLAN ID 和 3 bit 优先级等
CRC插入标签后需要重新计算

普通接入端口通常收发不带标签的帧;中继端口在交换机之间转发带标签的帧。

6.13 MPLS:链路层虚拟化 ​

MPLS (Multiprotocol Label Switching) 的目标是在支持 MPLS 的路由器网络中实现高速、灵活的 IP 转发。它使用固定长度标签,而不是每跳都做最长前缀匹配。

MPLS 头部典型字段包括:

字段长度含义
label20 bit标签值,用于查 MPLS 转发表
Exp3 bit实验/流量类别字段,常用于 QoS
S1 bit标签栈底标志
TTL8 bit生存时间

支持 MPLS 的路由器称为标签交换路由器。它们只根据标签查 MPLS 转发表,把分组转到出接口,并可能替换标签。IP 头部仍然存在,但中间 MPLS 路由器可以不检查 IP 目的地址。

MPLS 的价值不只是查找快,还在于灵活性:

  • 同一个 IP 目的地的流量可以根据源地址或其他字段走不同路径。
  • 可用于流量工程,不必完全受 IP 最短路结果限制。
  • 可预先计算备用路径,在链路故障时快速重路由。

MPLS 信令可通过扩展 OSPF/IS-IS 携带链路带宽、预留带宽等信息,并用 RSVP-TE 等协议在下游路由器上建立标签转发状态。

6.14 数据中心网络 ​

数据中心网络连接数十万到数百万台位置相近、紧密耦合的主机,支撑电子商务、内容分发、搜索、数据挖掘和云服务等应用。

主要挑战:

挑战说明
大规模并发多个应用同时服务大量客户
可靠性服务器、链路、交换机故障必须被冗余和快速恢复吸收
负载均衡避免计算、网络和存储瓶颈
高吞吐与低时延机架内、机架间和跨集群通信都要高效
管理复杂度大规模设备需要自动化管理和控制

典型数据中心网络元素:

元素作用
边界路由器连接数据中心外部网络
一级交换机连接多个二级交换机
二级交换机连接多个 TOR 交换机
TOR 交换机Top-of-Rack,每个机架一台,连接机架内服务器
服务器机架通常包含数十台服务器刀片

数据中心通常有丰富的多路径互联,以提升机架间吞吐并通过冗余提高可靠性。负载均衡器在应用层接收外部请求,把工作分配到数据中心内部服务器,并向客户端隐藏内部结构。

数据中心也是网络协议创新集中的地方:

  • 链路层:RoCE,把 RDMA 运行在融合以太网上。
  • 传输层:ECN、DCTCP、DCQCN 等用于低时延拥塞控制。
  • 路由与管理:SDN 广泛用于组织内部和数据中心间控制。
  • 服务放置:把相关服务和数据尽量放在同一机架或邻近机架,减少跨层级通信。

6.15 一个网页请求的一天 ​

课件最后把前几章协议串联起来:一台学生笔记本接入校园网络,请求 www.google.com。

1. DHCP 获取网络配置 ​

笔记本刚接入网络时,需要获得:

  • 自己的 IP 地址。
  • 第一跳路由器的 IP 地址。
  • DNS 服务器地址。

它通过 DHCP 完成:

text
DHCP message -> UDP -> IP -> Ethernet -> Physical

DHCP 请求被封装在 UDP、IP、以太网中,以太网目的地址为广播地址 FF-FF-FF-FF-FF-FF。运行 DHCP 服务器的路由器收到后,返回 DHCP ACK,包含客户端 IP、默认网关和 DNS 服务器等配置。交换机在这个过程中也会学习 MAC 地址位置。

2. ARP 获取默认网关 MAC ​

客户端要发送 DNS 查询,但 DNS 服务器通常不在本地子网。客户端已经知道默认网关 IP,但还需要默认网关接口的 MAC 地址。

于是客户端发送 ARP 广播查询;路由器返回 ARP 回复。客户端得到第一跳路由器 MAC 后,才能把 DNS 查询封装进以太网帧并发给路由器。

3. DNS 解析域名 ​

客户端生成 DNS 查询:

text
DNS query -> UDP -> IP -> Ethernet

以太网帧在局域网内到达第一跳路由器,随后 IP 数据报通过校园网、ISP 网络和其他路由器到达 DNS 服务器。路由表可能由 RIP、OSPF、IS-IS、BGP 等协议共同建立。DNS 服务器返回 www.google.com 的 IP 地址。

4. TCP 建立连接 ​

为了发送 HTTP 请求,客户端先和 Web 服务器建立 TCP 连接:

  1. 客户端发送 TCP SYN。
  2. 服务器返回 TCP SYNACK。
  3. 客户端发送 ACK,连接建立。

这些 TCP 段都被封装进 IP 数据报,再逐跳封装进不同链路层帧。

5. HTTP 请求与响应 ​

TCP 连接建立后:

  1. 浏览器把 HTTP 请求写入 TCP 套接字。
  2. 包含 HTTP 请求的 IP 数据报被路由到 Web 服务器。
  3. Web 服务器返回 HTTP 响应,包含网页内容。
  4. 响应数据报沿路径返回客户端。
  5. 浏览器最终显示网页。

这个看似简单的网页请求实际串起了应用层、传输层、网络层和链路层:DHCP、ARP、DNS、TCP、HTTP、IP、以太网、交换机学习和路由协议都参与其中。

6.16 本章小结 ​

本章的核心问题是:一个网络层数据报如何在具体链路上被封装、寻址、接入介质、检测错误并交付到下一跳?

需要掌握的主线:

  1. 链路层负责相邻节点之间的数据报传输,数据单位是帧。
  2. 链路层通常在 NIC 或网络芯片中实现,结合硬件、固件和软件。
  3. 错误检测方法包括奇偶校验、互联网校验和和 CRC;CRC 是以太网和 WiFi 中广泛使用的强检测方法。
  4. 多路访问协议解决共享广播信道上的发送协调问题,可分为信道划分、随机接入和轮流访问。
  5. ALOHA 简单但效率低;CSMA 通过载波侦听减少冲突;CSMA/CD 适合有线以太网;CSMA/CA 适合无线网络。
  6. MAC 地址用于本地链路交付,IP 地址用于网络层路由;ARP 把同一局域网内的 IP 地址解析成 MAC 地址。
  7. 跨子网转发时,IP 源/目的地址端到端保持不变,而每一跳的 MAC 源/目的地址都会变化。
  8. 以太网提供无连接、不可靠的帧传输,现代网络主要采用交换式以太网。
  9. 交换机通过自学习建立 MAC 转发表,并在未知目的地址时泛洪。
  10. VLAN 在同一物理基础设施上划分多个逻辑局域网,通过 802.1Q 标签跨交换机传递 VLAN 信息。
  11. MPLS 用固定长度标签实现快速、灵活的转发,可用于流量工程和快速重路由。
  12. 数据中心网络依赖多路径、负载均衡、SDN 和拥塞控制创新支撑大规模服务。
  13. 一个网页请求会串联 DHCP、ARP、DNS、TCP、HTTP、IP、以太网和路由协议,体现整个协议栈的协作。

至此,自顶向下的协议栈主线已经基本贯通:应用产生数据,传输层提供进程间通信,网络层决定跨网络路径,链路层完成每一跳交付。