数据链路层
MAC地址
占六个字节
IP地址
ARP协议
ARP协议是通过已知IP地址找出其对应MAC地址的协议
在一段总线型链路中,主机B要给主机C发送数据包。
但B只知道C的IP地址却不知道C的MAC地址,首先B会在它的ARP高速缓存表中查询IP地址,但没有C的IP地址。
因此B要发送ARP请求报文来获取C的MAC地址,目的地址为广播地址。
现在B能把数据包发给C了,主动获取就是通过自学习得到的记录。
如图,H1能使用ARP获取到H2的MAC地址吗?
不能。ARP协议只能在一段链路或一个网络上使用,不能跨网络使用。
因为从路由器出去后,数据包的来源mac地址会变成路由器的mac地址。所以arp是不会穿越路由器的。(交换机不会改变mac地址)
ARP的使用是逐网段的
集线器与交换机
集线器
集线器逻辑上是总线型的
假设某学院设三个系,每个系都有一个使用集线器作为互联设备的以太网,各自独立。
一系中的某主机向另一台主机发送数据帧,由于总线特性数据帧会传输到一系中的其他主机。
二系的多台主机同时发送数据帧,由于总线特性,会发生碰撞并把碰撞信号传输到其他主机。
为了使各以太网能相互通信,可再用一个集线器将它们互连成一个更大的以太网,而原来的碰撞域也合并成了一个更大的碰撞域。
一系的某台主机给二系的某主机发送数据帧,由于总线特性,数据帧会传输到整个网络的其他主机。
交换机
交换机主机间的数据通信不会传输给其他主机
交换机通常有多个接口,能同时连通多对接口的主机
交换机收到多个帧时会将它们缓存起来再逐个转发给目的主机,不会产生碰撞
集线器与交换机的对比
- 单播帧:集线器会传输给网络中的各主机,而交换机不会
- 广播帧:效果一样
可见,无论是用集线器还是交换机来扩展以太网,扩展后以太网的各主机都属于同一个广播域。 - 但是仅用集线器扩展的以太网会同时扩大广播域和碰撞域,而仅用交换机扩展的以太网只会扩大广播域不会扩大碰撞域。
即交换机可以隔离碰撞域
碰不碰撞取决于能否同时处理数据帧,集线器不行,交换机可以。
以太网交换机的自学习过程
交换机工作在数据链路层,它收到数据帧后会在其自身的帧交换表中查找接收的帧的目的MAC所对应的接口号,有的话就会通过该接口转发帧。
刚通电的交换机其内部的帧交换表是空的,随着各主机间通过它通信,它会通过自学习算法逐渐建立帧交换表。
-
假设主机A要发数据帧给B
首先A要发送的帧会从交换机1的1号接口进入交换机,之后交换机1会对该帧进行登记。将该帧的源MAC地址和对应的接口记录到交换表中。
上述的登记工作就是自学习。
之后交换机1对该帧进行转发,该帧的目的MAC是B,在帧交换表中查找MAC地址B,找不到。
于是对该帧进行盲目转发,也成泛洪。即同时在交换机的其他接口转发该帧。
与交换机1相连的主机B根据该帧的目的MAC得知是发给自己的,于是接收该帧。同理C得知不是发给自己的,丢弃该帧。
该帧从接口4发送到交换机2的接口2,之后在交换机2中进行登记转发,BEF都知道该帧不是发给自己的就丢弃该帧。
已经收到数据帧的B会通过接口3发送确认帧给A,同样先在交换机中登记,转发。因为帧交换表中有确认帧的目的MAC地址A,所以能直接转发。
A接收到确认帧后根据目的MAC知道这是给自己的就接收该帧。
-
再假设主机G通过集线器(图中省略)与A互连,G给A发数据帧
首先该帧通过集线器的总线网络分别发给A和接口1,A根据目的MAC知道是发给自己的就接收该帧。另一个数据帧从接口1进入交换机1并登记转发。
转发时发现该帧对应的接口与其目的MAC地址A的接口相同,即该帧从接口1进来又要从接口1出去,这种情况交换机是不会转发的,丢弃该帧。
生成树协议STP
如图,假设有链路故障了,要怎么提高以太网的可靠性呢?
可以添加冗余链路的方法提高可靠性,在BC间再加一条链路。
但是冗余链路也有弊端,会形成网络环路。造成广播风暴,广播帧在环路中不断顺&逆时针兜圈,主机收到重复的广播帧,帧交换表中广播帧对应的接口不断变化。
因此使用STP来避免冗余链路带来负面影响。
虚拟局域网VLAN
现实网络中相当一部分协议会频繁用到广播,那要怎么避免广播风暴呢?
切割广播域的方法
-
路由器可以隔离广播域
路由器默认不转发广播数据包,因此能隔离广播域,但成本较高。
-
虚拟局域网VLAN
VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组技术
如图,某主机放送广播,局域网内的所有主机都能收到。
将各主机分别划分给VLAN1、VLAN2,此后VLAN1的广播不会发送给VLAN2,反之亦然。
即同一个VLAN内部可以广播通信,不同VLAN间不能广播通信。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具