第三章.数据链路层
数据链路层使用的信道主要有点对点信道和广播信道.
主要解决的问题有 封装成帧 ,透明传输和差错检测.
封装成帧
封装成帧就是在网络层交下来的IP数据报的前后加上首部和尾部,从而确定帧的有效性。一般来说,IP数据报尽可能大,传输效率越高,但是每种链路层协议都规定了数据部分长度上限(最大传送单元MTU).
透明传输
由于首部开始符SOH和传输 结束符EOT可能会和数据部分的数据冲突,导致帧被错误认为丢弃,所以在数据部分出现控制字符都插入一个转义字符.这种方法称为字节填充或字符填充.
差错检测
现实通信链路都不会是理想的,传输过程中0可能会0变成1,1变成0,这叫
比特差错。在一段时间内传输错误的bit占所传输bit总数的比率称为
误码率BER。所以必须采用各种差错检测措施。目前在数据链路层广泛
使用循环冗余检验CRC(Cyclic Redunancy Check)
一个典型的CRC检验:
要发送的数据为M = 101001(长度k = 6),双方协定的除数P,n位冗余码 = M * 2^n(实际上
就是M后面加上n个0)/P,得到商Q和余数R(n位,比P少一位),这个余数就是冗余码。
注意的是这里的差错检测只是帧内的比特检错,对于 帧丢失,帧重复,
帧失序 这三种“出现传输差错”,应由网络层的可靠传输协议来修复。因此,在数据链路层使用CRC检验,能够实现无比特差错的传输,但并不是可靠传输。
使用广播信道的数据链路层
利用 集线器 和双绞线等形成的网络,可以进行一对多的通信,例如局域网。
适配器的作用
计算机与外界局域网的连接是通过通信 适配器(现在基本内嵌入主机,或者叫网卡) 。适配器上装有处理器和存储器,适配器和局域网通信是通过电缆或双绞线以串行传输方式进行,适配器和计算机通信是通过主板上的I/O总线以并行传输方式进行。因此适配器一个重要功能就是利用数据缓存的存储芯片,进行数据串行传输和并行传输的转换。
适配器接收和发送各种帧时不使用计算机的CPU,收到有差错的帧时就直接丢弃帧不必通知计算机,只有正确帧,就会使用中断来通知计算机并交付协议栈中的网络层。值得注意的是,计算机的硬件地址就在适配器的ROM中,而软件地址,即IP地址,则在计算机的存储器中。
CSMA/CD协议
早期的以太网是将许多计算机都连在一根总线上,因此在同一时间只能允许一台计算机发送数据(双向交替通信)。CSMA/CD协议就是通信两端通过碰撞检测(边发送边监听)来避免冲突。
扩展以太网
- 在物理层扩展以太网: 利用集线器连接计算机,使用光纤和光纤调制解调器扩展主机和集线器之间距离。
- 在数据链路层扩展以太网: 使用网桥,根据MAC帧的目的地址对收到的帧进行转发和过滤
交换机(交换式集线器,实际上是一种多接口的网桥)也是工作数据链路层。
网友评论