罗泽兵 发表于 2024-4-15 08:39:56

04.第04节课第3章数据链路层

好同学们,大家好,今天呢,我们我来为大家讲解一下。计算机网络当中,数据链路层那么这样一个部分。数据链路层呢,它属于计算机网络的第一层。而数据联络链路层使用的信道呢?主要有两种类型,第一个呢是点对点形状。这种信道呢,使用一对一的点对点通信方式。第二个呢,是广播信道,

这种信道呢,使用一对多的广播通讯方式,因此呢。过程比较复杂。广播信道上连接的主机很多,因此呢,必须使用专用的共享信道协议呢,来协调这些主机的数据发送。在我们这个数据链路层这一章当中啊。啊,我们比较重要的内容呢,是数据链路层点对点信道和广播信道的这样一个特点。以及了这两种信道所使用的协议,那么就是我们的ppp协议以及了cma csma CD协议的特点。另外呢,

还有数据链路层三个基本问题。封装成真,透明传输以及呢差错检测。另外的重点呢,是以太网mac增的这样一个硬件地址。另外呢,还有适配器,转发器,集线器,网桥以太网交换机的作用,以及呢,适用场合。那么首先呢,我们来看一下。数据链路层。

他的简单的模型。首先呢,主机h1和主机h2进行通信。那么,主机h1呢?连接到我们的电,通过电话网呢?接入我们的网络当中。由路由器r1r2r3进行转发,在我们的各种各种网络当中进行转发。最终呢,找到我们主机的h1,然后呢,进行了信息的传输。那么,

我们来看一下。从层次上呢。来看数据的流动。那么,这样一个数据的流动呢?从数据链路从我们这样一个数据链路层从这样一个层次上来看,数据的流动呢?它其实呢?是应该是主题h1的。数据呢,传送到应用层。再传送到它的运输层。再传送到它的网络层。那么,再传送到它的数据链路层。

再传送到它的物理层。最后变成我们的电信号和光信号,在我们的数据。传输媒介上。比如说我们的。网线电缆。上面进行传送。这个时候呢。通过。路由器。r1的转发。将我们h1。传送过来的数据呢?首先。从r1路由器r1的物理。

传送到数据链路层,再传送到网络层。那么,再从r1的网络层呢,传送到电路层,再传送到物理层,那么这里呢?我们可以看到。在我们的网络当中。端系统。当中,比如说我们的主机h1和主机h2在我们的端系统,也就是说我们的网络的边缘部分当中。也就是说,我们的资源子网当中。

我们用到的呢,是网络层次的五层结构,比如说应用层,运输层,网络层,电路层和物理层。在我们端系统。资源子网当中。这个时候呢。我们用到的呢。是网络的五层结构。而在我们网络的核心部分。在我们网络的通信子网部分。在路由器当中。用到的呢,

只有网络的下三层,这里大家要弄清楚。在网络的核心部分,路由器当中呢,我们只使用了网络层次当中的下三层,也就是网络层,数据链路层和物理层这三部分。只有在网络的边缘部分,我们的端系统,我们的资源子网当中呢,才使用网络通信的这样一个五层协议的五层。层次的这样一个部分,五层的部分。在网络的核心部分,自通信子网和路由器当中,

我们使用的。是网络的下三层结构。那么,同样的,从路由器r1转发的信息呢?再通过r2转发,最后呢?再。再通过r3转发,最后传送到主机h2,主机h2的物理层呢?在收到这样一个信息后呢?把它传送给链路层,再传送给网络层,再传送给运输层,

最后传送给应用层,然后呢?传递给应用进程。这是我们从层次上呢来看,数据的流动。那么,我们如果仅从数据链路层观察帧的流动呢?那么我们可以看到。从h1到h2的通讯呢,可以看成由四段不同的链路层通信组成。比如说h1到r1r1到。到r2r2到r3r3到r2h2这四段不同的电路层呢,可能采用不同的数据,电路层协议。那么,

我们从路从只考虑数据呢?在路由数据链路层上的流动呢?那么是这样一个部分,但实际上呢,我们是通过网络的这样一个多层的,这样一个结构呢?来进行数据发送的这样一个方式。接下来我们看几个。定义链路是什么呢?链路是一条无圆的点到点的物理线路段。中间没有其他任何的交换节点,一条链路呢,只是一条通路的一个组成部分。数据链路呢,除了物理线路外,

还必须有通信协议来控制一些数据的传输。若把实现这些协议的硬件和软件加到。电路上呢,就构成了数据电路。那么,最常用的方法呢?是使用适配器就是网卡来实现这些硬件的协议的硬件和软件。那么,这里大家注意,我们的网络适配器呢?又称为网卡。那么,这里大家注意。一般的适配器功能呢,都包含了数据,

电路层,物理层次两部分的功能。我们数据电路层呢,传送的。协议数据单元呢,是真。那么大家我们在讲到这里呢,我们回顾一下。我们之前讲过的。物理层的。数他的这样一个传送的协议单元呢,是比特。这是我们的。协议数据单元的部分,那么今后呢?

我们还会讲网络层,运输层和应用层的这些部分。那我们点我们这样一个数据链路层。协议数据单元呢,是真。早期的数据通信协议规程叫做通信规程,因此呢,在数据链路层,规程和协议呢是同样的,这样一个含义。数据链路层呢?把网络层交下来的数据构成帧,发送到链路上。以及呢,把接收到的帧中的数据取出,

并交给上层网络层。在互联网中呢,网络层协议数据单元呢,就是IP数据报或称为I,或者称为数据报,或者称为分组。或者称为包,那么我们看一下这个图,我们的节点a它将IP数数据报了。发送到。将传递给我们的数据链路层。数据链路层呢,把它加上针的首部和尾部,那么构成一个针,然后呢?

再把它呢?放到物理层当中。那么,节点b呢?在接收到这样一个信息后呢?将物理层当中的信息呢?传输给我们的帧变成我们的帧。针呢,再去掉首部和尾部。将数据报了。传送给我们的网络层。那么,这是我们这样一个针的,这样一个部分。点对点吸引到。

数据电路层。在通信时的主要步骤呢?第一个节点a的数据链路层呢?把网络层加下来的IP数据报呢?添加尾部和守护封装成真。第二个节点a把封装好的帧呢发送给节点b的数据电路层。第三个节点b的数据链路层呢?收到的正无差错,则从收到的帧中呢?提取出IP数据包。交给上面的网络层,否则呢,丢弃掉这个帧。数据链路层呢,不必考虑物理层如何实现比特传入的细节。

那么我们可以好想象呢,是数据呢,沿着两个数据电路层水平的方向。把它发给对方,但实际上呢?我们还是呢,通过网络的层次呢,进行我们的发送和接收。我们数据链路层协议有多种,但是呢,有三个问题呢,是共同的。这三个基本问题呢,是封装成真。透明传输以及呢差错检测。

首先我们来看一下封装成真。封装成针呢,就是在一段数据的前后分别添加首部和尾部,这样就构成了一个针。接收端在物理层收,收到上交的比特比特流后呢,就能根据首部和尾部的标记。从收到的比特流中呢识别针的开始和结束。那么我们知道。分组交换的一个重要概念呢,就是所有在互联网上传送的数据呢,都以分组就IP数据报为传送单位。网络层的IP数据报呢?传到了数据电路层就成了真的数据部分,在真的数据部分前面和后面添上首部和尾部。

就构成了一个完整的帧。这样的针呢,是数据链路层的这样一个数据传输单元,一个针的针长等于针的数据部分,加上首部和尾部的长度。首部和尾部呢,最重要的一个作用就是真定界。就是确定针的界限。各种数据层链路呢,它协议呢,都对真首部和真尾部的格式呢,有明确的规定。但是每一种数据,电路层都规定了所能传送帧的数据,部分的最大长度上限最大长。

传送单元mtu。我们这个图上呢。那么就给出了针的手部和尾部的位置,以及呢针的数据。部分与mtu的关系,那么这里大家要注意mtu呢?就是。每一种是数据链路层协议呢规定的所能传送的帧的数据部分的最大长度。比如说最大传送单元mtu就是我们帧的这样一个封装成帧的部分。那么我们看一下。用控制字符进行真定界的这样一个方法,我们呢用?当数据呢,是可打印的AC库码组成的文本文件时呢?征订界呢,

可以用特殊的征订界符。当时当不可导那么。AC口码呢?是七位编码,一共可以组成28,128个不同的AC库码,其中可打印的AC库码呢,有95个。而不可控制的字符类有33个。那么,控制字符呢?s oh放在一帧的最前面,保持帧的首步的开始。另一个控制字符eot表示,帧的结束。

而这里大家注意,我们s oh呢和ut呢,只是控制字符的名称。他们的16进制编码呢,分别是零一和零四。那么s vh呢?和ut呢?并不是三个字,这样一个字分开的字符部分。当数据在传输过程中出现插座的时候呢,真地接符呢,那么就可以使用这样一个作用,假设在发送端尚未完成,一直出现出现了故障。中断发送,

但发送后呢,又恢复正常,于是呢,重新从头开始,那么。发送当前为发送完的帧。由于使用了帧定界符,那么帧很快呢,就知道前面收到的数据呢,是一个不完整的帧,只有帧首部开始fsh,没有传统节奏为ut。应当丢弃前面说到的数据呢,是有明确的帧进去s oh和ut的,因此这是一个完整的帧,

应当收下好吧。这是我们的针并线的方法。接下来我们看一下透明传输。由于帧的开始和结束的标记呢,使用了专门指明的控制字符,因此呢?所传送的数据当中,有任何八比特的组合呢,一定不允许呢,是真定。并切符的这样一个比特变吧。否则就会出现真命界的错误。比如说当传送的帧呢,是用文本文件编组成的,帧的时候其数据部分呢,

那么自然不会出现esh和ut这样的帧进行控制符。那么,比如说可见呢?不管从什么键盘上输入字符。我们都可以放在这样的帧中呢,进行排排排除过去,因此啊,这样的图传输呢,就是透明传输。当数据部分呢,是由非ac comma组成的文本文件。如果数据中的某个二进制的字节代码呢?恰好与s oh或ut这种控制字符一样。数据量层呢,就会错误的找到针的并线。

然后呢,把剩下的部分呢划分成一个。完整的帧。那么这样呢?把剩下的那部分数据丢弃,这部分呢,就找不到真缔结孔s oh,我们来看一下这个部分。我们比如说真开始部分是s oh。真的结束,本来呢,应该是u7的。但是,在数据部分呢?我们在数据部分呢,

我们出现了一个。字符与我们的节帧结束符ut是一样的。那么这个时候,我们就将。出现的这个ut了。认为是真的结束符。那么s oh到前面这个ut之间的这个部分呢?那么包包括我们的cus hut,它被认为是一个针。而这后面的这样一个部分呢,被针灸端当做无效针去掉丢弃。那么,我们的这样的。就是把部分针收下。把剩下的部分针呢丢弃了,

这样一个部分。这样的传输呢,明显就不是透明传输。因为当遇到数据中碰巧出现的字符ut呢,就传送不过去了。数据中的ut将被错误的接收为。并解释为传输结束的字符。因为呢,在其后面的数据找不到s oh接收端呢,当做无效的帧丢弃。这是我们的透明长时针部分。透明传输呢,它表示,一个实际存储呢,在事物的实际上好像呢,

不存在一样。在数据电子层传送透明数据呢?表示无论你使用的数字传输,100%的这样一个透明的。情况呢?那么传送的这样一个方式。那么就是说,在数据量时呢,无论以什么样的比特传输,那么都能够呢?把这样一个。照原来的方式,原来的这个。形式照原样呢,没有差错的,

通过这样一个数据链路层,因此呢,对所传送的数据来说。这些数据呢,就看不见数据链路层有什么妨碍数据产生的东西,因此呢,数据链路层对这些数据来说是透明的。那么我们再给大家解释一下透明传输这样一个概念,比如说透明传输呢?我们在传送的时候呢?我们传送的这样一些部分呢?他都能够按照他的这样一个形式,这样一个这样一个。方式呢,进行一个。

连接的这样一个传输部分,就是结合的这样一个传输部分,那么就是这样一个。协调的这样一个传送部分,那么都能够来进行一个传输连接传输。啊,这是我们的透明传输。为了解决透明传输问题了,就必须设法了。是数据中可能出现的字符s oh和ut在接收端呢。不被解释为控制字符。那么,具体方法呢?是发送端的数据,电路层在数据中出现控制字符s oh或右击前面的。

插入一个转义字符。esc.而在接收端的数据链路层呢?再把数据送往网络前之前删除这个插入的转义字符。这种方法呢,称为字节填充或者说字符填充,如果转义字符呢?也出现在数据当中,那么解决的方法呢?也是在转义字符的前面呢插。加入一个转义字符。因此,当接触端收到两个转义字符时,就删除掉前面的一个。那么,

这是我们的转义字符的部分。比如说我们用字符填充法。字节填充法解决透明传输的问题。比如说我们有帧开始符s oh和帧结束符ut,那么在其中的数据部分呢?也有与帧的开始符与。结束符和我们的转义字符一样的这些字符。那么我们这个时候呢,在我们的数据部分的这样一个转这样一个字符之前呢?在这样一个开始,符定界符以及呢,我们的结束符之前呢加上。一个转义字符esc,那么我们的ut呢?就变成es cut。

s vh要变成esc。ut.esc啊,表示我们的esc esc。s oh呢表示,我们的这样一个esc就是用用se sch oh来表示啊。那么这样呢,我们就能够通过自己填出。自觉填充来。解决我们的透明传输的这样一个问题,那么这就是我们的透明传输,那么大家要注意,比如说。在我们的开帧的定界符之前。加上一个转义字符esc,

如果我们的数据中呢,有esc就在esc的前面呢?加上一个esc,那么这是我们解决透明传输的方式。接下来我们看一下差错检测,在传送过程中呢,可能会发生比特差错。一可能会变成零零,也可能变成一,这叫做比特差错,比特差错呢,是传输错误的一种。那么所说的差,那么我们呢?在传送过程中呢?

比特。占所传输比特种数的比率呢?称为误码率率。当误满率呢,为十的负十次方时呢,表明传送十的十次方个比特呢,就会出现一个比特的差错。误码率呢?与信噪率也有很大的关系,如果提高信噪比,就可以使误码率减小。那么,实际的通信电路呢?并非是理想的。那么这个时候了。

他不可能使不马力上降到零。因此呢,为了保证数据传输的可靠性,在计算机传输数据时,应采用各种插座检测措施。目前呢,在数据电路层广泛采用了循环容易校验的检测,测速检测技术。那么,我们来看一下。循环容易校验。它的过程。在发送端。先把数据呢。划分为主。

假设每组k个比特。然后呢,带传送的一组数据呢?是m。对吧,现在k=6。我们在m的后面呢,再添加供差做检测的n位溶于码。构成一个帧发送出去。这样呢,接下来。我们用二进制的模二运算进行二×m的运算。这相当于呢,在m后面呢,添加n个零。

用得到了k+n位的数除以事先选好的长度为n+1的除数p。得到的商是q,而余数是r。而余数呢,比除数p少一位,就余数是r位的。我们举个例子。比如说k=6 m等于一零一零零一,那么我们假设k=3除数呢就?就比我们假设这样一个比我们这个n呢多一位,那么就是一零一。被除数呢是二的N次方乘以m,就是在m后面呢,添取n个零。五二运算的结果呢?

是商摁。等于一一零一零一。余数呢,是r等于零零一,这是我们熔余码的这样一个计算。把r作为荣誉码呢?添加在数据m后面呢,发送出去发送的数据呢,就是二的N次方乘以m+r。比如说我们的一一零一零零一零零一共k+IV。这是我们的循环能力教育的方式,那么我们看一下它的计算过程。一零一零零一零零零来除,以我们的除数一一零一,那么这里呢?

商一。那么,得到了我们的。一一零一。然后呢,进行计算。余数呢是一。一一一零,然后再商一得到一一零一。那么再往上面去算商零,那么得到这样一个数。那么接下来呢?商医。是吧,得到这样一个输入。

最后呢,得到了它的除数r三位的。这个时候。我们把这个余数r的。就作为容易把拼接在数据m的后面发送出去。这种为了进行查字帖检测。而添加的荣誉码呢?常称为真检验序列fcs。那所以说我们这里的。r等于零零一。他就是我们的这样一个fcs。我们的在数据后面添加上的这样一个融于码呢,称为增减员序列fcs。而循环容易检验crc的真检验序列呢?和fcs呢?

并不等同。crc呢是一种常用的检测方法,而fcs呢是添加在数据后面的荣誉码。fcs呢?可以用crc这种方法获得,但crc呢?并非是用来获得fcs的唯一方法。我们来看一下接收端对收到的每一帧进行crc检测。如果得到的余数呢r=0。则判定这个针呢,没有差错。就接受。如果余数r呢?不等于零。则判定这个针呢,

有差错就丢弃。那么但是这种方法呢?并不能检测哪一个比特出错,或者说哪几个?给它出错,只有经过经过了严格的筛选,并使用足够的位数做的除数p了,那么经过检测不到的这样一个差错。它的概率呢话就很小。接下来我们再看一下。仅用循环容易校验crc检查的检测技术呢?只能做到无差错接收。无差错接收呢,是指凡是接收的帧,我们都不能以非常接近一的概率呢,

认为这些帧的传输过程中没有差错。错,也就是说,凡是接收到有在数据电路中请求的帧呢,都没有传输插错。要做到可靠传输,就是发送什么就接收什么,那么必须呢,再加上确认和重传机制。


页: [1]
查看完整版本: 04.第04节课第3章数据链路层