第三章 数据链路层(下)
-
5.4 随机接入——无线局域网协议:CSMA/CA
载波监听多址接入/碰撞避免 CSMA/CA
(Carrier Sense Multiple Access/Collision Avoidance)
无线局域网中,碰撞发生在接收的时候而不是发送时,谁都无法检测到碰撞,所以不再采取碰撞检测,而是碰撞避免。
搞懂下图这几个帧间间隔各有什么作用?
- 问:源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
答:考虑到可能有 更高优先级 的帧也要发送,若有,就人家先发。 - 问:目的站为何正确接收数据帧后还要等待一段时间SIFS才发送ACK帧?
答:一来接收完以后需要时间从 接收方式 切换为 发送方式,二来SIFS是最短的 ??帧间间隔,用于分隔一次对话中的各个帧。
那…DCF是啥? 刚刚上面的例子用的就是 分布式协调功能DCF。
好,现在接着上面的例子
- 问:目的站和源站收发完数据,信道由忙变为空闲 且 经过DIFS时间后,其他站想
??发送为何还要退避一段随机时间呢? 答:刚结束DIFS,肯定一堆人盯着信道,如果都等DIFS结束就发送,那不是全都 ??碰撞在一起了?所以为避免多个站点同时发送,就设置了随机的退避时间。
算法原理 案例辅助理解:
预约:提前用一个很短的,不容易发生碰撞的帧(RTS),通知好接收方,一会的一段时间内只和我通信,不要理会别人。 就像这样:
说明:
载波监听:
-
这也是预约机制很巧妙地一点:RTS,CTS,数据帧 里面都含有本次预约的通信要持续的时间,所以其他站接收到了这些帧中的任何一个,就都能腾出合适的时间等他结束,自己再找时间传输。相当于减少了碰撞。
-
-
5.4.4 习题 顺便总结一下MAC协议方面的知识
理解题干中说的“对正确收到的数据帧进行确认”
-
CDMA虽是MAC协议,但收到帧后并没有确认操作。
6、MAC地址 IP地址 ARP协议
尽管IP地址和ARR协议属于网际层,MAC地址属于数据链路层,但三者之间存在联系,所以放在一起学习。
MAC地址用于标识一条广播信道上的各主机,一般固化存储在网卡的EEPROM中。因此,也被称为硬件地址,或物理地址。(不要以为物理地址就是物理层。)
-
-
6.2.1 IEEE 802局域网的MAC地址格式
MAC地址发送顺序:
-
字节:第一字节 → 第六字节 -
比特:0比特 → 7比特
拓展:可以在IEEE的官方网站查看已分配的组织唯一标识符OUI。 如果已知MAC地址,也可以查询他的厂商信息。
单播MAC地址举例:单对单传播
广播MAC地址:单对多传播,目标任意
多播MAC地址:单对多,目标有限制
D的多播组列表中找不到该多播地址,所以丢弃该帧。
拓展: 随机MAC地址:当前已有如下设备采用了随机MAC地址
本篇主要学习IP地址与MAC地址的联系,IP地址的作用,在网络层进行深入讲解。
-
因特网中,不同网络的编号必须各不相同。 -
在一个IP地址中,哪部分是主机编号,哪部分是网络编号不是确定的,不都和上图的例子相同。
从网络体系结构看IP地址与MAC地址:
数据包转发过程中IP地址与MAC地址的变化情况:
引入:一段链路中,两个主机想要互相通信,但是他们只知道对方的IP,不知道MAC地址,导致链路层无法封装MAC帧,此时地址解析协议ARP就能解决这个问题。
ARP协议原理:B要给C发送数据包。
-
每个主机中(或路由器等)都有一张ARP高速缓存表,里面记录有之前使用过的IP地址及其对应的MAC地址。当主机要和某IP地通信时,查找ARP表有无其对应的MAC地址。如果没有则需要发送ARP请求报文,来获取对方的IP地址。
-
ARP请求报文封装在MAC帧中,只不过其目的地址为FF-FF-FF-FF-FF-FF,总线上的所有主机都能收到该帧,并根据帧的内容发送ARP响应。 -
本例中A自然不用做出回应,而C需要发送ARP响应。 -
C除了发送ARP响应外,还要把B的IP地址和MAC地址记录在自己的ARP高速缓存中。
B收到ARP响应报文后,链路层MAC地址匹配成功,交由上层处理,上层ARP进程解析ARP报文,将其中C的IP地址和MAC地址记录到自己的ARP高速缓存表中。
动态类型的记录中,IP地址和MAC地址的对应不是固定不变的,如:网卡坏了,换了一张新的网卡,此时IP地址没变,而MAC地址变了。所以,生命周期设为两分钟,两分钟之后自动删除。
7、交换机(SWITCH)与集线器(HUB)的区别
在集线器之前使用的是无源同轴电缆将主机与各总线连接。后来采用集线器+双绞线的方式连接成总线网。
集线器可以在物理层面扩展以太网:
-
原来三个系互相独立,互不连通,无法通信,不过此时竞争总线的主机少,碰撞域小。 -
再加一个集线器,连通三个系,虽然可以互相通信,但竞争总线的主机也变多了,碰撞域增大。
使用集线器的以太网逻辑上共享总线,用CSMA/CD协议协调各主机征用总线,所以是一种半双工通信。
单主机发送广播帧无区别。
单主机发送单播帧:集线器转发给其余所有主机,交换机只发给目的主机。
多主机发送单播帧:
扩展总线:
8、交换机自学习和转发帧的流程
案例:
-
假设各主机都知道目的机的MAC地址(无需进行ARP) -
开始时帧交换表中没有任何信息 -
A→B;B→A;E→A;G→A
要点:
-
登记:每个帧在进入接口后,若帧交换表中没有源的MAC地址,则要先记录该帧源的MAC地址及其对应的接口号。即使是从另一个交换机转发过来的也要记录转发用的接口号。 -
盲目转发:转发的时候,帧交换表中找不到目标MAC地址,就向所有接口都发送 -
若一个帧从某接口进入交换机,则绝不会再从该接口出交换机。
本题重点要理解PDU的概念
9、以太网交换机的生成树协议STP(Spanning Tree Protocol)
当两个交换机之间的链路发生故障,无法通信该怎么办?如何提高以太网的可靠性?
我知道我知道,添加一条冗余链路就可以提高以太网的可靠性了,就像这样:
但是,冗余链路会形成网络环路!网络环路有很多负面效应!就比如:一个广播帧,会被无限制套娃式传播。
所以引入生成树协议 STP。
-
本来,所有接口都正常的话,这个以太网有很多环路,根据STP协议计算出拓扑网络,人为阻塞一些接口,使得以太网没有环路的同时还能连通所有接口。 -
若某接口发生故障,则STP协议会重新计算拓扑网络。
重新计算后:
10、虚拟局域网VLAN
这仅仅是一个主机发了一个广播帧,全网就都要接收,太耗CPU了,哪能受的住这样折腾?而偏偏很多协议都会经常使用到广播。要想办法解决这个问题:分割广播域。
-
10.2 虚拟局域网VLAN(Virtual Local Area Network)
VLAN1的广播数据包不会传到VLAN2,VLAN2的广播数据包也不会传到VLAN1。
要实现虚拟局域网VLAN,需要交换机实现两个功能:
-
交换机能处理带有VLAN标记的帧,也就是IEEE 802.1Q帧 -
交换机的各端口可以支持不同的端口类型,不同类型端口对帧的处理方式不同
-
-
10.2.1 IEEE 802.1Q帧(也称Dot One Q帧)
-
扩展MAC帧格式,插入4字节VLAN标记,最后12比特为VLAN标识符VID,标志该帧属于哪个VLAN -
主机处理不了802.1Q帧,主机收到带有VLAN标记的帧直接丢弃
-
Access端口只能接收未打标签的帧,发送VID与PVID相同的帧
利用Access端口处理帧的特性,就能实现划分VLAN2 与 VLAN3 两个广播域:
发送:
-
VID = PVID:去标签发 -
VID !=PVID:直接发
接收:
当两个相连Trunk的PVID相等时,Trunk的特性使得帧经过Trunk后不改变其VID的值。
Trunk端口能转发和接收各种VID的帧。
Hybrid相比于Trunk只增加了去标签列表这一个特性。
隔离两个主机,要保证任何一方的PVID值都不出现在对方的去标签列表中,以便使对方收到带标签的帧,然后对方就识别不出来了。
|