数据链路层从网络层接收分组,将其封装在帧结构中传输。每个帧结构包含一个帧头、净荷和帧尾。
  
    数据链路层为网络层提供服务,将数据从源机器的网络层传输至目的机器的网络层。数据链路层提供的服务可以分为3种:
    1.无确认的无连接服务,适用于比较可靠的信道,如以太网,
    2.有确认的无连接服务,适用于不太可靠的信道,如无线网,
    3.有确认的有连接服务,包含建立连接、传送数据、释放连接,保证每个数据帧都按照编号的顺序被正确接收,并且只接收一次,相当于为网络层进程提供了一个可靠的位流。
   
    当一个数据链路层的帧到来时,首先硬件检查是否有错,如果没有错误则将它递交给数据链路层软件,数据链路层软件检验它是否是期望得到的帧,如果是则将帧的净荷递交给路由软件进行选路,路由软件选择正确的输出线路,并且将分组向下交给数据链路层软件发送出去。

  • 成帧机制
    物理网络只传送位流,所以数据链层必须提供相应的成帧机制,从连续不断的位流中提取帧的边界标识(起始、结束位置),形成正确的数据帧。包含以下四种办法:
    1、字符计数法
    2、字符填充分界符法,转义字符
    3、位填充分界标志法,开始结束时的特殊比特流为01111110,每五个1填充一个0
    4、物理层编码违例法
  • 错误控制
    采用确认机制,保证帧正确传送。
    采用定时器应对硬件错误,为帧提供序列号保证数据帧不被重复存储。

(参考:计算机网络第四版 Andrew S.Tanenbaum)