链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
要在链路上传输数据,仅有链路还不够,还需要协议通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
数据链路上传输的数据包叫帧,数据链路层以帧为单位。
接下来我们来看看数据链路层的三个重要问题:
首先看封装成帧:
我们给网络层交给数据链路层的IP数据报添加帧头和帧尾的操作叫做封装成帧。
再来看差错检测:
发送方将帧从数据链路层交给物理层,如果受到干扰传输过程可能出现误码。比特0可能变为比特1。
但是接收方如何知道传输过程出现误码呢?
- 检错码
发送方在发送数据之前,基于待发送的数据和检错算法得出检错码。并将其封装在帧尾。接收方接收之后,根据帧尾的检错码和检错算法就可以知道帧中是否出现误码。
再来看可靠传输:
接收方收到有误码的帧,不接受,直接丢掉。如何数据链路层向其上层提供的是不可靠的服务,那么丢弃就直接丢弃了。如果提供的是可靠的服务,那么久还要采取其他措施,让接收方收到本该收到的副本。
换句话说:误码是不能完全避免的,但是最终接收方接收到发送方发的,就叫可靠传输。
上面的我们都是基于点对点的数据链路层来讲的
还有一种使用广播信道的数据链路层,他还会有其它的问题。
首先就是寻址问题,我们可以在帧头中加上目的地址就知道是谁要接收
其次是两台主机如果同时发送数据,会有数据碰撞的问题。这个我们使用一种特殊的控制协议CSMA/CD协议。也就是载波监听多点接入/碰撞检测
随着技术发展,交换式局域网在有线传输方式已经取代了共享式局域网。
那么网络中的交换机又是如何转发帧的呢?
另外由于无线信道的广播天性,无线局域网仍然使用的是共享信道技术,例如:802.11局域网采用的媒体接入控制协议是CSMA/CA 碰撞避免协议。他的工作原理又是怎样的呢?
总结几大问题,后续介绍: