数据链路层概述
链路
(Link) :就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点数据链路
(Data Link):是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路- 数据链路层以
帧
为单位传输和处理数据。
数据链路层的三个重要问题
- 封装成帧、差错检测和可靠传输是数据链路层中最基本最重要的问题。下面的举例是:
使用的是点对点信道的数据链路层来举例的
。
封装成帧
如图所示,两台主机通过一段链路互连。两台主机都会对所发送或接收的数据包进行五个层次的封装或解封。
-
发送方将待发送的数据通过
应用层封装成为应用层协议数据单元
,然后交付给运输层, -
运输层为其
添加运输层协议首部
,使之成为运输层协议数据单元,然后交付给网络层。 -
网络层为其
添加网络层协议首部
。使之成为网络层协议数据单元,然后交付给数据链路层。 -
数据链路层给网络层协议数据单元
添加
一个数据链路层协议首部(帧头
),还要给其添加一个帧尾
。我们将数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作,称为封装成帧
。
添加帧头和帧尾的目的,都是为了在链路上以帧为单元来传送数据
,也就是为了实现数据链路层本身的功能。
差错检测
发送方将封装好的帧通过物理层发送到传输媒体。
帧在传输过程中遭遇干扰后可能会出现误码(也就是比特0可能变成了比特1,反之亦然)。但是。接收方茧机如何判断帧在传输过程中是香出现了误码呢?这可以通过检错码来发现。
-
发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。(以下烦人帧格式是:以太网版本2的MAC帧的帧尾,就是4字节的帧检验序列FCS字段,要写入该字段的内容,也就是我们所说的检错码。)
-
接收方主机收到帧后,通过检錯码和检错算法,就可以判断出帧在传输过程中是香出见了误码。
可靠传输
接收方主机收到有误码的帧后,是不会接受该帧的,将其丢弃。
-
如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施。
-
如果数据链路层向其上层提供的是可靠服务,那么就还需要其他措施来确保接收方主机,还可以重新收到被丢穿的这个帧的正确副本。
-
尽管误码是不能完全避免的,但若能
实现发送方发送什么,接收方就能收到什么
,就称为可靠传输
。
对于使用广播信道的数据链路层(享式局域网)
-
除了包含上面的三个问题外,还有一些其他需要解決的问题。
如下图所示:主机A,B,C,,D通过一根总线进行互连。主机A要给主机C发送帧,代表帧的信会通过总线传输到总线上的其他各主机。
那么,注解BDE如何知道所收到的帧不是发送给它们的,而主机C叉如何知道所收到的帧价恰是发送给自己的呢?
-
地址或者编址的问题,也就是将帧的目的地址添加在帧中一起传输。例如,这是以太网版本2的MAC帧格式,其首部中的三个字段中。有两个字段和地址相关。一个是目的地址字段,另一个是源地址字段
-
除了编址问题外,还有下面的这个问题。当总线上多台主机同时使用总线来传输帧时,传输信就会产生碰撞。这是采用广播信道的共享式局域网不可避兔的。
-
以太网采用的协调方法是使用一种特殊的协议CSMA/CD,也就是载波监听多点接入/碰撞检测。
-
-
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网,在有线(局域网)领域已完全取代了共享式局域网。
-
那么。网络中的交换机又是如何转发帧的呢?
-
另外,由于无线信道的广播天性,无线局域网仍然使用的是共享信道技术。
例如。802.11局域网采用的媒体接入控制协议是CSMA/CA,也就是载波监听多点接入/碰撞避兔。它的工作原理又是怎样的呢?
-
-