数据链路层
IEEE802
802标准集的划分:
- 802.3针对整个CSMA/CD(载波监听多路访问/冲突检测)网络
- 802.4针对令牌总线网络
- 802.5针对令牌环网络
- 802.2定义以上三种帧的通用部分
以太网帧
以太网帧分为Ethernet II 和 802.3帧,两者的帧格式类似,不同点在于前者定义的是 2 字节的类型,后者定义的是 2 字节的长度

前序字段定义帧的开始并便于所有接收器同步,确保接收端能够正确解析后续的帧数据,并保证用于错误检测和恢复操作的时间间隔不超过 9.6ms帧起始定界符字段仅出现在802.3帧中,作为前序字段的延续,1B 的长度中前 6b 是交替的 1 和 0,最后 2b 为 11 ,中断了同步模式并提醒接收后面跟随的是帧数据,当控制器将接收帧送入其缓冲器时,前序字段和帧起始定界符字段均被去除;当控制器发送帧时,它将这两个字段作为前缀加入帧中目的地址字段为 6B ,在 802.3 帧中支持 2B 长度的目的地址,源地址字段相同类型字段存在于 Ethernet II 帧中,用于标识数据字段中包含的高层协议,这个字段在802.3 帧中被替换为长度字段,因此两种帧不能兼容长度字段存在于 802.3 帧中定义了数据字段包含的字节数,这一字段可以区分两种以太网帧,因为数据字段的最大长度为1500字节,所以超过十六进制数05DC的值说明它不是长度字段(IEEE802.3). 而是类型字段(Ethernet II)校验序列字段(FCS)用于存放循环冗余校验(CRC)码,用于错误检测- 以太网最小帧长度为 64B ,意味着每个数据字段的最小长度为 46 字节,除了吉比特以太网(GbE),在如此高的速率下原来的 802.3 标准不可能提供足够的帧持续时间使电缆长度达到 100 米,于是对于这种情况将以太网最小帧长扩展为512字节
以太网协议和802.3是如何兼容的?
分辨Ethernet II 和 IEEE802.3 帧的方法是看类型(TYPE)字段的值,因为IEEE802.3帧中这个位置为帧长度,一般小于1500,而在Ethernet II 中表示类型,值大于1500,所以如果小于1500则为802.3帧,大于1500则为Ethernet II 帧
FCS校验过程
- 在发送端,网卡首先计算从目标MAC地址字段到数据字段之间的
循环冗余校验码(CRC),并将其附加到以太网帧的末尾FCS字段,长度为4B - 当接收端收到该帧后,会重新计算从目标MAC地址字段到数据字段的内容的
CRC值,并将这个新的CRC值与接收到的FCS字段进行比较 - 如果两个
CRC值相同,则认为帧没有在传输过程中发生错误,可以正常处理,否则表示帧在传输过程中发生了错误,接收端将丢弃该帧并可能通知发送端重发
MAC地址
INFO
MAC(硬件地址)由 48 比特长,12 位的 16 进制数字组成,从低位向高位看,0 到 23 位是厂商向 IETF 等机构申请用来标识厂商的代码,也称为“编制上唯一的标识符”,地址的 24 到 47 位由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号,其中第 40 位是组播地址标志位
广播MAC:
广播MAC是向局域网上的所有设备发送数据,以太网中广播MAC地址通常表示为FF:FF:FF:FF:FF:FF,广播会产生大量的流量,影响网络性能,通常在ARP请求和DHCP请求中使用;组播MAC相比与广播MAC可以定义更小的传播范围,允许从一个数据源发送到指定的一组接收者,可以避免产生较大的网络负载
组播MAC:
组播IP的前四位为1110表示这是一个组播地址,剩下的28位用于标识具体的组播组,组播MAC的前24位固定为0x01005E,第25位为0,剩下的23位为组播IP的低23位,故28位中的高5位发生了丢失,意味着有32个不同的组播IP地址会映射到同一个组播MAC上
11-22-33-44-55-66是不是一个正确的MAC地址?
11-22-33-44-55-66不是一个正确的MAC地址,因为第一字节0x11 = 0001 0001 最后一位是1,表示组播地址,而组播MAC的要求是前24位固定为0x01005E,第25位为0,自相矛盾,故不正确
CSMA/CD
INFO
CSMA/CD 采用 IEEE 802.3 标准,应用在数据链路层,发送数据前先监听信道是否空闲,若空闲则发送数据,发送数据时监听信道,发现冲突立即停止,并通过退避算法等待一个随机时间后再监听信道是否空闲
它的缺点是各终端地位平等,没有优先级机制,在网络负载大的时候发送时间大幅增长导致效率急速下降
冲突的检测时间只要 >= 最远两个站点的争用期即可保证不会发生冲突,没有必要在数据传输的过程中一直检测
当出现冲突时,站点立刻发送特殊阻塞信息(连续几个字节的全1,一般为32-48位)来通知其它站点,减少造成新冲突的可能性
X-坚持的CSMA算法:
1坚持的CSMA:线路忙,继续侦听;不忙时,立即发送;提高信道利用率,增大冲突
p坚持的CSMA:线路忙,继续侦听;不忙时,根据p概率进行发送,另外的1-p概率为继续侦听(p是一个指定概率值);有效平衡,但复杂
二进制指数退避算法
记k为冲突次数,从 2^k-1中随机取一个数乘以争用期即为退避时间,当k增加到16时,就发出错误信息
CSMA/CA
INFO
在802.11无线局域网协议中冲突的检测存在 “Near Far” 现象,靠近基站的信号会比远处的信号更强,从而导致远处信号被掩盖。所以 CSMA/CA 在送出数据前,监听媒体状态,等没有人使用媒体,维持一段时间后,再等待一段随机的时间后依然没有人使用,才送出数据
送出数据前,先送一段小小的请求传送报文RTS : Request to Send给目标端,等待目标端回应 CTS: Clear to Send 报文后,才开始传送
RTS和CTS帧的长度分别为 20B 和 14B ,数据帧则最长可达2346字节,相比之下开销很小,但是由于增加了开销以及额外的等待时间,802.11 总是比以太网稍逊一筹
