3.1 数据链路层
数据链路层的三个重要问题:
封装成帧、差错检测、可靠传输
3.2 封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息
帧头和帧尾的作用之一就是帧定界
透明传输是指数据链路层对上层交付的传输数据没有限制,就好像数据链路层不存在一样
面向字节的物理链路使用字节填充(或称字符填充)的方式实现透明传输
面向比特的物理链路使用比特填充的方法实现透明传输
为了提高帧的传输效率,应当帧的数据部分的长度尽可能大些
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
3.3 差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错;1可能会变成0,而0也可能是变成1,这称为比特差错
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
循环冗余校验CRC
收发双方约定好一个生成多项式G(x)
发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
接收方通过生成多项式来计算收到的数据是否产生了误码;
检错码只能检测出帧在传输过程中出了差错,但不能定位错误,因此无法纠正错误;
要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
在计算机网络中通常采用检错重传方式来纠正传输中的出差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输还是不可靠传输
3.4.1 可靠传输的基本概念
3.4.2 可靠传输的实现机制----停止-等待协议SW
3.4.4 选择重传协议
3.5 点对点协议 PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
①对各种协议数据报的封装方法(封装成帧)
②链路控制协议LCP 用于建立、配置以及测试数据链路的连接
③一套网路控制协议NCPs 其中的每一个协议支持不同的网络层协议
3.6.1 媒体接入控制的基本概念
3.6.2 媒体接入控制—静态划分信道
3.6.3 媒体接入控制—动态接入控制—随机接入
3.6.4 媒体接入控制——动态接入控制——随机接入
总线局域网使用的协议:CSMA/CD
无线局域网使用的协议:CSMA/CA(载波监听多址接入/碰撞避免)
3.7 MAC地址、IP地址以及ARP协议
MAC地址是以太网的MAC子层所使用的地址;(数据链路层)
IP地址是TCP/IP体系结构网络层所使用的地址;(网络层)
ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;(网络层)