链路:从一个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点
数据链路:在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输
不同类型的链路,所用的通信协议可能是不同的:
·广播信道:CSMA/CD协议(如有同轴电缆、集线器等组成的网络)
CSMA/CD是载波侦听多路访问/冲突检测。使用了CSMA/CD协议的可以称为是以太网(Ethernet),传输的是以太网帧,以太网帧的格式有Ethernet V2标准等,为了检验正在发送的帧是否产生冲突,以太网帧至少要有64字节。交换机组成的网络已经支持全双工通信,不需要再使用CSMA/CD了,但是它传输的仍然是以太网帧。所以交换机组建的网络依旧可以叫做以太网。
·点对点信道:PPP协议(如2个路由器之间的信道)
数据链路层的3个基本问题:
·封装成帧
·透明传输
·差错检验
数据链路层--封装成帧
数据链路层的帧长由三个部分组成:帧首部+帧的数据部分+帧尾部
帧的数据部分就是网络层传下来的数据包,有最大传输单元MTU限制,以太网的MTU为1500字节
数据链路层--透明传输
帧是放在一条信道上进行传输的,为了区分信道上的每个帧,首尾需要加上符号
有的帧首部有帧开始符SOH,帧尾部有帧结束符EOT,数据部分一旦出现了SOH、EOT,就需要进行转义:待发送的帧在链路上进行传输的过程中,数据部分会用ESC进行字节填充,到达接收端后转义字符就被去掉。
数据链路层--差错检验
帧尾部除了有帧结束符还有FCS用来做差错检验,FCS=数据部分+帧首部计算得出,如果FCS校验不通过的话就丢弃这个帧
网卡:网卡就收到一个帧,首先会进行差错校验,如果通过就接收,不通过就丢弃。网卡属于二层设备、集线器属于一层设备、交换机属于二层设备、路由器属于三层设备。
在数据链路层上传递的时候,源IP和目标IP一直不变,但是源MAC和目标MAC会根据情况改变,这是因为帧的数据部分放的就是网络层传下来的源IP和目标IP,变得是封装部分首尾里的MAC地址。