网络接口层(Network Interface Layer)

网络接口层(Network Interface Layer):对应于OSI模型的物理层(Physical Layer)和数据链路层(Data Link Layer),负责处理硬件细节和物理传输


物理层(Physical)

物理层是 OSI 模型的最底层,负责在物理介质上传输原始的比特流(0 和 1)。它的主要任务是将数据从发送端传输到接收端,而不关心数据的含义或结构。

常见传输介质

在网络物理层,数据通过不同的传输介质进行传播,其中最常用的两种是光纤和网线(双绞线)

==光纤(Fiber Optic)== 利用光脉冲在玻璃或塑料纤维中传输数据。由于光信号的频率远高于电信号,因此光纤能够支持非常高的带宽(几Gbps到几百Tbps)和长距离的数据传输,同时具有较低的信号衰减和干扰。

==网线(Twisted Pair Cable)== 指的是双绞线电缆,它由一对或多对相互缠绕的导线组成,用于减少电磁干扰和串扰。根据屏蔽与否,分为非屏蔽双绞线(UTP)和屏蔽双绞线(STP)。

类型 描述 最大传输速率 最大有效距离
Cat 5 非屏蔽双绞线,支持10/100 Mbps以太网 100 Mbps 100 米
Cat 5e 增强版Cat 5,改进了串扰性能,支持千兆以太网 1 Gbps 100 米
Cat 6 提供更好的屏蔽效果,支持千兆以太网,可支持10Gbps但限于55米内 1 Gbps (通常), 10 Gbps (短距离) 100 米 (1 Gbps), 55 米 (10 Gbps)
Cat 6a 改进版Cat 6,完全支持10Gbps以太网 10 Gbps 100 米
Cat 7 全屏蔽设计,支持高达10Gbps的传输速率 10 Gbps 100 米
Cat 8 最新型号,专为数据中心设计,支持高达40Gbps的传输速率 25 Gbps 至 40 Gbps 30 米

网络通信方式

1. 单工通信(Simplex):通信是单向的,数据只能从发送端传输到接收端,接收端无法向发送端发送数据。

  • 特点: 发送方和接收方的角色固定,不能互换。适用于广播类、控制类应用场景。
  • 例子: 电视广播(TV 传输) 无线电广播(AM/FM 收音机) 电子公告牌(只显示信息,不接受输入)

2. 半双工通信(Half-Duplex)

  • 定义:数据可以在两个方向传输,但同一时间只能有一个方向的数据传输
  • 特点: 设备可以既是发送方又是接收方,但不能同时进行双向通信。 需要控制发送权(如使用 CSMA/CD 协议)。
  • 例子: 对讲机(Walkie-Talkie):一方讲话时,另一方必须等待对方讲话完毕后才能回复。

3. 全双工通信(Full-Duplex):数据可以在两个方向同时传输,发送端和接收端可以同时发送和接收数据。

  • 特点: 需要双向通道,通常采用两个独立的信道(物理或逻辑)。
  • 例子电话通信(两个人可以同时讲话), 现代以太网(Full-Duplex Ethernet), 光纤通信, 5G 移动通信

带通调制

在计算机网络和通信系统中,信号可以分为 数字信号(Digital Signal)模拟信号(Analog Signal)。由于物理信道通常是模拟的,计算机网络需要采用 ==带通调制(Bandpass Modulation)== 来转换信号,以适应不同的传输介质。

信号类型 定义 特点 例子
数字信号 离散的 0 和 1 易于存储、抗干扰能力强、易压缩 计算机数据、光纤传输
模拟信号 连续变化的电压或频率 受噪声影响较大、传输损耗高 声音、无线电波、模拟电视信号

由于计算机网络主要采用数字信号,而大多数物理介质(如无线电、电话线路)是模拟信号,因此必须使用 调制(Modulation)解调(Demodulation) 技术。

1. 调制方式(数字信号 → 模拟信号):在带通调制中,常见的数字信号调制方式包括:

振幅键控(ASK, Amplitude Shift Keying):用不同的振幅表示 0 和 1,例如:

  • 高振幅 → 代表 1
  • 低振幅 → 代表 0
  • 特点: 简单易实现,受噪声影响大,不适用于远距离通信
  • 应用: 红外遥控通信(如电视遥控器),低速无线电通信

频移键控(FSK, Frequency Shift Keying):用不同的频率表示 0 和 1,例如:

  • 低频率 → 代表 0
  • 高频率 → 代表 1
  • 特点: 比 ASK 更抗干扰, 适用于无线电通信
  • 应用:早期调制解调器(Modem),RFID(无线射频识别),蓝牙通信

相移键控(PSK, Phase Shift Keying):通过改变载波的相位来表示 0 和 1,例如:

  • 0° 相位 → 代表 0
  • 180° 相位 → 代表 1
  • 特点:抗干扰能力更强,适用于远距离通信,复杂度高
  • 应用:卫星通信,Wi-Fi(802.11 a/b/g/n/ac),4G/5G 移动通信

正交振幅调制(QAM, Quadrature Amplitude Modulation):结合ASK 和 PSK,同时改变信号的振幅和相位,能在同一时间传输多个比特信息。

  • 特点:具有更高的带宽效率, 广泛应用于高速数据通信
  • 应用光纤通信5G 通信(256-QAM)Cable Modem(有线宽带)
2. 解调(Demodulation): 解调是调制的逆过程,即将模拟信号转换回数字信号
例如:Modem(调制解调器) 负责将计算机的数字信号转换为电话线传输的模拟信号,然后再转换回来。


传输介质信号类型

当前大多数网络数据以数字信号的形式存在,但在某些情况下(如无线通信、光纤通信等),数据需要转换为模拟信号来适应物理传输介质。 如 网线(以太网)直接传输电信号,不需要转换,但Wi-Fi、光纤、4G/5G 都涉及信号转换

以下是几种常见的通信方式及其信号类型:

传输介质 传输信号 说明
光纤(Fiber) 光信号 采用光脉冲(激光/LED)表示 0 和 1,实际仍是数字化的光信号
网线 电信号(数字) 使用电信号直接传输二进制数据,不需要额外的调制解调。
Wi-Fi 无线电波(模拟) 通过射频信号(如 2.4GHz、5GHz)传输数据,使用调制技术(如 QAM)将数字数据映射到无线电波上。
手机网络(4G/5G) 无线电波(模拟) 使用无线电信号传输,数据通过 调制(QAM/OFDM) 进行传输。
蓝牙 无线电波(模拟) 使用 2.4GHz ISM 频段的无线电波传输数据。
卫星通信 无线电波(模拟) 采用微波频段进行数据传输,需要调制技术来承载数字数据。

现代家庭网络通常由 光纤宽带 + 以太网(网线)+ Wi-Fi 组成

同样涉及数字信号和模拟信号的转换

(1)光纤 → 光猫(光电转换 ONU/ONT)解调光信号,将其恢复为计算机可识别的数字信号

(2)网线(以太网)传输: 直接使用 电信号(数字信号) 传输,不涉及调制解调,计算机、交换机、路由器 直接收发二进制数据,不需要额外的信号转换。

(3)Wi-Fi 信号转换:Wi-Fi 使用无线电波(模拟信号)进行数据传输,需要数字信号和模拟信号的转换,Wi-Fi 采用 QAM(正交振幅调制)+ OFDM(正交频分复用) 技术来调制数字数据,使其适用于无线电波传输。


信道复用技术

在计算机网络和通信系统中,信道是指用于传输信号的物理或逻辑路径。信道可以是电缆、光纤、无线电频谱等物理媒介,也可以是通过这些媒介划分出来的逻辑通道。

  • 物理信道:指的是实际用于数据传输的物理介质,如双绞线、同轴电缆、光纤或无线电波等。
  • 逻辑信道:是在物理信道基础上划分出的多个虚拟信道,允许不同的数据流共享同一物理资源。

信道复用技术则是指在同一物理信道上同时传输多个信号的技术,以提高信道利用率和传输效率

  1. 频分多路复用(FDM, Frequency Division Multiplexing)

    • 原理:将整个可用频段划分为若干个独立的子频段,每个子频段分配给不同的用户或数据流使用。这样可以在同一时间在同一物理信道上传输多个信号。
    • 应用场景:传统电话系统和早期的有线电视系统常使用FDM技术来同时传输多路语音或视频信号。
  2. 时分多路复用(TDM, Time Division Multiplexing)

    • 原理:将时间分成若干个周期性的帧,每一帧再细分为多个时隙,每个时隙分配给不同的用户或数据流使用。不同用户的数据轮流占用信道的时间片进行传输。
    • 应用场景:数字通信系统如ISDN(综合业务数字网)、T1/E1线路等广泛采用TDM技术。
  3. 码分多址(CDMA, Code Division Multiple Access)

    • 原理:所有用户共享相同的频率和时间资源,但通过不同的编码序列区分各用户的信号。每个用户的数据被分配一个独特的伪随机编码序列,在接收端通过匹配滤波器恢复原始信号。
    • 应用场景:移动通信系统特别是第三代移动通信技术(3G)中广泛应用,如CDMA2000标准。
  4. 波分多路复用(WDM, Wavelength Division Multiplexing)

    • 原理:特别适用于光纤通信系统,通过在一根光纤中同时传输多个不同波长的光信号来增加容量。密集波分多路复用(DWDM)进一步增加了可传输的波长数量。
    • 应用场景:现代高速骨干网和城域网中普遍使用的高容量光纤通信解决方案。
  5. 空分多址(SDMA, Space Division Multiple Access)

    • 原理:利用天线的方向性和空间隔离特性,使不同的信号能够在同一频率和时间资源下通过不同的方向进行传输而不互相干扰。
    • 应用场景:主要用于无线通信领域,特别是在蜂窝网络基站设计中,通过智能天线阵列实现对不同方向上的用户服务。

无论是光纤、网线还是无线通信,信道复用技术都在持续演进,并根据不同的应用场景优化网络性能


数据链路层(Data Link Layer)位于物理层之上,负责将原始的比特流组织成帧(Frame),并提供节点到节点的可靠数据传输。它的主要任务是确保数据在相邻节点之间的可靠传输。

数据链路层通常分为两个子层:

  1. 逻辑链路控制(LLC)子层: 提供帧的封装与解封装、错误检测、流量控制等功能。如今LLC的功能已被简化或省略。
  2. 介质访问控制(MAC)子层: 负责物理地址管理和介质访问控制,是现代网络架构中的关键部分

封装成帧

封装成帧(Framing):数据链路层通过成帧(Framing) 机制,将上层(网络层)的 IP 数据包 封装成 数据帧(Frame)。数据帧 由 帧头(Header)、数据(Payload) 和 帧尾(Trailer) 组成。

bash
| 帧头(Header) |  数据(Payload: IP数据包)   |  帧尾(Trailer)|
  • 每一个链路层协议都规定了所能传递的帧的数据部分长度上限 ——— 最大传送单元 MTU (Maximum Transfer Unit)

  • 帧的首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的界限: ==帧定界==

在数据链路层,封装成帧的过程可以使用不同的协议来实现,PPP和MAC帧是两种常见的帧格式

PPP 主要用于拨号上网、VPN、ADSL 等特定场景,现代互联网主流使用的是 MAC 帧(以太网帧)

透明传输

透明传输(Transparent Transmission):由于数据可能包含与帧定界符(如 01111110)相同的比特序列,因此需要一种方法保证帧的正确解析,而不会误认为数据本身是帧的边界。

解决方案:

  • 字节填充(Byte Stuffing):在特殊字符前插入转义字符(ESC)。
  • 比特填充(Bit Stuffing):在 5 个连续 1 后面自动插入 0,防止帧边界混淆。

差错检测

差错检测(Error Detection):在数据链路层对数据帧进行错误检测,确保传输过程中数据未被篡改

常见技术:

  • 循环冗余校验(CRC):以太网使用 FCS(Frame Check Sequence) 字段存储 CRC 值,用于检测数据帧是否发生错误
  • 奇偶校验(Parity Check)
  • 校验和(Checksum)

CSMA/CD 协议

CSMA/CD 协议(载波监听多路访问/碰撞检测):CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 是以太网(有线网络)中的冲突检测协议,用于协调多个设备如何共享同一物理介质的机制,它更接近于一种协作机制而非帧格式定义,旨在提高网络效率和可靠性。

CSMA/CD 包括载波监听、多路访问和冲突检测三个关键部分:

  • 载波监听(Carrier Sense):设备发送数据前,先监听信道是否空闲。
  • 多路访问(Multiple Access):多个设备可共享同一信道。
  • 冲突检测(Collision Detection):若两个设备同时发送数据,发生冲突,设备停止发送,等待一段随机时间后重试( ==退避算法 [ Backoff Algorithm ]== )

通过载波监听和冲突检测,它可以最大限度地减少数据包丢失,并提高网络的整体性能。

随着全双工交换技术和更先进的网络硬件的发展,现代以太网(交换式网络)已几乎不再使用 CSMA/CD,因为全双工交换机能直接提供独立的信道,避免冲突。


点对点协议

点对点协议(Point-to-Point Protocol, PPP): 是一种用于点对点通信的 数据链路层协议,它提供了一种标准化的方法来封装和传输多协议数据,并支持身份验证、错误检测等功能。

PPP帧的基本结构如下:

bash
+----------+------------+-----------+-------------+--------------+-----------+
| Flag     | Address    | Control   | Protocol    | Information  | FCS       |
+----------+------------+-----------+-------------+--------------+-----------+
| 01111110 | 11111111   | 00000011  | 0x...       | ...          | CRC value |
+----------+------------+-----------+-------------+--------------+-----------+

下面是PPP帧格式各个字段的长度、典型值及其作用的总结:

字段名称 长度(字节) 典型值/范围 描述
Flag 1 0x7E (01111110) 标识PPP帧的开始和结束
Address 1 0xFF (11111111) 在点对点通信中固定为全1,表示广播地址
Control 1 0x03 (00000011) 默认情况下固定为0x03,表示无编号帧
Protocol 2 根据协议不同而变化 标识封装的数据类型或控制信息类型
Information 可变 最大不超过MRU(最大接收单元,通常为1500字节) 上层实际数据或控制信息
FCS 2 或 4 CRC校验值 用于差错检测
  • Flag: PPP帧的边界标识符,用来区分不同的帧。每个帧前后都有一个标志位。
  • Address: 在点对点连接中没有实际用途,通常设置为全1,以保持兼容性。
  • Control: 通常固定为0x03,用于表示无编号帧。如果需要进行序列号管理等则可能使用其他值
  • Protocol: 指示PPP帧中封装的数据类型。例如,IP数据包、链路控制协议或网络控制协议等
    • 0x0021: IP数据报文
    • 0xC021: LCP数据,链路控制协议
    • 0x8021: NCP数据,网络控制协议
  • Information: 待传输的实际数据或者控制信息,其长度取决于所协商的最大接收单元(MRU)
  • FCS: 帧校验序列,用于检测传输过程中的错误,一般采用CRC算法计算得出

PPP协议是早期互联网接入技术的重要组成部分。主要用于 拨号连接、ADSL、VPN 等。


MAC 地址

MAC 地址(Media Access Control Address):是设备在局域网(LAN)中的唯一标识,由 48 位(6 字节) 的十六进制数表示,前 24 位(厂商标识 OUI) 和 后 24 位(设备标识 NIC) 组成

如何查询电脑的MAC地址:

  • Windows 命令:ipconfig /all
  • Linux 命令: ifconfig ether后面的值

如何根据MAC地址查询厂商信息:


MAC地址的 第一个字节 的最低位(即最右边的一位)可以用来区分单播地址和多播地址。这个位被称为“I/G”位,代表“Individual/Group”。

此外,还有一个特殊情况是广播地址,其所有位都被设置为1(即FF:FF:FF:FF:FF:FF),它可以被视为一种特殊的多播地址,因为它是针对局域网内所有设备的。


MAC 帧

MAC 帧(Media Access Control Frame)是数据链路层中用于在物理介质上传输数据的基本单位

MAC 帧定义了数据如何在网络中从一个设备传输到另一个设备。使用 Wireshark 或其他类似的网络协议分析器查看捕获的数据包时,看到的MAC帧将直接以目的MAC地址开头,不会包含 前导码(Preamble)帧开始定界符(Start Frame Delimiter, SFD)

  1. 前导码(Preamble): 7字节, 由交替的10组成,主要用于同步发送端和接收端的时钟频率,使得双方能够在正确的时刻采样信号

  2. 帧开始定界符(Start Frame Delimiter, SFD): 1字节, 值为 10101011,标志着帧的实际开始,与前导码一起帮助接收方识别帧的起始位置

  3. 目的MAC地址(Destination MAC Address): 6字节, 指明该帧的目标接收设备的MAC地址。根据目的 MAC 地址的不同,MAC 帧可以分为以下类型:

    • 单播帧(Unicast Frame): 目的 MAC 地址指向单个设备。示例:00:1A:2B:3C:4D:5E
    • 多播帧(Multicast Frame):目的 MAC 地址指向一组设备。示例:01:00:5E:00:00:01
    • 广播帧(Broadcast Frame): 地址为全 1,指向所有设备。示例:FF:FF:FF:FF:FF:FF
  4. 源MAC地址(Source MAC Address): 6字节,标识发送该帧的设备的MAC地址。

  5. 类型/长度(Type/Length): 2字节, 在不同的以太网版本中有不同用途:

    • 如果值小于 1500,表示数据字段的长度(以字节为单位)
    • 如果值大于 1500,表示上层协议的类型(如 0x0800 表示 IPv4,0x86DD 表示 IPv6)
  6. 数据和填充(Data & Padding): 46 到 1500 字节,承载上层协议(如 IP 数据包)的数据

    • 最小长度: 46 字节(如果数据不足 46 字节,需要填充)
    • 最大长度: 1500 字节(以太网的最大传输单元,MTU)
  7. 帧校验序列(Frame Check Sequence, FCS): 4字节,使用CRC(循环冗余校验)算法生成,用于差错检测,确保帧在传输过程中未被损坏

最小帧长:为了确保冲突检测的有效性,以太网帧有一个最小长度的要求,通常为64字节(包括目标地址、源地址、类型/长度和FCS等头部信息)。如果数据部分少于46字节,则需要进行填充。


交换机

交换机(Switch): 是数据链路层设备,用于在局域网(LAN)中转发数据帧。且为全双工通信(不像集线器那样需要 CSMA/CD)

交换机内部维护一个 MAC 地址表:CAM(Content Addressable Memory)也称为转发表,用于记录每个设备的 MAC 地址与其连接的交换机端口的映射关系。MAC 地址表的结构如下:

MAC地址 端口号 老化时间(秒)
AA:BB:CC:DD:EE:01 1 300
AA:BB:CC:DD:EE:02 2 300
AA:BB:CC:DD:EE:03 3 300

交换机的主要功能是根据数据帧的目的 MAC 地址,将帧从正确的端口转发出去。为了实现这一功能,交换机需要:

  1. 自学习:动态学习网络中设备的 MAC 地址和端口的映射关系。
  2. 转发帧:根据学习到的 MAC 地址表,将帧转发到正确的端口。

交换机根据数据帧的 目的 MAC 地址 和 MAC 地址表,决定如何转发帧。具体规则如下:

环路问题: 在复杂的网络拓扑中,交换机之间可能会形成环路,导致以下问题:

  • 广播风暴:广播帧在环路中无限循环,占用大量带宽。
  • MAC 地址表混乱:同一 MAC 地址可能映射到多个端口。

虚拟局域网

虚拟局域网(VLAN, Virtual LAN):VLAN 允许在同一个物理交换机上划分多个逻辑局域网,不同 VLAN 之间的设备无法直接通信。

  • 提升安全性(不同 VLAN 之间的数据隔离)
  • 减少广播域(避免广播风暴)
  • 提高管理灵活性(通过 802.1Q VLAN Tagging 进行 VLAN 标记)

局域网(LAN):局域网用于**小范围(如家庭、公司)**的计算机网络。

以太网(Ethernet):以太网是最广泛使用的局域网技术,使用 MAC 地址 进行设备识别。采用 以太网帧格式 和 交换机(Switch) 进行数据传输。


ARP及RARP协议

ARP(Address Resolution Protocol)用于根据目标设备的IP地址找到其对应的MAC地址。这对于在同一局域网内的通信是必要的,因为以太网帧需要目的MAC地址来正确地发送数据包。

当一台主机想要与同一局域网内的另一台主机通信时,它首先需要知道目标主机的MAC地址。如果源主机不知道目标主机的MAC地址,则会执行以下步骤:

  1. 广播ARP请求:源主机发送一个ARP请求消息到本地网络上的所有设备。这个请求包含了源主机的IP地址和MAC地址,以及目标主机的IP地址。由于这是一个广播消息,所以局域网内的所有设备都能接收到。

  2. 接收并处理ARP请求:局域网内的每台设备都会检查ARP请求中的目标IP地址是否匹配自己的IP地址。如果匹配,该设备就会回应一个ARP响应消息给源主机,其中包含了自己的MAC地址。

  3. 更新ARP缓存:一旦源主机收到了正确的ARP响应,它就会将目标主机的IP地址和对应的MAC地址存储在本地的ARP缓存表中,以便将来通信时直接使用而无需再次发起ARP请求。

特殊情况

  • 代理ARP:某些情况下,路由器可以代表其他主机回应ARP请求,这种方法被称为代理ARP。这使得位于不同子网但配置错误认为它们在同一子网的主机仍能相互通信。

  • 免费ARP(Gratuitous ARP):有时设备会发送一个ARP请求,其中的目标IP地址实际上是自身IP地址。这种行为可用于检测IP地址冲突或更新网络中其他设备的ARP缓存。

ARP协议本身并不具备认证机制,这意味着任何恶意用户都可以伪造ARP回复来误导网络中的其他设备,导致所谓的ARP欺骗攻击。为了防范此类威胁,一些网络采用了诸如静态ARP表、动态ARP检测等安全措施。


RARP(Reverse Address Resolution Protocol):RARP的功能与ARP相反,它允许物理地址已知但IP地址未知的设备请求并接收自己的IP地址。不过,由于其局限性,现在大多被更高级别的协议如BOOTP或DHCP所取代。