数据链路层在不可靠的物理介质上提供可靠的传输,对应的连接设备:网桥、交换机。
职责:链路管理,封装成帧,流量控制,差错控制,透明传输,寻址。
数据链路层概述
数据链路层为网络层提供服务:
无确认的无连接服务
有确认的无连接服务
有确认的面向连接服务
基本服务:
将一个节点的网络层接收来的数据帧,无比特差错地传输到相邻节点的网络层。
信道类型
点对点信道:
这种信道使用一对一的点对点通信方式,在点对点的专线上通信,不会产生冲突。
广播信道:
这种信道使用一对多的广播通信方式。
广播信道上连接的主机很多,会产生冲突,因此必须使用共享信道协议来协调这些主机的数据发送。
链路与数据链路
链路:
是一条点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
数据链路:
除了物理线路外,还必须有通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现今最常用的方法是使用适配器(即网卡)来作为实现这些协议的硬件和软件:
一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层传输的是帧
封装成帧的目的:
能从物理层收到的比特流中识别各帧的开始和结束。
数据链路层就像一个数字管道,而在这条数字管道上传输的数据单位就是帧。
数据链路层帧格式
以太网MAC层的MAC帧格式
FCS:帧校验
从层次上看数据的流动
仅从数据链路层观察帧的流动
数据链路层解决的基本问题
封装成帧:
将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
透明传输:
帧中有首部和尾部,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。
需要在数据中出现首部尾部相同的内容前面插入转义字符。
如果需要传输的内容正好就是转义字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。
这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
差错控制:
使用了循环冗余检验(CRC)来检查比特差错。