6.4 交换局域网
交换机运行在链路层,不识别网络层地址,使用链路层地址而不是IP地址来转发链路层帧。
6.4.1 链路层寻址和 ARP
为什么有网络层IP地址还需要链路层MAC地址?
- 局域网为任意网络层设计,不只是IP和因特网;如果适配器用IP地址寻址,不能方便地支持其他网络层协议。
- 如果适配器用IP地址寻址,网络层地址必须存在RAM,移动/上电时重新配置
- 如果适配器不使用任何地址,则每帧都需要中断,到网络层解析地址是否匹配
1.MAC地址
链路层地址别名:LAN地址、物理地址、MAC地址
实际上并不是主机/路由器有MAC地址,而是他们的适配器(即网络接口)具有MAC地址。
注意:对应的链路层交换机接口没有MAC地址,因为链路层交换机透明地在主机和路由器之间传输数据报,不需要明确地将帧寻址到交换机。
对于大多数局域网(以太网和802.11无线局域网),MAC地址长度为6字节,共2^48个可能。前24比特向IEEE购买,由IEEE分配,后24比特由公司自己生成唯一组合。MAC地址被设计为永久的,但可以用软件改写。
IP地址具有层次结构,但MAC地址具有扁平结构:IP地址随着所连接网络的变化而变化,但MAC地址不变。
适配器发送帧时,需要将目的适配器的MAC地址插入到该帧中。交换机偶尔将一个入帧广播到所有接口,所以适配器可能收到并非向他寻址的帧。适配器收到帧检查目的MAC是否与自身MAC匹配:匹配则提取数据报向上层传,不匹配则丢弃该帧。
有时某适配器的确要局域网上所有其他适配器接受并处理某帧,此时目的地址为MAC广播地址 FF-FF-FF-FF-FF-FF。
2.地址解析协议 ARP
ARP:Address Resolution Protocol,在 IP 地址和 MAC 地址之间转换。
局域网内,如果A要给B发数据,则A要向其适配器提供IP数据报及目的主机的MAC地址。
如何确定目的主机的MAC?通过ARP:给定同局域网上的IP,返回相应的MAC地址。
每个主机和路由器的内存中有一个ARP表,包含 IP 地址到 MAC 的映射关系。
⚠️ ARP 只能为同一个子网的主机和路由器接口解析IP地址
IP | MAC | TTL |
---|---|---|
222.222.222.221 | 88-B2-2F-54-1A-0F | 13:45:00 |
TTL 指示从表中删除条目的时间,一般是20分钟。
如果发送方的ARP表有目的节点的表项,直接返回目的主机的MAC。
如果发送方ARP表中没有目的节点的表项:
- 发送方构造ARP分组:包括发送和接收IP地址及MAC地址,用广播帧发送
- 每个接收适配器都把该ARP广播分组向上传递个ARP模块,ARP模块检查其IP是否与ARP分组中的目的IP匹配
- 匹配的主机用标准帧发送响应ARP分组
注意:
- ARP查询分组和响应分组具有相同格式
- ARP查询报文在广播帧(FF-FF-FF-FF-FF-FF)中发送;ARP响应报文在标准帧中发送
- ARP表自动建立,无需管理员维护
- ARP是跨链路层和网络层的协议
- 链路层:ARP分组封装在链路层帧中,包含链路层地址字段
- 网络层:包含网络层地址
3.发送数据到子网以外
例子:一台路由器,连接2个子网;每个主机一个IP,一个适配器
⚠️ 路由器的每个接口都有自己的IP地址、ARP模块、适配器、MAC地址
111.111.111/24 子网的主机向222.222.222/24 子网的主机发送数据报,如何确定目的MAC地址?
-
不能直接填目的主机的MAC,因为子网1内所有适配器的MAC地址都不匹配
-
该帧的目的MAC应该填入默认网关(第一跳路由器)的MAC地址
数据从源主机到达路由器,路由器查询转发表,通过正确的端口发到子网2中
路由器通过APR,获取目的主机的MAC地址,将新帧发送到子网2中
6.4.2 以太网
有线局域网技术:以太网、令牌环、FDDI、ATM
以太网支配地位的原因:广泛部署、简单、硬件成本低、速率上奋起抗争
- 20世纪90年代中期以前,以太网是同轴、总线拓扑的广播局域网,使用具有二进制指数回退的CSMA/CD多路访问协议
- 20世纪90年代后期,基于集线器的星形拓扑:集线器是物理层设备,作用于比特而不是帧,单纯地将一个接口收到的比特向所有其他端口广播(放大能量强度)
- 进入21世纪,基于交换机的星形拓扑:无碰撞的、存储转发分组交换机,仅运行在第二层
1. 以太网帧结构
6个字段:前同步码[8] 目的MAC地址[6] 源MAC地址[6] 类型[2] 数据[46-1500] CRC[4]
以太网帧不仅可以承载IP数据报,还可以承载其他网络层分组。
- 数据(46~1500字节):承载IP数据报,。以太网最大传输单元(MTU)是1500 字节,如果IP数据报超过1500字节,需要分片;不足46字节使用IP数据报的长度字段填充至46字节。
- 目的MAC地址(6字节):如果是广播地址或与接收适配器MAC地址匹配,则将数据字段内容向上传递给网络层;收到MAC地址为其他的帧则丢弃。
- 源MAC地址(6字节)
- 类型(2字节):以太网支持多种网络层协议,根据类型字段不同传递给不同网络层协议。IP和其他协议都有自己的标准化类型编号。ARP类型:0x0806
- CRC(4字节):使接受适配器能够检测帧中差错
- 前同步码(8字节):前7字节 10101010,用于唤醒接收适配器,锁定发送适配器的时钟(速率不同或时钟漂移);最后一个字节 10101011,提示接收适配器信息即将到达。
以太网特点:
- 无连接:适配器A给B发送前无握手,类似IP、UDP
- 不可靠:接收适配器进行CRC校验,但通过校验不回ACK;不通过校验直接丢弃,也不回NAK
2. 以太网技术
IEEE 802.3 CSMA/CD(Ethernet)工作组标准化了以太网技术:10BASE-2、1000BASE-LX、10GBASE-T等。
第一部分代表速率。BASE代表基带以太网,即该物理层仅承载以太网流量。最后一部分代表物理媒介,「T」代表双绞线。
初期以太网被构想为同轴电缆,使用CSMA/CD的总线拓扑广播媒体。但今天的以太网已经变成点对点拓扑,用双绞线/光纤和交换机相连。
早期同轴距离限制500米,通过物理层的转发器(repeater)可以延长。100Mbps以太网用双绞线距离限制为100米,光纤可以几千米。
吉比特以太网(IEEE 802.3z,40Gbps)是对10Mbps、100Mbps以太网的扩展:
- 使用标准以太网帧格式,向后兼容
- 允许点对点链路及共享广播信道
- 使用CSMA/CD共享广播信道
- 对于点对点,允许双向40Gbps 全双工
- 最初工作于光纤上,现也工作在5类UTP上
⚠️ 最初的以太网基于总线拓扑、基于集线器的星形拓扑,是广播链路,为了处理碰撞,包括了CSMA/CD协议。但是今天的以太网是基于交换机的星形拓扑,采用存储转发分组交换,不会有碰撞,不再需要MAC(媒体访问控制)协议!
以太网经过这么多年的发展,唯一不变的是以太网帧格式。