MAC Medium/Meida Access Control 地址
或称为 LAN 地址、物理地址、以太网地址,作用是用于局域网内标识一个帧从哪个
接口发出,到达哪个物理相连的其他接口。
48位 MAC 地址(用于大部分LANS),固化在网卡的 ROM 中,有时也可以软件设置(要至少保证在本地局域网中唯一)。
MAC 地址由 IEEE 统一管理与分配,网卡生产厂商需要购买 MAC 地址空间(前24比特)。
类比
MAC 地址 == 身份证号 IP 地址 == 邮政地址。
MAC 地址是”平面”地址,都在一个平面内,到哪里都一样,可携带,可以从一个 LAN 移到另外一个 LAN。
IP 地址是层次地址,不可携带,IP 地址依赖于结点连接到哪个子网。
ARP 地址解析协议
ARP 表,LAN 中的每个 IP 结点(主机、路由器)维护一个表,存储某些 LAN 结点的 IP/MAC 地址映射关系,
<IP 地址,MAC 地址,TTL>,TTL 经过这个时间以后该映射关系会被遗弃(典型的值为20分钟)。
同一个局域网内
- A 想要给同一个局域网内的 B 发送数据报,B 的 MAC 地址不在 A 的 ARP 表中。
- A 广播 ARP 查询分组,其中包含 B 的 IP 地址、目的 MAC 地址 = FF-FF-FF-FF-FF-FF,LAN 中所有结点都会接收 ARP 查询。
- B 接收 ARP 查询分组,IP 地址匹配成功,向 A 应答 B 的 MAC 地址,利用单播帧向 A 发送应答。
- A 在其 ARP 表中,缓存 B 的 IP-MAC 地址对,直至超时,超时后,再次刷新。
- ARP 是即插即用的协议,结点自主创建 ARP 表,无需干预。
不在同一个局域网内
寻址,从一个 LAN 路由至另一个 LAN。
默认 MAC 地址,路由器要改源和目的 MAC 地址。
以太网 ETHERNET
“统治地位”的有线 LAN 技术,造价低廉,应用最广泛的 LAN 技术,比令牌环局域网和 ATM 等简单、便宜,
满足网络速率要求:10 Mbps - 10 Gbps。
物理拓扑
- 总线bus:上世纪 90 年代中期前流行,所有结点在同一个冲突域(collision domain)(可能批次冲突)
- 星型star:目前主流网络拓扑,中心交换机,每个结点是一个单独的冲突域(结点间彼此不冲突)。
不可靠、无连接服务
- 无连接(connectionless):发送帧的网卡与接收帧的网卡间没有”握手”过程。
- 不可靠(unreliable):接收网卡不向发送网卡进行确认,差错帧直接丢弃,丢弃帧中的数据恢复依靠高层协议,否则发生数据丢失。
- 以太网的 MAC 协议:采用二进制指数退避算法的 CSMA/CD 协议。
以太网 CSMA/CD 算法
- NIC(网卡)从网络层接收数据报,创建数据帧。
- 监听信道:如果 NIC 监听到信道空闲,则开始发送帧;如果信道忙,则一致等待到信道空闲(1坚持),然后发送帧。
- NIC 发送完整个帧,而没有检测到其他结点的数据发送,则 NIC 确认帧发送成功。
- 如果 NIC 检测到其他结点传输数据,则终止发送,并发送堵塞信号(jam signal),让其他结点早点发现冲突。
- 终止发送后,NIC 进入二进制指数退避:第 m 次连续冲突后,取 n = max(m, 10),NIC 从 {0, 1, 2, 3, …, 2n次方 - 1}中随机选择一个数 k,NIC 等待 k* 512 比特的传输延迟时间,再返回第二步,连续冲突次数越多,平均等待时间越长。
以太网帧结构
发送端网卡将 IP 数据报(或其他网络层协议分组)封装到以太网帧中。
前导码 preabmle
8字节,前七个字节都是 10101010,第八个字节为 10101011,用于时钟同步。
目-源 MAC
各6字节,如果网卡的 MAC 地址与收到的帧的目的 MAC 地址匹配,或者帧的目的 MAC 地址为广播地址(FF-FF-FF-FF-FF-FF),
则网卡接收该帧,并将其封装的网络层分组交给相应的网络层协议,否则,网卡丢弃该帧。(混杂模式)
类型 Type
2 个字节,指示帧中封装的是哪种高层协议的分组(IP 数据报,AppleTalk 数据报),以太网的复用分用。
数据 data
46-1500字节,上层协议载荷,最少46字节(受到 CSMA 协议的限制),如果不足则要填充。
CRC
4字节,循环冗余校验码。
以太网交换机 switch
链路层设备,存储-转发以太网帧,检测到达帧的目的 MAC 地址,选择性(selectively)向一个或多个输出链路转发帧,利用 CSAMA/CD 访问链路,发送帧。
透明(tranparent),主机感知不到交换机的存在,即插即用(plug-and-play),自学习(self-learning)交换机无需配置。
多端口间同时传输
主机利用独享(dedicated)链路直接连接交换机,交换机缓存帧,交换机在每段链路上利用 CSMA/CD 收发帧,但无冲突,且可以全双工。
每段链路是一个单独的冲突域,交换(switching),A-A’ 与 B-B’ 的传输可以同时进行,没有冲突。
交换机转发表-交换表
Q:交换机怎么知道 A’ 可以通过接口 4 到达,而 B’ 可以通过 5 到达?
A:每个交换机有一个交换表(switch table),每个入口(entry):(主机的 MAC 地址,到达主机的接口,时间戳)
Q:交换表入口信息如何创建和维护?
A:自学习
自学习
交换机通过自学习,获知到达主机的接口信息,当收到帧时,交换机学习到发送帧的主机(通过帧的源 MAC地址),
位于收到该帧的接口所连接的 LAN 网段,将发送主机 MAC 地址/接口信息记录到交换表中。
如果此时有伪造 MAC 地址怎么处理?
帧过滤/转发
当交换机收到帧:
- 记录帧的源 MAC 地址与输入链路接口
- 利用目的 MAC 地址检索交换表
- 如果交换表中检索到与目的 MAC 地址匹配的入口则转发帧到该入口指向的接口,否则广播。
交换机互联
Q:当 A 向 G 发送帧时,s1 怎么知道通过 s4 转发?s4 又怎么知道通过 s3 转发。
A:自学习,广播,一个接口能维护多个 MAC 地址?
组织机构 institutional 网络
交换机 vs 路由器
两者均为存储-转发设备:
- 路由器:网络层设备,检测网络层分组首部
- 交换机:链路层设备,检测链路层帧的首部
两者均使用转发表:
- 路由器:利用路由算法(路由协议)计算(设置),依据 IP 地址
- 交换机:利用自学习、泛洪构建转发表,依据 MAC 地址
虚拟局域网 VLANs
动机
- 隔离广播域(当然可以用路由器)
- CS 用户迁移到 EE,但是希望连接至 CS 交换机,怎么办?
- 单一广播域的问题:所有第二层广播流量(ARP、DHCP,未知目的的 MAC 地址位置)必须穿越整个 LAN,安全、隐私、效率问题。
VLANS
Virtual Local Area Network,支持 VLAN 划分的交换机,可以在一个物理 LAN 架构上配置、定义多个 VLAN。
基于端口的 VLAN
分组交换机端口(通过交换机管理软件),于是,单一的物理交换机就像多个虚拟交换机一样运行。
此时广播只限于分组的那一边。
流量隔离(traffic isolation)去往/来自端口 1-8 的帧只到达端口 1-8,也可以基于 MAC 地址定义 VLAN,而不是交换接口。
动态成员:端口可以动态分配给不同 VLAN。
在 VLAN 间转发:通过路由(就像在独立的交换机之间),实践中,厂家会将交换机与路由器集成在一起三层交换机,路由器具有交换机的功能。
跨越多个交换机的 VLAN
- 多线缆连接,每个线缆连接一个 VLAN,不经济。
- 中继端口(trunk port):在跨越多个物理交换机定义的 VLAN 承载帧,为多 VLAN 转发 802.1 帧容易产生歧义,所以必须携带 VLAN ID 信息。
802.1Q VLAN 帧格式
802.1Q协议为经过中继端口转发的帧增加/去除额外的首部域。
PPP
与之前的 MAC 共享链路协议不同,PPP 是点对点数据链路控制,一个发送端,一个接收端,一条链路,比广播链路容易。
- 无需介质访问控制(Media Access Control)
- 无需明确的 MAC 寻址
- 拨号链路、ISDN 链路
点对点链路控制协议
常见的点对点链路控制协议:
- HDLC:High Level Data Link Control
- PPP:Point-to-Point Protocol
PPP 设计需求
需要支持的功能
- 组帧:将网络层数据报封装到数据链路层帧中
- 可以同时承载任何网络层协议分组(不仅 IP 数据报)
- 可以向上层实现分用(多路分解)
- 比特透明传输:数据域必须支持承载任何比特模式
- 差错检测:无纠正
- 连接活性(connection liveness)检测:检测、并向网络层通知链路失效
- 网络层地址协商:端结点可以学习/配置彼此网络地址
无需支持的功能
- 无需差错纠正/恢复
- 无需流量控制
- 不存在乱序交付
- 无需支持多点链路
IEEE 802.11 无线局域网
802.11b
2.4-2.5 GHz 免费频段(unlicensed spectrum),最高速率 11 Mbps,物理层采用直接序列扩频(DSSS)技术。
802.11a
5-6 GHz,最高速率 54 Mbps。
802.11g
2.4-2.5 GHz,最高速率 54 Mbps。
802.11n
多天线 MIMO,2.4-2.5 GHz,最高速率 600 Mbps。
以上协议均使用 CSMA/CA 多路访问控制协议,均有基础设施(基站)网络模式和特定网络(自组网)模式。
IEEE 802.11 体系结构
- 无线主机与基站通信
- 基站(base station)= 访问点(access point-AP)
- 基本服务集BSS(Basic Service Set),也称为单元(cell)
- 基础设施网络模式中,BSS 包括
- 无线主机
- AP:基站
- 自组网(ad hoc)模式
- 只有主机
- 基础设施网络模式中,BSS 包括
802.11 信道与 AP 关联
- 802.11b 把频谱划分为 11 个 不同频率的信道
- 每个 AP 选择一个频率(信道)
- 存在干扰可能:相邻的 AP 可能选择相同的信道!
- 主机:必须与某个 AP 关联(associate)
- 扫描信道(11个信道),监听包含 AP 名称(服务集标识符-SSID)和 MAC 地址的信标(beacon)帧。
- 选择一个 AP 进行关联
- 可能需要进行身份认证
- 典型情形:运行 DHCP 获取 IP 地址等信息
802.11 AP 关联
主机被动扫描与主动扫描。
被动扫描 scanning
- 各 AP 发送信标帧
- 主机(H1)向 选择的 AP 发送关联请求帧
- AP 向主机(H1)发送关联响应帧
主动扫描
- 主机(H1)主动广播探测请求帧(probe request frame)
- AP 发送探测响应帧(probe response frame)
- 主机(H1)向选择的 AP 发送关联请求帧
- AP 向主机(H1)发送关联响应帧
802.11 多路访问控制
- 避免冲突:2+结点同时传输
- 802.11:CSMA-发送数据前监听信道
- 避免与正在进行传输的其他结点冲突
- 802.11:不能像 CSMA/CD 那样,边发送、边检测冲突
- 无线信道很难实现,信号强度随距离的平方甚至三次方成反比衰减
- 无法侦听到所有可能的冲突:隐藏站、信号衰落
- 目标:尽可能避免冲突(avoid collisions)- CSMA/C(ollision)A(voidance)
CSMA/CA
基本思想:允许发送端预约信道,而不是随机发送数据帧,从而避免长数据帧的冲突。
- 发送端首先利用 CSMA 向 BS 发送一个很短的 RTS(request to send)帧
- RTS帧仍可能彼此冲突(但RTS帧很短,影响比数据帧冲突小)
- BS 广播一个 CTS (clear to send)帧作为对 RTS 的响应
- CTS 帧可以被所有结点接收
- 消除隐藏站影响
- 发送端可以发送数据帧
- 其他结点推迟发送
利用很小的预约帧彻底避免了数据帧冲突!