文章目录
- 1 局域网的概念
- 1.1 局域网的拓扑结构
- 1.2 局域网的传输介质
- 1.3 局域网的介质访问控制方式(MAC)
- 1.4 局域网的分类
- 2 以太网(Ethernet,IEEE 802.3 标准)
- 2.1 以太网的传输介质
- 2.2 以太网的网卡
- 2.3 以太网的 MAC 地址
- 2.3.1 MAC 地址的概念
- 2.3.2 MAC 地址的格式
- 2.3.3 接收帧时检查帧的目的 MAC 地址
- 2.4 以太网的 MAC 帧(802.3 帧)
- 2.5 高速以太网
- 3 无线局域网(WLAN,IEEE 802.11 标准)
- 3.1 无线局域网的分类
- 3.1.1 有固定基础设施的无线局域网
- 3.1.2 无固定基础设施的无线局域网——自组织网络
- 3.2 无线局域网的 MAC 帧(802.11 帧)
- 3.2.1 无线局域网的 MAC 数据帧格式
- 3.2.2 同一个 BSS 中的站点通信
- 3.2.3 不同 BSS 之间的站点通信
- 4 虚拟局域网(VLAN,IEEE 802.3ac 标准)
- 4.1 插入 VLAN 标签的 802.1Q 帧
- 4.2 利用以太网交换机构成 VLAN
局域网英文:Local Area Network,缩写:LAN。局域网有很多种类型,一般重点介绍其中的以太网、无线局域网和虚拟局域网。
1 局域网的概念
1.1 局域网的拓扑结构
拓扑结构 | 结构示意图 | 特点 | 典型标准 |
星型拓扑 | 传输速度快,建网容易、便于控制管理;可靠性差,存在单点故障问题 | IEEE 802.3(Ethernet,以太网) | |
总线型拓扑 | 可靠性高,网络节点响应快,安装成本低,出现节点故障时影响较小,但故障诊断较难 | IEEE 802.3(Ethernet,以太网) | |
环形拓扑 | 结构简单,线路节省;可靠性差,存在单点故障问题,不便于扩展,系统响应慢 | IEEE 802.5(令牌环网)、IEEE 802.8(FDDI 网) | |
树型拓扑 | 易于扩展,故障易隔离,可靠性高;电缆成本高,存在单点故障问题 |
1.2 局域网的传输介质
- 有线局域网常用介质:双绞线、同轴电缆、光纤。
- 无线局域网常用介质:电磁波。
1.3 局域网的介质访问控制方式(MAC)
介质访问控制(MAC):采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。
MAC 方式 | 描述 |
CSMA/CD | 常用于总线型局域网,也用于树形网络 |
令牌总线 | 常用于总线型局域网,也用于树形网络 |
令牌环 | 用于环型局域网 |
1.4 局域网的分类
- 以太网(Ethernet,IEEE802.3):应用最广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)、吉比特以太网(1Gbps)和 10 吉比特以太网(10Gbps)。它们都符合 IEEE 802.3 标准,逻辑拓扑为总线型,物理拓扑为星型,MAC 方式是 CSMA/CD 协议。
- 令牌环网:采用 IEEE 802.5 标准,逻辑拓扑为环型,物理拓扑为星型。
- FDDI 网(光纤分布式数据接口网络):采用 IEEE 802.8 标准,逻辑拓扑为环型,物理拓扑为双环型。
- ATM 网(异步传输模式):新的单元交换技术,使用 53 字节固定长度的单元进行交换。
- 无线局域网(WLAN):采用 IEEE 802.11 标准。
2 以太网(Ethernet,IEEE 802.3 标准)
以太网的特点如下:
项目 | 描述 |
逻辑拓扑结构 | 总线型拓扑 |
物理拓扑结构 | 星型拓扑 |
标准 | DIX Ethernet II 标准、IEEE 802.3 标准(两者只有很小的区别) |
编码方式 | 曼彻斯特编码 |
介质访问控制(MAC)方式 | CSMA/CD 协议 |
MAC 帧 | 802.3 帧 |
无连接 | 发送方和接收方无“握手过程” |
不可靠 | 不对发送方的数据帧编号,接收方不向发送方确认(尽最大努力交付数据);差错帧直接丢弃(无差错接收),差错纠正由上层负责 |
2.1 以太网的传输介质
参数/以太网标准 | 粗缆以太网(10BASE5) | 细缆以太网(10BASE2) | 双绞线以太网(10BASE-T) | 光纤以太网(10BASE-FL) |
传输媒体 | 基带同轴电缆(粗缆) | 基带同轴电缆(细缆) | 非屏蔽双绞线 | 光纤对(850nm) |
编码 | 曼彻斯特编码 | 曼彻斯特编码 | 曼彻斯特编码 | 曼彻斯特编码 |
物理拓扑结构 | 总线型 | 总线型 | 星型 | 点对点 |
最大段长 | 500m | 185m | 100m | 2000m |
最多结点数目 | 100 | 30 | 2 | 2 |
【注】10 代表传输速度为 10Mbps,BASE 指的是传输信号为基带信号,5 指的是单段大致的传输距离,T 代表双绞线,F 代表光纤,L 代表接口。
2.2 以太网的网卡
项目 | 描述 |
网卡的概念 | 要将计算机连接到以太网,需要使用相应的网络适配器,网络适配器一般简称为网卡(NIC) |
网卡与计算机内部 CPU 之间的通信 | 通过计算机主板上的 I/O 总线以并行方式进行 |
网卡与外部以太网(局域网)之间的通信 | 通过传输媒体(同轴电缆、双绞线电缆、光纤)以串行方式进行的 |
网卡的缓存寄存器 | 由于网络的传输速率和计算机内部总线上的传输速率并不相同,因此在网卡的核心芯片中都会包含用于缓存数据的存储器 |
网卡驱动程序 | 负责驱动网卡发送和接收帧 |
2.3 以太网的 MAC 地址
2.3.1 MAC 地址的概念
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。在每个主机发送的帧的首部中,都携带有发送主机(源主机)和接收主机(目的主机)的数据链路层地址。由于这类地址是用于媒体接入控制(Medium Access Control,MAC)的,因此被称为 MAC 地址。
MAC 地址一般被固化在网卡的 EEPROM 中,因此 MAC 地址也被称为硬件地址,有时也被称为物理地址。每块网卡都有一个全球唯一的 MAC 地址。但严格来说,MAC 地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
【注 1】数据链路层设备都使用各个网卡的 MAC 地址。网卡控制着主机对介质的访问,因此网卡也工作在物理层。
【注 2】虽然网卡也工作在物理层,但物理地址(MAC 地址)属于数据链路层,不属于物理层!
【注 3】一般情况下,普通用户计算机中往往会包含两块网卡:一块是用于接入有线局域网的以太网卡,另一块是用于接入无线局域网的 Wi-Fi 网卡。交换机和路由器往往具有更多的网络接口,所以会拥有更多的 MAC 地址。
2.3.2 MAC 地址的格式
- IEEE 802.11 标准的 MAC 地址格式:
组织唯一标识符 OUI(由 IEEE 的注册管理机构 RA 分配) | 网络接口标识符(由获得 OUI 的厂商自行随意分配) |
1~3B(从左到右:第 1 字节 ~ 第 3 字节,每个字节均为 b7~b0) | 4~6B(从左到右:第 4 字节 ~ 第 6 字节,每个字节均为 b7~b0) |
- MAC 地址的表示方法:使用十六进制
- 标准表示法:
XX-XX-XX-XX-XX-XX
(如00-0C-CF-93-8C-92
) - 其他表示法:
XX:XX:XX:XX:XX:XX
(如00:0C:CF:93:8C:92
) - 其他表示法:
XXXX.XXXX.XXXX
(如000C.CF93.8C92
)
- MAC 地址的第 1 字节(b7~b0)决定了 MAC 地址类型:
b1(Global/Local,G/L) | b0(Individual/Group,I/P) | MAC 地址类型 |
0 | 0 | 全球、单播(由厂商生产网络设备时固化在设备中) |
0 | 1 | 全球、多播(交换机、路由器等标准网络设备所支持的多播地址) |
1 | 0 | 本地、单播(由网络管理员分配,优先级高于网络接口的全球单播地址) |
1 | 1 | 本地、多播(可由用户对网卡编程实现,以表明其属于哪些多播组) |
【注 1】G/L 位的作用:IEEE 还考虑到可能有人并不愿意向 IEEE 的注册管理机构 RA 购买 OUI。为此,IEEE 把地址字段第 1 字节的最低第二位规定为 G/L 位,表示 Global/Local。厂商向 IEEE 购买的 OUI 都属于全球管理,可保证在全球没有相同的地址。当地址字段的 G/L 位为 1 时本地管理,这时用户可任意分配网络上的地址。
【注 2】当 MAC 地址为“全 1”时,就是广播地址 FF-FF-FF-FF-FF-FF。
- MAC 地址发送顺序:从第 1 字节到第 6 字节、字节内从低位到高位(b0 到 b7)。
2.3.3 接收帧时检查帧的目的 MAC 地址
网卡从网络上每收到一个帧,就检查帧首部中的目的 MAC 地址。以下列出不同目的 MAC 地址时的操作:
目的 MAC 地址 | 接收?丢弃? |
广播地址(FF-FF-FF-FF-FF-FF) | 接收 |
网卡上固化的全球单播 MAC 地址(即自身地址) | 接收 |
网卡支持的多播地址 | 接收 |
均不符合以上情况 | 丢弃 |
2.4 以太网的 MAC 帧(802.3 帧)
以太网 MAC 帧有两种格式:Ethernet II(以太网 V2)格式和 IEEE 802.3 格式,最常用的是 Ethernet II(以太网 V2)格式。由于两者区别很小,有时也称为 802.3 帧。
Ethernet II(以太网 V2)格式如下:
前导码 | 目的地址 | 源地址 | 类型 | 数据 | 校验码(FCS) |
8B | 6B | 6B | 2B | 46~1500B | 4B |
- 前导码:可分为两个字段:
- 前 7B:前同步码,用来实现 MAC 帧的比特同步。
- 后 1B:帧开始定界符,表示后面的信息是 MAC 帧。
- 地址:即 MAC 地址。
- 类型:当字段值小于等于 1500(0x05DC)时, 帧使用的是 IEEE 802.3 格式;当字段值大于等于 1536(0x0600)时,帧使用的是 Ethernet II 格式。
- 数据:包含高层的协议消息。由于 CSMA/CD 算法限制,MAC 帧必须满足最小长度 64B,即数据必须满足最小长度 46B。
- 校验码:校验范围从目的地址段到数据段的末尾,采用 CRC 校验。
【注】由 CSMA/CD 算法得知,MAC 帧必须满足最小长度 64B,因为 MAC 帧(不算前导码)的首部和尾部一共 6+6+2+4=18B,所以数据最小长度为 64-18=46B,而最大长度被人为规定为 1500B。
2.5 高速以太网
高速以太网:速度大于 100Mbps 的以太网,均使用 IEEE 802.3 标准。
高速以太网 | 传输速度 | 工作方式 | 传输媒体 | 拓扑结构 | MAC 协议 |
100BASE-T | 100Mbps | 全双工、半双工 | 双绞线 | 星型 | 半双工下使用 CSMA/CD,全双工不需要使用 |
吉比特以太网 | 1Gbps | 全双工、半双工 | 双绞线或光纤 | 半双工下使用 CSMA/CD,全双工不需要使用 | |
10 吉比特以太网 | 10Gbps | 全双工 | 光纤 | 全双工不需要使用(因为全双工不会发生冲突) |
3 无线局域网(WLAN,IEEE 802.11 标准)
无线局域网(Wireless Local Area Network,WLAN)是指通过无线技术构建的无线局域网络,广义上是指以无线电波、激光、红外线等无线信号来代替有线局域网中的部分或全部传输介质所构成的网络。
3.1 无线局域网的分类
无线局域网可分为两大类:有固定基础设施的无线局域网、无固定基础设施的无线局域网。所谓“固定基础设施”,是指预先建立的、能覆盖一定地理范围的固定基站。
3.1.1 有固定基础设施的无线局域网
有基础设施的无线局域网又称为 WiFi,其特点如下:
项目 | 描述 |
拓扑结构 | 星型拓扑 |
标准 | IEEE 802.11 标准 |
介质访问控制(MAC)方式 | CSMA/CA 协议 |
MAC 帧 | 802.11 帧 |
中心 | 链路层设备接入点 AP(Access Point),又称为无线接入点 WAP(Wireless Access Point) |
最小构件 | 基本服务集 BSS(Basic Service Set),BSS 基站为 AP |
【注】这种无线局域网不能使用 CSMA/CD 协议,只能使用改进的 CSMA/CA 协议。原因有两点:
- 接收信号的强度往往远小于发送信号的强度,而且无线介质上信号强度的动态变化范围很大,硬件上很难实现碰撞检测。
- 隐蔽站问题:对方发送的信号检测不到,但能产生碰撞。
(1)基本服务集
安装接入点 AP 时,必须为 AP 分配一个不超过 32 字节的服务集标识符(Service Set IDentifier,SSID)和一个通信信道。SSID 就是指使用该 AP 的无线局域网的名字。接入点 AP 在出厂时就已经有了唯一的 MAC 地址,叫做基本服务集标识符 BSSID。一个基本服务集 BSS 所覆盖的地理范围叫做一个基本服务区 BSA(Basic Service Area)。
(2)扩展服务集
一个 BSS 可以是孤立的,也可以通过 AP 连接到一个分配系统 DS(Distribution System),然后再连接到另一个 BSS,就构成了一个扩展服务集(Extended Service Set,ESS)。ESS 也有标识符,它是一个不超过 32 字节的扩展服务集标识符(Extended Service Set IDentifier,ESSID)
ESS 还可以通过一种称为门户(Portal)的设备为无线用户提供有线连接的以太网(非 802.11 无线局域网)的接入,其作用相当于网桥。
(3)例子:移动站 A 与移动站 B 通信
如上图所示,若移动站 A 要与另一个 BSS 的移动站 B 通信,则需要经过接入点 AP1 和 AP2,它们的通信是有线通信。
若移动站 A 漫游到图中红色区域,就能够同时收到两个接入点 AP 的信号。这时移动站 A 可以选择和信号较强的一个 AP 联系。
当移动站 A 漫游到 A’ 时,就只能和 AP2 联系了。移动站只要能够和其中一个 AP 联系上,就可以一直保持与移动站 B 的通信。
3.1.2 无固定基础设施的无线局域网——自组织网络
无固定基础设施的无线局域网又称为自组网络(ad hoc network,ad hoc 有“临时”和含义)。这种网络没有基本服务集的 AP,而是由一些平等状态的移动站相互通信而组成的临时网络。各结点地位平等,中间结点都为转发结点,因此都具有路由器功能。
3.2 无线局域网的 MAC 帧(802.11 帧)
无线局域网的 MAC 帧(802.11 帧)共有三种类型:数据帧、控制帧、管理帧。
3.2.1 无线局域网的 MAC 数据帧格式
无线局域网的 MAC 数据帧的格式如下:
帧控制 | 持续期 | 地址 1(接收地址) | 地址 2(发送地址) | 地址 3(取决于帧控制) | 序号控制 | 地址 4(取决于帧控制) | 帧主体 | 校验码(FCS) |
2B | 2B | 6B | 6B | 6B | 2B | 6B | 0~2312B | 4B |
其中帧控制的格式如下:
协议版本 | 类型 | 子类型 | 去往 AP | 来自 AP | 更多分片 | 重试 | 功率管理 | 更多数据 | WEP | 顺序 |
2b | 2b | 4b | 1b | 1b | 1b | 1b | 1b | 1b | 1b | 1b |
- 地址 1:接收地址。
- 地址 2:发送地址。
- 地址 3 和地址 4:取决于数据帧中的“来自 AP”和“去往 AP”这两个字段的数值。
以下为数据帧的地址字段最常用的两种情况:
去往 AP | 来自 AP | 地址 1 | 地址 2 | 地址 3 | 地址 4 |
0 | 1 | 接收地址 = 目的地址 | 发送地址 = AP 地址 | 源地址 | 用于自组网络 |
1 | 0 | 接收地址 = AP 地址 | 发送地址 = 源地址 | 目的地址 | 用于自组网络 |
【注】区别源地址、发送地址、接收地址、目的地址:
- 源地址:发送数据帧的第一个节点地址。
- 发送地址:实际发送数据帧的节点地址。
- 接收地址:直接接收数据帧的节点地址。
- 目的地址:接收数据帧的最后一个节点地址。
例如,数据帧的传送路径为 A → B → C → D → E,对于站点 C 来说:
- 源地址:为站点 A 的地址,是不会变的,因为在该路径中第一个发出数据帧的是 A。
- 发送地址:为站点 B 的地址,谁向我发数据,谁就是发送方,因而不同站点对应的发送地址是不同的。
- 接收地址:为站点 D 的地址,我发数据给谁,谁就是接收方,因而不同站点对应的接收地址是不同的。
- 目的地址:为站点 E 的地址,是不会变的,因为在该路径中最终收到数据帧的是 E。
而对于站点 D 来说:
- 源地址:为站点 A 的地址。
- 发送地址:为站点 C 的地址。
- 接收地址:为站点 E 的地址。
- 目的地址:为站点 E 的地址。
3.2.2 同一个 BSS 中的站点通信
假设:在一个 BSS 中,站点 A 往站点 B 发送数据帧。
- 在站点 A 发往接入点 AP 的 802.11 数据帧中:
去往 AP | 来自 AP | 地址 1 | 地址 2 | 地址 3 |
1 | 0 | 接收地址 = AP 地址 BSSID | 发送地址 = 站点 A 地址 MACA | 目的地址 = 站点 B 地址 MACB |
- 接入点 AP 收到数据帧后,转发给站点 B,此时 802.11 数据帧变为:
去往 AP | 来自 AP | 地址 1 | 地址 2 | 地址 3 |
0 | 1 | 接收地址 = 站点 B 地址 MACB | 发送地址 = AP 地址 BSSID | 源地址 = 站点 A 地址 MACA |
3.2.3 不同 BSS 之间的站点通信
假设:在不同 BSS 中,站点 A 往站点 B 发送数据帧。
【注】路由器是网络层设备,它看不见链路层的接入点 AP,只认识站点 A 的 IP 地址,而 AP 是链路层设备,它只认识 MAC 地址,并不认识 IP 地址。
- 首先站点 A 使用 ARP 协议获取默认路由器 R 接口 1 地址 MACR1。在站点 A 发往接入点 AP1 的 802.11 数据帧中:
去往 AP | 来自 AP | 地址 1 | 地址 2 | 地址 3 |
1 | 0 | 接收地址 = AP1 地址 BSSID1 | 发送地址 = 站点 A 地址 MACA | 目的地址 = 路由器 R 接口 1 地址 MACR1 |
- 接入点 AP 收到数据帧后,就转换成 802.3 数据帧(只有两个地址,目的地址和源地址):
- 目的地址 = 路由器 R 接口 1 地址 MACR1。
- 源地址 = 站点 A 地址 MACA。
- 路由器 R 收到 802.3 帧后,剥去首部和尾部,交付给网络层。网络层根据 IP 数据报首部中的目的地址 IPB 查找转发表,得知应从接口 2 转发给地址为 IPB 的设备。再使用 ARP 协议,获得此设备的硬件地址为 MACB,此时 802.3 数据帧中:
- 目的地址 = 站点 B 地址 MACB。
- 源地址 = 路由器 R 接口 2 地址 MACR2。
- 接入点 AP2 收到 802.3 数据帧后,转换成 802.11 数据帧,转发给站点 B,此时 802.11 数据帧变为:
去往 AP | 来自 AP | 地址 1 | 地址 2 | 地址 3 |
0 | 1 | 接收地址 = 站点 B 地址 MACB | 发送地址 = AP2 地址 BSSID2 | 源地址 = 路由器 R 接口 2 地址 MACR2 |
4 虚拟局域网(VLAN,IEEE 802.3ac 标准)
当一个以太网包含的计算机太多时,可能会出现以下问题:
- 以太网中出现大量广播帧,特别是 ARP 协议和 DHCP 协议,这必然会消耗大量的网络资源。
- 一个单位的以太网往往为好几个下属部门共享,但有些部门的信息需要保密,这对信息安全不利。
如果把一个大的局域网分割成几个小的局域网,那么这不但使局域网的广播域缩小,而且也提高了局域网的安全性。通过虚拟局域网(Virtual LAN,VLAN),可以把一个大的局域网分割成一些小的与地理位置无关的逻辑上的 VLAN,每个 VLAN 是一个较小的广播域(子网)。
4.1 插入 VLAN 标签的 802.1Q 帧
在标准以太网帧(802.3 帧)中插入一个 4 字节的 VLAN 标签,就变成了 802.1Q 帧。请注意,VLAN 只是局域网给用户提供的一种服务,并不是一种新型局域网。
- 802.1Q 帧的格式如下:
前导码 | 目的地址 | 源地址 | VLAN 标签 | 类型 | 数据 | 校验码(FCS) |
8B | 6B | 6B | 4B | 2B | 46~1500B | 4B |
- VLAN 标签的格式如下:
802.1Q 标签类型 | 标签控制信息 |
10000001 00000000 | (4b) + VLAN 标识符 VID(12b) |
VLAN 标签前两个字节为 0x8100,表示这是一个 802.1Q 帧;后两个字节中,高 4 位没有用,低 12 位是该 VLAN 的标识符 VID,唯一标识了该帧属于哪个 VLAN,它可以识别 4096 个不同的 VLAN。插入 VLAN 标签后,校验码 FCS 必须重新计算。
4.2 利用以太网交换机构成 VLAN
如图所示,交换机 #1 连接了 7 台计算机,组成了一个局域网(广播域)。把局域网划分为两个虚拟局域网 VLAN-10 和 VLAN-20,后面的数字即为 VID 字段的值。每台计算机通过接入链路连接到以太网交换机,交换机中存储着每台主机的 VID(但主机并不知道自己的 VID)。
交换机 #2 连接了 5 台计算机,并通过汇聚链路(干线链路)与交换机 #1 相连。交换机 #2 中的两台计算机加入 VLAN-10,另外 3 台加入 VLAN-20。
- A 向 B 发送帧:交换机 #1 根据帧首部的 MAC 地址,识别出 B 属于本交换机管理的 VLAN-10,因此直接进行帧的转发即可,不需要 VLAN 标签,即 802.3 帧。
- A 向 E 发送帧:交换机 #1 查到 E 并不属于本交换机管理,因此先在帧中插入 VLAN 标签,变成 802.1Q 帧,通过汇聚链路转给交换机 #2。交换机 #2 拿走 VLAN 标签,变成 802.3 帧,最后把帧转发给 E。
- A 向 C 发送帧:情况较复杂,已经超出了数据链路层的范围,由网络层的路由器来解决。