一. 数据链路层的作用
计算机用二进制表示信息,而实际的通信媒介处理的却是电压的高低,光的闪灭,电波的强弱等信号,把这些信号与二进制的0,1进行转换正是物理层的作用。数据链路层处理的数据不是单纯的0,1序列。而是把他们集合成一个叫做“帧”的块进行传输。链路层重在集合。
数据链路是网络传输中的最小单位,互联网被称为“数据链路的集合”。
二. 数据链路相关技术
MAC地址
(1)MAC地址用于识别数据链路中互联的节点
对于总线型网络,每个节点暂时获取所有目标站的帧,再跟据MAC寻址,如果是发给自己的就接收,如果不是发给自己的帧,总线型网络会丢弃,环路性网络回发送到下一个节点。数据链路层使用2种信道
(1)点对点信道:这种信道使用1对1点对点方式通信
(2)广播信道:这种信道使用一对多的广播通信方式数据链路和帧
(1)链路(link):从一个节点到相邻节点的一段物理线路,中间没有其他交换节点。
(2)数据链路(data link):链路 + 数据传输协议
(3)帧:数据链路层传输的基本单位数据链路层各种协议都要解决的3个问题
(1)封装成帧
i. 网络层的ip数据报,添加上帧首部,帧尾部后就构成了一个完整的帧。帧首部和帧尾部用来确定帧的界限。
ii. 每种协议都规定了帧数据部分的最大长度上限 --- 最大传输单元MTU(Maximum Transfer Unit)
iii. 当数据部分是ASCII码组成的时候,帧首部和帧尾部采用特定的帧定界符,均是不可打印的ASCII码字符。帧首部用SOH(start of header)01表示(00000001),帧尾部用EOT(end of transmission)04表示(00000010)。
(2)透明传输
透明传输是指,用户输入什么字符,就发送什么字符。当数据是一个图片等不可打印的0,1序列时,数据中往往会包含SOH或EOT,造成识别帧首尾位置错误,这时就需要在这些字0,1序列前面加上转义字符,这种方法称为字节填充/字符填充
(3)帧检错
i. 传输过程中产生的0,1差错称为比特差错
ii. 误码率(BER)
iii. 采用循环冗余校验CRC校验是否有比特差错
【注】:经过CRC检错纠错后,基本可以确定传输帧无比特差错。但无比特差错,不是无差错传输,数据链路层还是可能出现帧丢失,真重复,帧失序的错误。原先OSI模型中要求数据链路层提供可靠传输,所以在CRC基础上,增加了祯序号,确认重传等机制。但随着目前通信线路的质量提升,这种由于通讯线路造成的数据传输错误纪律大大下降,所以数据链路层不在提供无差错传输,而把这些功能转移到TCP协议实现。