前言
这一章的笔记涉及OSI网络层结构中的第1、2层的基本技术与功能。
对于第一第二层,我们通过之前的学习知道它们之间的连接如图所示:

第一层之间通过媒介进行直接相连,而第二层往上则是逻辑上的连接。接下来开始介绍第一层和第二层的一些常见技术。
物理层
物理层负责通过物理介质移动数据,涉及在介质上传输的信号和比特流。根据网络传输过程,物理层从数据链路层接收完整的 帧 (Frame),将二进制编码为一系列信号,并通过本地物理介质传输这些信号。
物理层还从介质中检索这些单独的信号,将它们恢复为它们的二进制表示,并将bits作为完整的帧传递到数据链路层。
常见的物理层技术有:
- Fast Ethernet:IEEE 802.3u
- Gigabit Ethernet:IEEE 802.3z
- WIFI: IEEE 802.11
- 串行数据通信接口: EIA/TIA-232
基带信号传输与宽带信号传输
基带信号传输 (Baseband signaling)是指数据信号直接通过介质, 占用整条网线的信号传输。
宽带信号传输 (Broadband signaling)指模拟信号(载波信号)被数据信号调制(modulated)后发送, 一条网线可以传输多种不同的信号 。
宽带信号传输实现多路复用,信道的容量大大增加;而宽带传输的距离比基带远,传输的速率低。
编码 (Encoding)是一种将逻辑二进制数据转换为物理信号的方法。有两种编码方法:
- Transistor-Transistor Logic ( TTL ) (Level driven):晶体管逻辑,具有比较明显的高低信号,变化频率低,效率高。
- Manchester (Edge driven): 曼切斯特编码,是二进制边缘触发,变化频率高,效率低。
如图:
(经典TTL,0表示低信号,1表示高信号。缺点: 无法判断无信号和低信号 )
(其他TTL,缺点: 多个同bit时无法知道个数 )
(Manchester,一个信号变化两次,边缘触发,缺点: 变化频率高 )
(Multi-Level Threshold-3 Manchester,当为1时转变为下一循环位置,为0时不变。缺点: 比较复杂 )
在日常使用中, Fast Ethernet (100-Mbps Ethernet)采用 4B/5B 技术进行编码,发送5位来表示4位。同时发送时,使用 MLT3 (Multi-Level Threshold-3)进行编码。
而现在升级的 Gigabit Ethernet (1000-Mbps Ethernet)采用 8B/10B 进行编码。
调制
调制 (Modulation)是一种将 一个或多个周期性的载波 混入想发送之信号的技术。
基本载波可以通过以下三个方面进行调制:
- 调幅 (AM,Amplitude Modulation):调整振幅。
- 调频 (FM,Frequency Modulation ):调整频率。
- 调相 (PM,Phase Modulation):调整相位。

同步传输与异步传输
- 异步传输 (Asynchronous): 在一条网线中,异步发送data和timing infomation。异步传输传输效率低,速度慢。e.g. 键盘敲击/Ethernet。
- 同步传输 (Synchronous):在不同的网线中,同时发送data和timing infomation。e.g. Manchester 编码(不需要第二条网线)/Fast Ethernet/Gigabit Ethernet。

Layer 1 domain
我们知道物理层通过物理介质相连,从本质上来看,物理层是在做一个 转发决策 (Forwarding Descion)——将二进制信号(binary signal) 广播 (boardcast)到其他相连的物理设备。
我们把两个设备第一层相连,而形成的物理介质区域称为 Layer 1 Domain 。如下图中,4个存在第一层的设备相连,形成三个连接介质。图中椭圆位置即为Layer 1 Domain。

图中一共有三个Layer 1 Domain。 第一层的主要功能就是将二进制信号从一个Layer 1 Domain发送到其它Layer 1 Domain。
数据链路层
数据链路层通过物理链路提供可靠的数据传输,它涉及介质访问、物理寻址、网络拓扑、错误通知、帧的有序传递和流量控制。
- 第二层使用 介质访问控制 (Media Access Control, MAC)去选择哪个主机将传输二进制数据。
- 第二层使用 地址空间 (flat addressing)去标识一个主机。
- 第二层使用 帧 (Frame)来组织或分组比特信息。
- 第二层通过 逻辑链路控制 (Logical Link Control, LLC)与上层沟通。
- 第二层功能由 网络适配器 (网卡,NIC)执行。
冲突域
与Layer 1 Domain一样,在第二层存在 Layer 2 Domain ,我们把它称为 冲突域 (Collision Domain)。Layer 2 Domain是指在该网段中传输的信号(bits/frame)可能发生冲突。
所谓冲突即在这个范围内,存在不同的信号相互影响。本质上,第二层也是在做一个 转发决策 (Forwarding Descion)——处理传输上冲突的问题。
如图,下面所有的设备组成了一个冲突域:

其中还包含了5个Layer 1 Domain,1个Layer 2 Domain。因为设备间有5条线连接,这个域中L2的传输存在冲突(bits/frame)。
而如下图的这个例子中有两个冲突域,下面两个设备均具有第一第二层,它们之间的连接传输不会影响到其他设备,在Layer 2逻辑上没有冲突。

其中包含了5个Layer 1 Domain,2个Layer 2 Domain。
总结: 第二层在网络沟通上出现决策选择时存在冲突域,不存在决策选择的设备间自成Layer 2 Domain。
上图中,下方左侧的设备与下方右侧的设备之间的沟通不存在决策选择,而上面的冲突域中的L2传输出现了决策选择。
所以说,可以认为 Layer 2 domain是指能够与其他第二层设备进行逻辑连接的区域 。
子层结构
数据链路层可以分为两个子层:
- 逻辑链路控制 (Logical Link Control, LLC),定义了向网络层协议提供服务的软件过程。
- 介质访问控制 (Media Access Control, MAC),定义了由硬件执行的介质访问过程。

MAC
介质访问控制 (MAC)子层定义了访问不同介质的规则,MAC协议决定了在一个公共介质环境中的 哪个主机可以传输数据 。
它有两类介质访问控制方法:
- Deterministic (taking turns) 通过将token顺序地传递给每个主机来控制网络访问。 当主机接收到token时,该主机可以在网络上发送数据。 如果主机没有要发送的数据,它会将token传递给下一个主机,然后重复该过程。简单来说就是: 指定host,存在顺序。
- Non-deterministic (first come, first served) 每个主机都可以将其数据发送到网络介质上的所有其他主机。 不指定host,没有顺序,先来先发 。
MAC主要由 硬件 实现,通常在主机的网络适配器中。
LLC
逻辑链路控制(LLC)子层在IEEE 802.2规范中定义,允许部分数据链路层独立于现有技术运行,可以简单看成是连接网络层的附加信息。
LLC由 软件 实现(通常在网卡的驱动程序中),其实现独立于硬件。
数据链路层头部
根据之前学到的分层信息,我们可以知道L2的PDU结构如图:

其中,MAC+LLC称为数据链路层的头部,LLC可选。
后记
在这一章中,学习了OSI网络层结构中的第一层和第二层的基本技术和功能。我们了解了物理层如何通过物理介质移动数据,以及如何使用编码、调制、同步和异步传输等方法来实现信号的转换和传输。我们还了解了数据链路层如何通过MAC和LLC子层来提供可靠的数据传输,以及如何使用地址空间、帧、冲突域等概念来组织和控制网络访问。