第三章 数据链路层
数据链路层在五层体系结构中处于第二层
链路层的任务是,把下面不可靠的物理层(信道)改成相对可靠的逻辑信道,把网络层提供的数据封装成数据帧交给物理层进行传递。
透明传输问题:不要因为封装成帧导致误认为是数据首部或者尾部。
差错检测问题。
乱序和丢失不归链路层管。
1.数据链路层的简单模型
a)层次结构:主机、路由器都需要经过链路层(还有物理层、网络层)
b)数据流通:向上流动:层层去头;向下流动:层层加头。因为交换设备左右的网络是多种不同类型的,需要转换符合相同的类型。
链路层:虚通信。对等层进行虚通信。不同链路层可能采用不同的链路协议,因此不断封装成数据帧。
2.两种类型
a)点对点信道,即一对一
b)广播信道,一对多,必须使用专用的共享信道协议来协调这些主机的数据发送。
SS3.1 数据链路和帧
1.链路:
a)一条无源的点到点的物理线路段,中间没有任何其他的交换节点
b)一条链路只是一条通路的一个组成部分
c)或物理链路
2.数据链路:
a)把实现控制数据传输的协议的硬件和软件加到链路上就构成了数据链路
b)或逻辑链路
3.链路层的协议数据单元叫数据帧,网络层叫数据报
4.封装成帧:在一段数据的前后分别添加首部和尾部,构成一个帧
a)首部和尾部的一个重要作用是进行帧定界(确定帧的界限)
b)最大传送单元MTU:规定了所能传送的帧的数据部分长度上限。
c)帧开始符:SOH
d)帧结束符:EOT
e)不同链路层SOH和EOT有不同的组合方式
5.透明传输:如果数据的部分恰好出现了SOH或者EOT,会导致接收方接收到错误信息。
a)字节填充或者字符填充方法解决透明传输问题:发送时候在容易造成误导的EOT和SOH前加ESC进行转义(若恰好要传ESC EOT/SOH,则在前面再加ESC进行转义),在接收时候删除转义的ESC使数据恢复正常。
6.差错检测:传输过程中可能产生比特差错:1变成0,0变成1
a)存在多位比特错和一位比特错等。误码率BER:一段时间内,传输错误的比特所占传输比特总数的比率。
b)为了保证不出错,在数据后添加检错码(代价:降低通信效率)
i.奇偶校验:在前面或者后面加一个校验位使1的个数为奇数个或者偶数个,检测能力有限。
ii.循环冗余码CRC:(需要会计算)除数事先约定是四个bit位,被除数末尾加上3个0(比除数少一位),然后模2除法,按位进行异或,得到最终三位即为CRC循环冗余码。(FCS:帧检测序列,即带冗余码的数据)
循环冗余码的检测:FCS对约定的四位数据进行按位异或(与上面相同的计算),最终得到三位是0即符合检测。
iii.CRC-16:用于磁盘检测(17位约定码,16位CRC)
iv.CRC-CCITT:用于X.25协议(17位约定码,16位CRC)
v.CRC-32:WINRAR检测(33位约定码,32位CRC)
c)无差错≠可靠
i.可靠传输:数据链路层发送什么,最后就得到什么
ii.无差错传输:
1.比特差错
2.传输差错:帧丢失、帧重复、帧失序
无比特差错不等于无传输差错,要在CRC检验的基础上,增加帧编号、确认和重传机制。