一、数据链路层的定义
数据链路层是在物理层的基础上向网络层提供服务,将源主机物理层传来的数据可靠地传输至相邻结点目标机网络层。
在数据链路层上,其处理的数据单位是数据帧,可以说数据链路=物理链路+必要的通信协议。
数据链路层的三个基本问题是:封装成帧、透明传输和差错检测。
这里简单说明这三个基本问题,封装成帧是在一段数据的前后分别加上首部和尾部,从而构成一个帧,使能根据标记从收到的比特流中识别开始和结束;透明传输是指,数据链路层对传输的数据来说是透明的,即任何比特组合的数据,都能无差错地通过数据链路层;差错检测是通过循环冗余检验(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)
点对点协议(PPP)是一种在点到点链路上封装网络层协议信息的链路层协议,它提供全双工操作,同时它也定义了可扩展的链路控制协议(LCP),通过使用验证协议磋商在链路上传输网络层协议前验证链路的对端,PPP协议能够进行差错检测,可以有效地进行错误检测,不过它只检错不纠错,对接收端收到的帧进行检测,并立即丢弃有差错的帧。
(一)点对点协议的组成
点对点协议有三个主要的组成:
1、在串行链路上封装数据帧。
2、建立、配置和测试数据链路链接的LCP协议。
3、建立、配置不同网络层协议的一组网络控制协议(NCP)。
(二)点对点链路上的通信
首先在建立PPP链路的一端发送LCP包来配置数据链路,建立后,在进入网络层协议前(PPP支持多种网络协议,比如TCP/IP、NetBEUI等等),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子层和物理层规范。
(7)IEEE 802.11系列中:
IEEE 802.11a的最高速率为54Mbps;
IEEE 802.11b的最高速率为11Mbps;
IEEE 802.11g的最高速率为54Mbps;
IEEE 802.11n的最高速率为300~600Mbps。
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位是设备地址。
五、虚拟局域网(VLAN)
虚拟局域网是根据管理功能、组织机构或应用类型对交换局域网进行分段形成的逻辑网络,它于物理局域网有相同的属性。
1、每一个VLAN都是一个逻辑网络,发往VLAN之外的分组必须经过路由器进行转发,同时,任何交换端口都可以分配给某个VLAN。
2、属于同一个VLAN的所有端口构成一个广播域,各个VLAN属于不同的广播域,从而防止广播风暴。
注:一个新的交换机是配置了VLAN的,是默认的VLAN1,如下在eNSP中通过相关命令,查看交换机的VLAN情况:
六、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次,则丢弃该帧数据并汇报给高层。
截断的二进制指数退避算法的缺点是当网络负载越重时,其后退时间越长,没有对优先级进行定义,所以该算法不适合流式业务和突发性业务,但在网络重负载下能够有效地化解冲突。