数据链路的定义
链路:计算机网络中相邻节点的一段物理线路。
数据链路:计算机网络中节点到节点相邻的一段物理路线加上控制在这些路线上传输数据的协议。
数据链路层解决的问题
对于计算机网络里面的每一层,其实都是为了解决某一个层面的问题而设计出来的,数据链路层也一样:由于物理层只解决了信号流在物理媒介的传输问题,而数据链路层就在它之上,解决如何在链路这一个层面上实现数据的传输。
数据链路的种类
计算机网络的数据链路主要分为两种:1、对点网络,2、广播式网络。点对点就是两个主机加一条物理通道,而广播式也可以理解为一对多和多对多的通信网络。
-----------------------------------------------------------------------------------------------------------------------------------
1、点对点数据链路
点对点的数据链路所采用的链路层协议是:PPP(POINT-To-POINT)。该协议的目的是在链路上实现点对点数据的传输,有三个特点:a、将数据封装成帧,b、实现透明传输,c、实现比特差错检测。也就是说,PPP协议在物理层之上,使得数据的传输又增加了这三项功能,确保了数据在相邻节点传输更加可靠。具体三个特性简单介绍:
封装成帧:因为在物理层上的数据传输都是以比特流形式传播(10010010),所以在链路层方面,PPP将其封装,成为一个一个数据块,也就是帧。
透明传输:所谓透明传输也就是,上一层如IP传下来的数据对于数据链路层来说是透明的,也就是IP层的任何数据都被数据链路层看为一个黑匣子,对与数据链路层来说都是透明的。数据链路层只需要将数据传送出去即可,不理会数据的意思。
差错检查:数据链路层的差错检测是针对比特错误而进行的,对于任何出现比特错误的帧,数据链路都会将其丢弃。。
PPP协议的帧格式
--------------------- ------------------ -------------------------------------------------------------------------------------------
2、广播式链路
广播式链路就是指代局域网链路,它的物理布置通常是总线型,如下:
由于是在局域网中通信,采用的是广播方式,也就是说主机发出的每一个数据,在这个局域网络里面的所有主机都可以接收得到。所以在这种链路中传播数据,要解决的问题比PPP协议中的问题还要多。
CSMA/CD协议
这个协议是为了使数据在广播式链路中得到正确传输而设定的,其主要提供的功能是:多点接入,载波监听,碰撞检测。
多点接入:允许任意计算机随时连接到总线上,而不对整个网络的运行产生负面的影响。
载波监听:因为在局域网中,同一个时间里面,只允许一台主机占据总线来进行数据传播,所以每个主机在发送数据之前都必须对总线的占用情况进行检测。
碰撞检测:用于检测当本机在发送数据时,是否有其他主机也在发送数据,以确保只有一台主机占据总线。
CSMA/CD协议确保了数据在广播链路的正确传输。
MAC层
我们常常将广播式链路层成为MAC(Medium Access Control)层。在MAC层上实现数据传播是通过CSMA/CD协议进行,而MAC层也有自己的帧的格式。大概如下:
数据链路层(Data Link Layer)在物理线路上提供可靠的数据传输,使之对网络层呈现为一条无差错的线路,本层所关心的问题包括以下几方面。
◆物理地址、网络拓扑。
◆ 组帧:把数据封装在帧中,按顺序传送。
◆ 定界与同步:产生/识别帧边界。
◆差错恢复:采用重传的方法。
◆流量控制及自适应:确保中间传输设备的稳定及收发双方传输速率的匹配