1.以太网
1.1概念
以太网(Ethernet)是一种局域网(LAN)技术,遵循IEEE 802.3标准,用于在有限范围内(如家庭、办公室等)实现设备间的数据传输
1.2 以太网帧结构
(1)前导码/preamble(8个字节):用于时钟同步和帧开始标识
- 前7字节(10101010)通过其规律的比特序列,帮助接收方调整其时钟频率,以正确解析后续的数据
- 第8字节(10101011)这标志着帧的开始,称为帧起始定界符(Start Frame Delimiter,SFD)
(2)目的地址/源地址(共12字节):6字节的MAC地址,唯一标识接收方/发送方物理设备
(3)类型/type(2个字节):表示上层协议类型(IPv4为0x0800,IPv6为0x86DD)
(4)数据/Data(46 ~ 1500字节):实际传输的数据(上层协议载荷),如果数据不足46字节,则需要填充(Padding)以满足最小长度要求
- 在上篇博客推导出一个不等式:L(min)/R >= 2d(max)/V -> L(min) / R = RTT(max)
- R = 10Mbps,RTT(max) = 512μs/微秒
- L(min) = 512b = 64B,Data(min) = 64 - 12(目的地址/源地址) - 2(类型) - 4(CRC) = 46
1.3 以太网物理拓扑
物理拓扑(Physical Topology)
描述的是网络中节点(如计算机、路由器、交换机等)的实际物理连接方式,即设备在空间上的布局与线缆的部署方式
下面是局域网中常见的两种物理拓扑类型
总线拓扑(Bus Topology)
特点: 所有设备通过一条共享的传输介质(通常是同轴电缆)连接在一起。 数据沿着总线传输,所有设备都能接收到数据,但只有目标设备会处理数据
优点:
- 结构简单,成本低
- 易于扩展,只需添加新的设备到总线上
缺点:
- 单点故障:如果总线断裂,整个网络会瘫痪
- 冲突问题:多个设备同时发送数据时会发生冲突,影响网络性能
- 难以排查故障:难以确定故障点
应用:早期局域网中较为常见,现在较少使用
星型拓扑(Star Topology)
特点:
- 所有设备都连接到一个中心节点(如交换机)
- 数据通过中心节点进行转发
优点:
- 易于管理和维护:故障设备容易隔离和替换
- 故障隔离:单个设备的故障不会影响整个网络
- 灵活性高:易于添加或移除设备
缺点:
- 对中心节点的依赖性高:如果中心节点发生故障,整个网络会瘫痪
- 成本较高:需要更多的电缆和中心节点设备
应用:现代局域网中最常见的拓扑类型
1.4 以太网CSMA/CD
1.网络接口卡(Network Interface Card,NIC)从网络层接收数据报并封装为以太网数据帧
2.监听信道:采用1-坚持监听策略。如果NIC监听到信道空闲,则开始发送数据帧;如果NIC监听到信道忙,则持续监听信道直到信道空闲,然后发送数据帧
3.发送数据帧时,如果没有检测到其他节点没有数据帧发送,则NIC确认帧发送成功,如果检测到其他节点有数据帧发送,则中止发送,并发送阻塞信号(jam signal)
4.中止信号发送后,NIC采用
二进制指数退避算法
来计算等待时间
二进制指数退避算法:
- 设当前是第m次冲突
- 取n = Min(m,10)
- NIC从{0,1,2,……,(2 ^ n - 1)}中随机选择一个数K
- NIC等待k × 512比特时间后,返回步骤2
- 当冲突超过16次时丢弃该帧,并向上层报告
2.交换机
2.1 概念
交换机(Switch)
是一种用于网络通信的设备,主要工作在数据链路层。它的核心功能是通过MAC地址转发数据帧,实现局域网(LAN)内的高效通信
链路层设备:
* 存储-转发以太网数据帧 * 检验到达帧的目的MAC地址,选择性(selectively)地向一个或多个输出链路转发帧
发送帧时采用CSMA/CD协议透明(transparent):
通信双方感知不到交换机的存在即插即用(plug-and-play):
接入网络就可以直接工作/使用自学习(self-learning):
交换机无需手动配置交换(switching):
链路1-链路4和链路2-链路5的传输可以同时进行,不会冲突
2.2 交换表&自学习
Question:
交换机怎么知道A’可以通过接口4到达,B’可以通过接口5到达?
Answer:每个交换机都会维护一张交换表(switch table)
自学习机制:
通过观察数据帧的源MAC地址自动构建交换表。这一机制无需人工干预,能够动态更新网络设备的连接信息
工作原理:
交换机在接收到数据帧时,会检查帧的源MAC地址并将其与接收端口关联记录在MAC地址表中。如果表中已存在该MAC地址,则会更新对应的端口信息;若不存在则新增一条记录
交换表维护:
交换机会定期检查MAC地址表项的活跃程度,通常设置老化时间(Aging
Time,默认300秒)。若某MAC地址在老化时间内未被使用,表项将被自动清除,防止存储过期信息数据帧转发规则:
当交换机收到数据帧时,
- 若目标MAC存在于表中,则从对应端口转发(单播)
- 若目标MAC为广播/组播或未在表中,则泛洪(flood)到所有端口(除接收端口外)
3.虚拟局域网
3.1 概念
虚拟局域网(Virtual Local Area Network,VLAN)
是一种将物理局域网划分为多个逻辑子网的技术,通过交换机配置实现广播域的隔离
广播域(Broadcast Domain):
指网络中所有能够接收广播消息的设备集合。当一台设备发送广播帧时,该帧会传播到同一广播域内的所有设备,但不会跨越路由器或三层交换机(网络层设备)。广播域通常由二层交换机(或集线器)连接的网络区域构成
3.2 端口划分的VLAN
基于端口划分的VLAN(Port-Based VLAN):
端口划分是最基础的VLAN类型,基于交换机物理端口分配VLAN成员。同一VLAN的端口属于一个广播域,不同VLAN的端口需通过路由器或三层交换机通信
- 流量隔离(traffic isolation):去往/来自端口① ~ ⑧的帧只到达端口① ~ ⑧
- 动态成员:端口可以动态分配给不同VLAN
- 中继端口(trunk port):用于连接其他交换机或路由器的特殊端口,主要作用是承载多个VLAN的流量(数据帧在转发时必须携带VLAN ID信息)
3.3 VLAN/802.1Q帧格式
标签控制字段(Tag Control Information,TCI)
是一个2字节的字段,包含以下三个子字段:
- 用户优先级(User Priority):
- 长度:3位
- 作用:用于表示帧的优先级,取值范围为0到7,值越大优先级越高
- 规范格式指示器(Canonical Format Indicator,CFI):
- 长度:1位
- 作用:用于指示MAC地址是否是规范格式。CFI为0表示MAC地址是以太网的规范格式,CFI为1表示MAC地址是令牌环网或FDDI的格式
- VLAN ID(VID):
- 长度:12位
- 作用:用于标识帧所属的VLAN。VLAN ID的取值范围为0 ~ 4095,但由于0和4095被协议保留,实际有效的VLAN ID范围是1 ~ 4094
4.PPP协议
4.1 概念
PPP(Point-to-Point Protocol)
是一种数据链路层协议,用于直接连接的两个节点之间通信。它由三个部分组成:
- 链路控制协议(Link Control Protocol,LCP):LCP负责建立、配置、测试和维护点对点连接。它处理链路层参数协商,如最大传输单元(MTU)、认证协议选择等。LCP还提供链路质量检测和连接终止功能
- 网络控制协议(Network Control Protocol,NCP):NCP用于协商网络层特定参数。常见的NCP包括IPCP(IP Control
Protocol)用于配置IP地址。NCP在LCP完成链路建立后启动- 认证协议(Authentication Protocols):PPP支持多种认证机制,确保连接安全性。常用协议包括: * PAP(Password Authentication Protocol):简单明文认证,安全性较低 * CHAP(Challenge Handshake Authentication Protocol):采用挑战-响应机制和哈希加密,安全性更高
PPP协议提供以下服务:
- 组帧:将网络层数据报封装到数据链路层帧中(不一定是IP数据报)
- 比特透明传输:指数据在PPP链路上传输时,不因协议封装或特殊字符(如标志位、控制字符)而改变原始数据的内容。PPP协议通过字节填充实现透明性
- 差错检测:使用CRC校验但不会对数据进行纠正,即丢弃有差错的帧
- 连接活性(connection liveness)检测:检测、并向网络层通知链路失效
- 网络层地址协商:端节点可以学习/配置彼此网络地址
4.2 PPP协议帧格式
- 标志(Flag)/定界符:固定值为0x7E(二进制01111110),标识帧的开始和结束。为避免信息字段中出现相同值导致误判,PPP使用字节填充技术(见下文)
- 地址(Address):固定值为0xFF(二进制11111111),表示广播地址
- 控制(Control):固定值为0x03(二进制00000011),表示无编号帧(Unnumbered Frame),即不进行序列号确认
- 协议(Protocol):2字节字段,标识信息字段中封装的上层协议数据报。常见值包括:
- 0xC021:LCP(Link Control Protocol)数据
- 0x8021:IPCP(IP Control Protocol)数据
- 0x0021:IP数据报
- FCS:CRC校验码
4.3 字节填充
发送方:
- 标志字节处理:数据中的原始0x7E被替换为0x7D 0xm 5E(转义字节+异或0x20后的值)
- 转义字节处理:数据中的原始0x7D被替换为0x7D 0x5D(转义字节+异或0x20后的值)
- ASCII控制字符处理:若配置了异步链路,值小于0x20的字符(如0x01)需替换为0x7D+原字符异或0x20(如0x7D 0x21)
接收方:
- 遇到0x7D时,检查下一字节并还原原始值(异或0x20)
- 直接保留未填充的普通字节
5.无线局域网
5.1 概念
无线局域网(Wire Local Area NetWork,WLAN):
指以无线信道作为传输介质的计算机局域网
5.2 基础架构模式
基础架构模式是无线局域网(WLAN)中最常见的组网方式,其核心是通过接入点(Access Point, AP)实现设备间的通信。所有终端设备(如手机、笔记本电脑,统称为STA)必须通过AP进行数据交互,形成典型的星型拓扑结构
接入点(Access Point, AP):
相当于网络枢纽,负责无线信号收发和终端设备身份认证STA:
具有无线网卡的终端设备,必须和某一AP关联
- 扫描信道:监听包含BSSID和SSID的信标帧(Beacon Frame)
分布式系统(DS):
连接多个AP的骨干网络(通常为有线以太网)基本服务集(Basic Service Set,BSS):
由单个AP与其关联的STA构成,标识符为BSSID(AP的MAC地址)扩展服务集(Extended Service Set,ESS):
多个BSS通过DS互联形成的逻辑整体,使用统一SSID(也就是我们常说的Wi-Fi名称)
5.3 信道与AP关联
被动扫描:
- ①:H1所处范围内的AP向H1发送信标帧
- ②:H1向选择的AP发送关联请求帧
- ③:AP向H1发送关联响应帧
主动扫描:
- ①:H1主动广播探测请求帧(Probe Request Frame)
- ②:范围内的AP向H1发送探测响应帧(Probe Response Frame)
- ③:H1向选择的AP发送关联请求帧
- ④:AP向H1发送关联响应帧
5.4 CSMA/CA
Question:
WLAN为什么使用CSMA/CA而不是CSMA/CD?
Answer:无线信号的强度会随着距离增加而急剧衰减,接收信号强度直接淹没在本地发送信号强度下。无法做到边发送,边监听
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance):
是一种用于无线网络的介质访问控制协议。与有线网络中的CSMA/CD不同,CSMA/CA通过主动避免冲突而非检测冲突来提高信道利用率,尤其适用于无线环境。
具体工作原理如下:
发送方:
- 1.监听信道空闲了DIFS时间,然后发送整个帧,发送期间不检测冲突
- 2.监听信道忙,等待DIFS之后,还需要等待一个随即退避时间(Backoff Time)
- 3.如果没有接收到ACK,增加随即退避时间间隔,再重复第二步
接收方:
- 1.正确接收帧后,延迟SIFS时间再返回ACK给发送方
关键参数:
- DIFS(DCF Inter-Frame Space):分布式协调帧间间隔,默认值为50微秒
- SIFS(Short Inter-Frame Space):短帧间间隔,用于高优先级操作(如ACK),默认值为10微秒
基本思想:
允许发送方“预约”信道。利用很短的预约帧避免了数据帧冲突
- 发送方利用CSMA向接收方发送一个很短的RTS(request-to-send)帧。虽然RTS可能会冲突,但RTS帧很短
- 接收方广播一个CTS(clear-to-send)帧作为RTS的响应。该CTS帧可以被所有节点接收
- 通知发送方可以发送帧
- 其他节点延迟发送帧
5.5 帧结构
帧控制:
- 1.协议版本(Proticol Version):通常为00
- 2.类型(Type):指示帧的类型
- 管理帧:00,用于管理无线连接,如信标帧(Beacon)、探测请求帧(Probe Request)、探测响应帧(Probe Response)、关联请求帧(Association Request)、关联响应帧(Association Response)等
- 控制帧:01,用于控制无线信道的访问,如请求发送帧(RTS)、允许发送帧(CTS)、确认帧(ACK)等
- 数据帧:10,用于传输数据,如普通数据帧(Data)等
- 保留位:11,用于未来扩展
- 3.子类型(Subtype):通常与类型字段配合使用,以提供更详细的帧类型信息。假设Type = 00,Subtype = 1000,则该帧为信标帧
- 4.To DS:目的地址是否为DS
- 5.From DS:源地址是否为DS
- 6.更多分片(More Frag):是否还有更多分片
- 7.重试(Retry):是否为重传帧
持续期(duration):
预约的时间
Address 1 (RA):
接收端MAC地址
Address 2 (TA):
发送端MAC地址
Address 3 (BSSID):
接入点或基础服务集标识
序号控制(Sequence Control):
- Fragment Number (4 bits): 分片编号
- Sequence Number (12 bits): 数据包序列号
帧主体(Frame Body):
- 数据帧:有效载荷(加密或明文)
- 管理帧:包含信息元素(如SSID、支持的速率等)
FCS:
CRC校验码