个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【计算机网络】
本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌
目录
一、数据链路层概述
数据链路层在网络层体系结构中的地位:
主机拥有计算机网络中的各个层次,而交换机只有网络层、数据链路层,物理层。如下:
各设备通过物理层下面的传输媒体进行互连。
主机H1向主机H2发送数据:主机H1将待发送的数据逐层封装后,通过物理层将构成数据包的各比特转换电信号并发送到传输媒体;数据包进入路由器后,由下往上逐层解封到网络层,路由器根据数据包的目的网络地址 和自身转发表 来确认数据包的转发端口 ;然后从网络层向下逐层解封数据包,让后再通过物理层将构成数据包的比特转换成电信号后发送到传输媒体;最后,数据包最终到达主机H2时,由下往上逐层解封,最终解封出H1发送的数据。
但我们专门研究数据链路层的问题时,在大多数情况下,我们只可以只关心数据链路层而忽略网络体系结构中的其它层,或者我们可以把它想象成数据包只在数据链路层之间从左向右沿水平方向进行传输。
二、链路和数据链路
从数据链路层来看,主机H1到主机H2的通信可以看成是在四段不同的链路上的通信组成的,如下图:
要想在链路上进行数据的传输,仅仅有链路 是不够的,还需要一些通信协议来控制这些数据的传输,如果把实现这些协议的硬件和软件加到链路上,这样就构成的数据链路 。在数据链路上传输的数据包称为帧,所以数据链路层是以帧为单位进行传输和处理数据的。
下面我们来看数据链路层的三个重要问题:封装成帧、差错检测、可靠传输。
三、封装成帧
两台主机通过一段链路互连,并且两台主机都会对所发送或接收的数据包进行五个层次的封装和解封。
下面我们将通过上面这个例子来解释什么是封装成帧。
首先,发送方将待发送的数据通过应用层封装成应用层协议数据单元,然后交给运输层,如下:
然后运输层为其添加运输层写协议首部,使之成为运输层协议数据单元,然后交给网络层,如下:
然后网络层为其添加网络层协议首部,使之成为网络层协议数据单元 ,然后交给数据链路层,如下:
最后 ,数据链路层为网络层协议数据单元添加数据链路层协议首部(简称帧头) ,还要给其增添一个帧尾 。这里我们将数据链路层给网络层协议数据单元添加帧头和帧尾的过程称为封装成帧
。
- 添加帧头和帧尾的目的:为了在数据链路上以帧为单元来传送数据(也就是为了实现数据链路层本身的功能)。
比如下面是一个以太网版本2 的MAX帧格式 :由帧头 、帧尾 、上层交付的协议数据单元 组成。
四、差错检测
发送方将封装好的帧通过物理层发送到传输媒体,帧在传输过程中遭受干扰后可能会出现误码(发生了比特反转,即0变1或者1变0):
现在有一个问题:接收方如何判断帧在传输过程中出现了误码,这可以通过检测码
来发现。发送方在发送帧之前会基于待发送的数据和检测算法计算出检错码
,并将其疯转在帧尾。如下图:
比如,以太网版本2的MAC帧的帧尾,就是4字节的帧检验序列FCS字段,要写入该字段的内容,即检错码,如下图:
接收方主机收到检错码和检错算法就可以判断出帧在传输过程中是否出现了误码。
五、可靠传输
接收方主机收到有误码的帧后,不会接收该帧反而会将其抛弃。
- 如果数据链路层向其上层提供的是不可靠服务,此时丢弃也就丢弃了,并不会在有更多的措施。
- 如果数据链路层向其上层提供的是可靠服务 ,那么就需要其它措施来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本。换句话来说,尽管误码不能够完全避免,但是如果能够实现发送方发送什么,接收方就能接收到什么,这就称为是可靠传输。
六、最后小结
封装成帧、差错检测、可靠传输是数据链路层中最重要的问题.。本文中要注意在介绍这三个问题的时候使用的是点对点信道的数据链路层来举例的。
而对于使用广播信道的数据链路层除了包含这三个问题外,还有一些其它需要解决的问题。
如图所示:主机A、B、C、D、E通过一根总线进行互连。主机A要给主机C发送帧,代表帧的信号会通过总线传输到总线上的其它主机。那么主机B、D、E是如何知道所接收到的帧不是它们的呢,而主机C又如何知道接收到的帧恰好是发送给自己的呢?解决方法:将帧的目的地址添加在帧中一起传输。
比如下图是以太网版本2的MAC帧格式,其首部的三个字段中有两个字段(目的地址和源地址字段 )和地址相关。
当总线上多台主机同时使用总线来传输帧时,传输信号就会产生碰撞。
信号碰撞这个问题是采用广播信道的共享式局域网不可避免的。
以太网使用的协调方法是使用一种特殊的协议CSMA/CD(载波监听多点接入/碰撞检测)
。
随着交换技术的成熟和成本的降低,具有更高性能的,使用点对点链路
和链路层交换机的交换式局域网
,如下图:
在有线(局域网)领域已完全取代了共享式局域网。那么,在这里,网络中的交换机又是如何转发帧的呢?另外,由于无线信道的广播天性,无线局域网仍然使用的是共享信道技术,例如
802.11局域网
采用的媒体接入控制协议是CSMA/CA(即载波监听多点接入/碰撞避免)
。它的工作原理又是怎样的呢?
本文到这里就结束了,希望友友们可以支持一下一键三连哈。嗯,就到这里吧,再见啦!!!