(*长期更新)软考网络工程师学习笔记——Section 5 数据链路层
Posted 晚风(●•σ )
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(*长期更新)软考网络工程师学习笔记——Section 5 数据链路层相关的知识,希望对你有一定的参考价值。
一、数据链路层的定义
数据链路层是在物理层的基础上
向网络层
提供服务,将源主机物理层
传来的数据可靠地传输至相邻结点目标机网络层
。
在数据链路层上,其处理的数据单位是数据帧
,可以说数据链路=物理链路+必要的通信协议。
数据链路层的三个基本问题是:封装成帧
、透明传输
和差错检测
。
这里简单说明这三个基本问题,封装成帧是在一段数据的前后分别加上首部和尾部,从而构成一个帧,使能根据标记从收到的比特流中识别开始和结束;透明传输是指,数据链路层对传输的数据来说是透明的,即任何比特组合的数据,都能无差错地通过数据链路层;差错检测是通过循环冗余检验(CRC)进行检错。
二、海明码、循环冗余校验码
(一)循环冗余校验码
循环冗余校验码,只能检错,而不能纠错
,其码距>1
。
(二)海明码
码字由包含数据位和校验位
的n位单元组成,海明码距
是两个码字之间不同的二进制位个数
,而编码系统的码距是整个编码系统中两个码字的码距最小值
。
海明码
是个多重奇偶检错系统,多重奇偶检错
即原来信息+附加奇偶校验位,它具有检错和纠错
的功能,所以码距≧3
。
(三)海明码的校验位数
海明码的校验位为k,信息位为m,则m+k+1≦2^k,则
①确定校验位长
先看信息位长,即m的位长,解得k的最小值。
②CRC校验码的计算
添0,即最高阶码,在原始信息后添加相应的最高阶码3,即得到新信息串。
③利用模2除法计算
模2除法(异或,即同为0,异为1),用对应的G(x)位除之前的新信息串,从而得到长度为r位的余数。(当余数不足r时,在余数左边用相应的0补齐)
④将余数添加到原始信息
⑤CRC校验
接收方通过使用多项式G(x)来除,当余数为0时,则表示信息无误(收发方都需使用相同的生成多项式)。
三、点对点协议(PPP)
点对点协议是一种在点到点链路
上封装网络层协议信息
的方法,同时它也定义了可扩展的链路控制协议(LCP)
,通过使用验证协议磋商
在链路上传输网络层协议前验证链路的对端,另外PPP协议能够进行差错检测
,它只检错不纠错,对接收端收到的帧进行检测,并立即丢弃有差错的帧。
(一)点对点协议的组成
点对点协议有三个主要的组成:
1、在串行链路
上封装数据帧
。
2、建立、配置和测试数据链路链接的LCP协议
。
3、建立、配置不同网络层协议的一组网络控制协议(NCP)
。
(二)点对点链路上的通信
首先在建立PPP链路的一端发送LCP包
来配置数据链路
,建立后,在进入网络层协议前,PPP协议提供可选择的验证阶段,其中有密码验证协议(PAP)和挑战握手验证协议(CHAP)。
1、密码验证协议(PAP)
PAP验证协议,使用明文
身份验证,无保护措施
,即仅通过使用2次握手建立身份验证(链路初始化时)
,然后不停地向一方发送ID/Password对给验证者一直到验证被响应或连接终止为止。
2、挑战握手验证协议(CHAP)
CHAP使用3次握手
验证,该验证不仅在链路初始化时使用,也可在其它任何时间都可以重复进行,它通过使用MD5和质询——响应机制
提供一种加密身份验证:链路建立完成后,首先验证者向对端发送一个challenge信息
,对端通过one-way-hash函数计算出的值来响应
这个信息,然后验证者使用自己计算的hash值校验响应值
,若两个值匹配,则验证通过,否则不通过。
(三)PPPoE协议
简单的来说,PPPoE是为宽带上网的主机使用的协议。
PPPoE通过以太网主机,经使用桥接设备,使以太网主机连到一个远端的接入集中器
上,其中远端的接入设备可对每个接入用户进行控制和计费
。
PPPoE协议的工作流程分为发现
和回话
两个阶段,发现是为了获得PPPoE终结端
(在局端的ADSL设备或其它接入设备上)的以太网MAC地址
,并建立唯一的ID。在发现阶段结束后会进入标准的PPP回话阶段
。
(四)高级数据链路控制(HDCL)
HDCL是面向比特的同步链路控制
协议,以0111 1110标志作为帧定界符号
,采用统一的帧结构进行同步传输。HDCL中有三种工作站,主站发送命令给其它站并控制数据流行动,从站响应主站命令并发送命令给其它站,复合站具有主站和从站的双重功能。
另外HDCL中的帧也分为三种:信息帧(I帧)、管理帧(S帧)、无编号帧(U帧)。
四、LLC和MAC
数据链路层分为两个子层,分别是LLC(逻辑链路控制层)
和MAC(媒体接入控制层)
,前者与硬件无关,实现流量控制
功能,而媒体接入控制层提供硬件和LLC层的接口
。
(一)逻辑链路控制层(LLC)
该子层向上提供四种不同类型的服务:
数据报服务,适用于点对点通信、广播通信、多播通信(组播通信)。
虚电路服务,适合传送很长的数据文件。
可靠的数据报服务,适合过程控制或自动化中信号的传输,只用在令牌总线网中。
高速传送服务,用于城域网中。
(二)媒体接入控制层(MAC)
MAC子层的主要功能是数据帧的封装/卸装、帧的寻址和识别、帧的接收与发送、链路的管理、帧的差错控制等等。
其的主要访问方式有CSMA/CD(IEEE 802.3)
、令牌总线网(IEEE 802.4)
和令牌环线网(IEEE 802.5)
三种方式。
1、IEEE 802系列协议
(1)IEEE 802.1系列
IEEE 802.1d是生成树协议(STP)
;
IEEE 802.1q是虚拟局域网(VLAN)协议
,它定义VLAN和封装技术以及定义了为以太网MAC帧添加的标签;
IEEE 802.1P是IEEE 802.1q的扩充协议
,定义了交换机与优先级相关的流量处理的协议;
IEEE 802.1s是多生成树协议(MSTP)
;
IEEE 802.1w是快速生成树协议(RSTP)
;
IEEE 802.1x是基于端口的访问控制协议(PBNAC),用于解决无线局域网用户的接入认证。
(2)IEEE 802.2系列
IEEE 802.2是逻辑链路控制(LLC),提供LAN(局域网)和MAC子层与高层协议间的一致接口。
(3)IEEE 802.3系列
IEEE 802.3是以太网规范
,定义CSMA/CD标准的MAC子层和物理层规范。
IEEE 802.3ab是一个传输介质为4对CAT-5双绞线、100m内达到1Gb/s传输数据的标准;
IEEE 802.3u是快速以太网
;
IEEE 802.3z是千兆以太网
,它定义了一种帧突发方式
,可以使一个站连续发送多个帧,该方式只适用于半双工模式
;
IEEE 802.3ae是万兆以太网
,只支持光纤传输,有两种连接,一种是以太网连接,称为LAN PHY,一种是SDH/SONET连接,称为WAN PHY,另外该标准只支持全双工模式
。
(4)IEEE 802.4:令牌总线网
。
(5)IEEE 802.5:令牌环线网
。
(6)IEEE 802.6:城域网MAN
,定义城域网的MAC子层和物理层规范。
2、IEEE 802.3规定的传输介质
传输介质使用[速率][传输速率]-[传输介质]
的形式来表示,传输速率
中可以是Base(基带)、Broad(宽带),传输介质
中可以是T(双绞线)、F(光纤)。
3、以太网V2的MAC帧格式(IEEE 802.3标准的MAC帧)
以太网V2的MAC帧格式由五个字段组成,前两个字段为分别为6字节的目的地址
和源地址
;
第三个字段是2字节的类型字段
,它即可表示数据字段长度(IEEE 802.3帧中称为长度字段),也可表示上层协议类型,以便把收到的MAC帧数据上交给上一层的该协议;
第四个字段是数据字段
,其长度在46-1500字节之间(以太网的最小帧长为64字节,是指从目的地址到校验和的长度),而当数据字段的长度小于64字节时,MAC子层会在数据字段的后面加入一个整数字节的填充字段
,以确保以太网的帧长不小于64字节;
第五个字段是帧检验序列FCS
,通过循环冗余检验(CRC)进行检验,FCS是添加在数据后面32位的循环冗余码。
实际上,传输媒体传送的还多8个字节,是因为在开始接收MAC帧时,适配器时钟未与到达的比特流达成同步,从而造成使传送的MAC帧无用。故为了实现位同步,从MAC层向下传至物理层时,还要在帧的前面加上8个字节,这8个字节由两个字段组成:
第一个字段是7字节的前导字段(前同步码)
,是1和0的交替码,通过调整时钟频率实现比特同步。
第二个字段是1字节的帧起始符字段
,固定格式为10101011,其前六位和前导字段的作用一样,最后两个连续的1通知接收端适配器接收MAC帧信息。
因为以太网上数据是以帧为单位进行传送的,各帧间有一定的间隙,接收端只需找到帧起始符字段,其后的比特流就都属于同一个MAC帧。
4、MAC地址
PC与外界局域网之间的连接是通过通信适配器进行的,适配器通俗的来说也就是网络接口卡NIC,也就是网卡,其上面装有处理器和存储器,适配器与局域网的通信通过电缆或双绞线以串行的方式传输,与计算机的通信是通过计算机主板上的I/O总线以并行的方式传输,另外由于两方的数据速率不同,适配器中还必须装有对数据进行缓存的存储芯片。
另外以太网的适配器有过滤功能,它只接收单播帧、广播帧和多播帧。
MAC地址,也称为硬件地址
,实际上也就是适配器地址或适配器标识符
,由48比特组成,前24位是厂商编号,后24位是设备地址。
五、CSMA/CD协议
(一)CSMA/CD的定义
CSMA/CD,载波监听多路访问/冲突检测协议是一种争用型介质访问控制协议
,用于解决访问冲突,其原理是发送前先监听信道是否空闲,若空闲,则立即发送数据,然后边发送边继续监听,若监听到冲突,则立即停止发送数据,等待一段随机时间
后再重新尝试。
载波监听表示在发送数据前检测总线中是否有数据发送,若有,则进入类似退避算法的程序,进而反复进行载波监听工作,若没有,则按一定的坚持算法决定任何发送,且以太网中规定了帧间最小间隔为9.6μs
,用作在接收下一帧前清理缓存;另外,多路访问表示多路计算机连在一根总线上。
CSMA/CD协议的通信效率受网络负载影响,当负载较小
时,通信效率高
,但当网络负载较大
时,发送时间增加,发送效率急剧下降
,所以CSMA/CD协议适合传输非实时数据
。
(二)坚持算法
坚持算法分为三类,分别是1-持续CSMA、非持续CSMA和p-持续CSMA。
(三)碰撞检测(冲突检测)
CSMA/CD协议采用边发送边监听
的方式,即碰撞检测,适配器在边发送的同时检测信道中信号电压的变化
,即若当信号变化幅度超过一定限度,则认为总线上发送冲突,冲突检测最长时间为2倍的总线端到端的传播时延(2τ),这里的2τ称为争用期
,也称为碰撞窗口
,经过该期则认为不会出现碰撞。
而当发生碰撞时,发送数据的站除了立即停止发送当前数据,还需发送32bit或48bit的人为干扰信号
,称为强化碰撞
,从而所有的站都会收到阻塞信号(连续几个字节的全1)。
以太网规定10Mb/s以太网(传统以太网)的最小帧长为64字节
,最大帧长为1518字节
,最大传输单元(MTU)为1500字节
,其争用期为51.2μs
,即可以传输512bit数据,即64字节;而千兆以太网(IEEE 802.3z)和万兆以太网(IEEE 802.3ae)的最小帧长均为512字节
。
当规定帧最小长度为64Byte时,只要小于64Byte的帧就被丢弃,则为无效帧,大于等于64Byte又一定能检测到是否发生碰撞(发生碰撞即中止发送,没有结束符的帧也会被丢弃)。
电磁波在1km电缆
中传播的时延约为5μs
,即5μs后下一站才能收到上一站的数据。
(四)退避算法
以太网使用退避算法中的截断的二进制指数退避算法
来解决发送数据的碰撞问题,它规定发生碰撞的站在信道空闲后不立即发送数据,而是推迟一个随机时间
再发送,基本退避时间为争用期2τ,当重传次数大于16次
,则丢弃该帧数据并汇报给高层。
截断的二进制指数退避算法的缺点是当网络负载越重时,其后退时间越长,没有对优先级进行定义,所以该算法不适合流式业务和突发性业务
,但在网络重负载下能够有效地化解冲突。
以上是关于(*长期更新)软考网络工程师学习笔记——Section 5 数据链路层的主要内容,如果未能解决你的问题,请参考以下文章
(*长期更新)软考网络工程师学习笔记——Section 2 数字传输系统
(*长期更新)软考网络工程师学习笔记——Section 17 交换技术原理
(*长期更新)软考网络工程师学习笔记——Section 13 Linux网络配置命令
(*长期更新)软考网络工程师学习笔记——Section 6 网络层上篇