精华内容
下载资源
问答
  • 什么是数据传输中的成 数据传输中的成 成技术一种用来一个比特流内分配或标记信道的技术,为电信提供选择基本的时隙结构和管理方式、错误隔离和分段传输协议的手段。两个计算机或设备之间的点到点的连接...

      什么是数据传输中的成帧

      数据传输中的成帧

      成帧技术是一种用来在一个比特流内分配或标记信道的技术,为电信提供选择基本的时隙结构和管理方式、错误隔离和分段传输协议的手段。两个计算机或设备之间的点到点的连接中包括一根电线,在这根电线中数据作为位流传输。但是,这些位必须被分成可辨别的信息块。分帧是数据链路层的功能。它使发送器接收器传输一组对有含义的位。以太网、令牌环网、帧中继以及其他数据链路层技术都有它们自己的帧结构。帧具有包含错误检查代码之类的信息的标题。

      共有三种不同类型的分帧,每个都为发送器提供一种方法以告诉接收器数据块开始和结束的位置:

      面向字节分帧 计算机数据通常是以字母、数字、字符存储的,这种字符是用8bit组合(1Byte)编码的。这种分帧类型使字节各不相同。在终端/大型机环境中使用的是更老样式的分帧。其中面向字节分帧的例子包括IBM的BISYNC协议。

      面向位的分帧 这种分帧允许发送器同时传输一长串的位。IBM的SDLC (同步数据链路控制)和HDLC(高级数据链路控制)都是面向位协议的例子。大多数LAN都使用面向位的分帧。通常有最大的帧大小。例如,以太网的最大帧大小为l526Byte。帧的开始和结束是用特殊的位序列来标识的(对于HDLC,是01111110)。如果没有传输数据,将连续传输相同的序列以便终端系统保持同步化。

      基于时钟的分帧 在基于时钟的系统中,一系列的重复脉冲被用于维护持续的位速率并保持数字位在数据流中的一致。SONET(同步光纤网络)是有关光纤信道上的同步数据传输的标准协议,常用于物理层构架和同步机制。在这个系统中,网络中的所有时钟都根据主时钟被同步化。然后SONET帧被定位于时钟流中。

      使用帧的优点是数据被分成可恢复的区块并且可以很容易地检查这些区块是否被破坏。传输过程中的故障会破坏某些帧。只有丢失的帧而不是整组数据需要重新传输。“错误检测和纠正”中论述了错误的检测和纠正。

      帧是一系列标准化的数据位,是网络通信的基本单元。它的一般格式为一个标题和一个数据有效荷载区。尽管数据区是可变的,帧的大小则通常是固定的。大多数数据链路网络使用大小可变的帧,这种帧有优点(更有效地使用网络)也有缺点(不可预测的信息流以及不能提供高质量的服务)。

      以太网帧(IEEE 802.3)是OSI参考模型数据链路层的封装,网络层的数据包被加上帧头和帧尾,构成可由数据链路层识别的数据帧。如图F-16所示,可以容纳多达l500Byte的数据。帧包括标题、尾字节以及封装的数据。标题中的信息是必须传输的额外数据,从而增加了开销。

    a95d8d3f395134d39398a22d4334a6de.png

      图F-16 802.3 (以太)帧前导码包含一组发送器和接收器用于同步其传输的位,有同步码(用来使局域网中的所有节点同步,7字节长)和帧标志(帧的起始标志7,1字节)两部分。以太网位的格式为10101010,它在5.6?s的时间内产生lOMHz平方波时钟信号。SFD(起始帧分隔符)表明帧的实际起始位置。目标和源地址都是无需说明的。LEN(长度)字段表明帧的数据部分的长度。PAD(填充)用于填充位。CRC(循环冗余校验)用于错误检查。

      分帧是数据链路层特有的。高层协议也将数据分成可辨别的信息“数据分组”,但是用于定义每一层的数据分组的术语是不同的,如下所述。请注意这些定义都采用Internet协议组。

      消息 用户或应用程序指定的实际应用程序数据、命令或指示。假定使用TCP的话,消息是封装在TCP段中的。

      段 在两个互连的包含传输层协议信息的系统(对等系统)之间交换的信息包。TCP交换段。段则封装高层消息。

      数据报 在两个互连的包含网络层协议信息的系统之间交换的信息包。IP交换数据报。数据报则封装段。

      帧 数据链路层中的信息包,具有特定于所用协议的结构。帧封装数据报。图F-17阐释了数据是如何沿着协议栈传递以及如何由各层的协议封装的。该示例阐释了TCP/IP协议。在传输层,TCP封装高层数据并添加它自己的标题以创建一个段。在网络层IP将段和它自己的标题封装在数据报中。最后,数据链路层将数据报封装在某个帧或多个帧。数据报可能被分段并被放入多个帧中。

    ead3ddaf244f8e5f21326d108988772f.png

      图F-17 TCP/IP中的数据分组和帧分帧是由基础网络协议和设备处理的。以太网、令牌环网、帧中继、ATM以及其他数据链路技术使用它们自己的分帧标准(ATM帧实际上被称为“信元”并且是固定大小)。高层协议通常是用来与任何这些协议和分帧方法对接的。当建立网络应用程序时,只要确保应用程序与TCP/IP之类的网络协议组兼容,通常不需要关心将使用哪种基础LAN。

      帧只限于特定的网络段。网络是由多个数据链路段组成的,如图F-18所示。一个段可能是以太网而另一个段则可能是令牌环网。进行连接的网桥或路由器必须从它所接收到的帧中删除封装的数据然后重新将数据封装在下一个网络的帧类型中。有些情况下,下一个网络可能需要更小的帧大小,因此在设备将数据封装到帧之前可能需要将它们分段。数据被分段后,将以那种形式一直到达最后目标。

      Alteon曾提议将以太网的帧大小从l500Byte扩展到9000Byte的“特大帧”。公司声称通过减少必须处理的帧的数目,特大帧可为吉比特以太网络提供比以前多百分之三百的吞吐量。Alteon相信9000Byte的大小(而不是更大的大小)是效率和对错误检查及处理大块数据的处理要求之间的一个很好的平衡值。

    f5263216932325d95bc2edd96c7eca17.png

      图F-18因特网间的分帧

    展开全文
  • 文章目录数据链路层帧的概念透明传输差错检测数据链路可靠传输协议滑动窗口(连续 ARQ 协议)解决发送出错的协议 数据链路 ...透明传输 :指不管数据是什么样的比特组合,都应当能链路上传输。 ...

    数据链路层

    数据链路层的功能
    为网络层提供服务:

    • 链路管理 :数据链路的建立、维持和释放。
    • 寻址:保证每一帧都能正确到达目的站。

    保证数据传输的有效、可靠:

    • 帧定界:将物理层的比特封装成帧,确定帧的开始和结束。
    • 透明传输 :指不管数据是什么样的比特组合,都应当能在链路上传输。
    • 差错检测:能对物理信道传输的比特流检测出差错。
    • 流量控制:控制发送方的发送数据速率使接收方来得及接收。

    帧的概念

    链路和帧
    链路(物理链路)(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    一条链路只是一条通路的一个组成部分。
    在这里插入图片描述

    数据链路(逻辑链路)(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

    现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
    一般的适配器都包括了数据链路层和物理层这两层的功能。

    数据链路层传送的是帧
    常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
    在这里插入图片描述
    帧的封装(帧定界)
    封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
    首部和尾部的一个重要作用就是进行帧定界。
    在这里插入图片描述
    常用成帧方法
    1.字节/字符填充的定界符法
    (让每一帧用一些特殊的字节作为开始和结束标志。)
    2.比特填充的标志法(也称零比特填充法)

    透明传输

    字节填充法
    在这里插入图片描述
    如果数据部分出现EOF,就会出现问题
    在这里插入图片描述
    解决方案:
    发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
    接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
    如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    在这里插入图片描述
    零比特填充
    以01111110作为一帧的开始和结束标志F字段
    在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
    接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
    在这里插入图片描述

    差错检测

    出错情况:在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。帧(包括发送帧和响应帧)出错或者帧(包括发送帧和响应帧)丢失。

    误码率:在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

    差错检测编码分类
    纠错码:前向纠错技术:发现错误,从错误中恢复出正确

    • 纠错码需要较多的冗余位,信道利用率不高。
    • 适用无线网络

    检错码: 只能发现错误,不能从错误中恢复,但可采用重传。

    • 适用局域网
    • 循环冗余码(CRC)。

    海明码
    海明距离
    两个码字(codeword)的海明距离 : 两个码字之间不同位的数,也就是异或(非进位加法)的结果中,1的个数。
    例: 10001001 和10110001 的海明距离为?

    # 非进位加法(二进制):1+1=0,1+0=1,0+1=1,0+0=0
    
    	1 0 0 0 1 0 0 1
    +	1 0 1 1 0 0 0 1
    -------------------------
    	0 0 1 1 1 0 0 0
    	
    # 1 的个数为3
    

    解析:10001001 和10110001 的海明距离为3

    海明距离与检错的关系
    海明距离为d+1的编码能检测出d位差错

    奇偶校验码
    校验位的值取“0”还是“1”,取决于整个码字的总的“1” 的个数。(奇数还是偶数)

    原理:如果是奇校验加上校验位后,编码中1的个数为奇数个。如果是偶校验加上校验位后,编码中1的个数为偶数个。

    例: Data: 1011010(7位原码)
    Even: 1011010 0 (7 + 1位 偶校验)
    Odd: 1011010 1 (7 + 1位 奇校验)

    海明距离与纠错的关系
    海明距离为2d+1的编码,能纠正d位差错。
    如果一个码字有d位发生差错,距离原来的码字距离最近的可以直接恢复为该码。
    当接收到码字后,先比对是否合法,如果不合法,则恢复为海明距离最短的合法码字
    例:
    一个系统有4个合法码字: 0000000000, 0000011111, 1111100000 和 1111111111
    码字之间最短海明距离是 5=2*2+1,所以可纠正2位错误
    例:发送: 0000011111
    接收: 0000000111(不合法,海明距离依次为[])
    收方纠正后: 0000011111
    练习:发送:0000000000
    接收: 0000000111
    收方纠正后: 0000011111

    纠1位错,需要多少位冗余位?
    要传输的数据(原码字)是 m 位,冗余位 r ,总长度 n
    在这里插入图片描述
    海明纠错码
    每一个码字从左到右编号,最左边为第1位
    校验位和数据位
    凡编号为2的乘幂的位是校验位,如1、2、4、8、16、…
    其余是数据位,如3、5、6、7、9、…
    每一个校验位设置根据:包括自己在内的一些位的集合的奇偶值(奇数或偶数)。
    计算过程移步:https://blog.csdn.net/lycb_gz/article/details/8214961

    纠1位错的海明码的基本方法
    发送方:根据校验集合填充校验位。
    接收方:根据校验集合判定校验位是否出错,出错的位编号累加到累加器上,所有的校验位都检查完成后,通过读取累加器的值来确定码字中出错的那一位的编号。

    循环冗余检验 CRC
    循环冗余检验的原理
    信息位:发送端要发送的数据
    冗余位:发送端在向信道发送信息位之前,先按照某种关系加上一定的冗余位
    发送与接收的过程:

    • 发送时:信息位+冗余位构成码字发送;
    • 接收时:收到码字后查看信息位和冗余位,并检查它们之间的关系(校验过程),以发现传输过程中是否有差错发生。

    CRC码又称为多项式码。任何一个由二进制数位串组成的代码都可以和一个只含有0和1两个系数的多项式建立一一对应的关系。
    长度为最高次幂+1
    在这里插入图片描述
    例如:
    假设系统使用的生成多项式为G(x) = X4+X+1 (10011)
    要发送的码为1101011011(长度为10)
    对应的多项式为X9+X8+X6+X4+X3+X+1,设为 M(x)

    首先将发送码字的多项式乘上生成多项式的最大阶:
    T(x) = X4 M(X)

    在这里插入图片描述
    乘上多少阶等于向左移动多少位
    再将移位后的码字按照(模2运算法则)计算如果有余数,则将码字减去余数
    最后得到的码字就是可以发送的码字
    在这里插入图片描述
    当这个码字到达接收方时:
    如CRC码在接收端能被10011整除,则说明接收正确。
    在这里插入图片描述

    数据链路层可靠传输协议

    停止等待协议(肯定确认重传请求ARQ(也叫PAR))
    每次发送帧的时候都会启动一个定时器
    在这里插入图片描述
    注意:
    在发送完一个帧后,必须暂时保留已发送的帧的副本。
    发送帧和确认帧都必须进行编号。
    超时计时器的重传时间应当比数据在传输的平均往返时间更长一些。
    在这里插入图片描述

    停止等待协议的优点是简单,但缺点是信道利用率太低。

    信道利用率计算公式:
    RTT(来回时间)TD (发送数据时间) TA(接收数据时间)
    在这里插入图片描述
    如果忽略处理时间:假设
    信道传输速率是: b bps
    每帧的大小是: k bits
    来回时间是: R sec
    则信道的利用率是:k/(k + bR)
    如何优化?
    使用滑动窗口技术

    滑动窗口(连续 ARQ 协议)

    发送方有一个发送窗口,存放依据发送未被确认的数据,当数据确认后,滑动到下一个数据
    接收方有一个接收窗口,存放期望接收的数据,当期望的数据接收后、滑动到下一个期望接收的数据
    在这里插入图片描述
    使用滑动窗口技术,批量发送数据,就是发送方可以利用等待接收方的确认数据的时间,继续发送数据直到接收到接收方发送的确认数据,再这段时间里发送的数据称为一个窗口。
    在这里插入图片描述
    发送过程图解:
    在这里插入图片描述
    发送方可连续发送多个帧,不必每发完一个帧就停顿下来等待对方的确认。
    由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。

    如何计算最大的窗口数量?
    设窗口数量为 W
    假设信道的传输利用率达到100%,W * k /(k + bR)= 1
    即可得到W的值(b为传输速率(带宽),R 为RTT往返时间,k为每个数据包bit大小)

    还有一种计算W值得方法,也是信道利用率 100%:
    W = 2 * 时延带宽积 + 1

    但是利用率100 % 一般不可能达到。实际的W值会比计算出来的W值小

    累积确认
    接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个帧发送确认,这样就表示:到这个帧为止的所有帧都已正确收到了。

    小结
    滑窗技术可以批量收发数据,提高了信道利用率。
    发送窗口对应着已经发送但还未被确认的帧。

    • 滑动条件:收到了帧的确认。

    接收窗口对应着期待接收的帧。

    • 滑动条件:收到了期待接收的帧。

    窗口数的确认跟带宽-延迟积正相关。

    解决发送帧出错的协议

    Go-back-N(回退 N帧)
    如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。
    这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组。

    选择重传协议
    连续发送W个数据帧,其中有一帧出错,但其后续帧被成功发送
    接收窗口存储差错帧后继的所有正确帧
    发送方只重传差错帧
    接收方接收重传帧,按正确顺序将分组提交网络层

    展开全文
  • 数据帧传输数据链路基于MAC地址进行传输。...以太封装完成后会通过物理转换成比特流物理介质上传输。以太网MAC地址网络设备的MAC地址全球唯一的。MAC地址长度为48比特,通常用十六进制表...

    数据帧传输

    数据链路层基于MAC地址进行的传输。

    以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

    fd3b119ed465edc2528bd9468ccd197c.png

    以太网MAC地址

    网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标识符(OUT,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

    7c62e372fce91fccb8f264a9f98816d3.png

    数据帧的发送和接受

    主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议进行后续处理。

    08bd29ee8b4326d37ce580723b534d28.png

    数据传输过程

    829878c2c85526c7895818fd0b87a794.png

    封装过程

    ae8b12384384d58c73c532ee4dee6a4f.png
    展开全文
  • 透明传输中的“透明”一个很重要的术语,它表示某一个实际存在的事物看起来却好像不存在一样,数据链路透明传送数据表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路。...

    参考资料:《计算机网络》第七版(谢希仁著)

    一、封装成帧

    封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

    分组交换的一个重要概念就是:所有在互联网上传送的数据都以分组(即IP数据报)为传送单位,网络层的IP数据报传送到数据链路层就成为帧的数据部分,在帧的数据部分的前面和后面分别添加上首部和尾部,构成了一个完整的帧,这样的帧就是数据链路层的数据传送单元,因此一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度

    在发送帧时,是从帧首部开始发送的,到帧尾部结束,首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限),此外,首部和尾部还包括许多必要的控制信息,因此各种数据链路层协议都对帧首部和帧尾部的格式有明确的规定。

    为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度,但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU(Maximum Transfer Unit)。
    在这里插入图片描述
    当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符,ASCI码是7位编码,一共可组合成128个不同的ASCII码,其中可打印的有95个,而不可打印的控制字符有33个,注意,这里可打印的字符是指可以从键盘上输入的字符,我们使用的标准键盘有47个键可输入94个字符(包括使用Shift键),加上空格键,一共可输入95个可打印字符。

    控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始,另一个控制字符EOT(End Of Transmission)表示帧的结束,需注意的是,SOH和EOT都是控制字符的名称,当数据是由可打印的ASCII码组成的文本文件时,SOH和EOT的十六进制编码分别是01(二进制是0000001)和04(二进制是00000100)。
    在这里插入图片描述
    当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发送完一个帧时突然出故障,中断了发送,但随后很快又恢复正常,于是重新从头开始发送刚才未发送完的帧,由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT),必须丢弃,而后面收到的数据有明确的帧定界符(SOH和EOT),因此这是一个完整的帧,应当收下。

    需注意的是,不同的协议使用的帧定界符也并不相同,但是它们的思想是相同的,都是对SOH和EOT的某种实现

    二、透明传输

    由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。

    当传送的帧是用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符,可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。

    但是,当数据部分是非ASCI码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了,如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地找到帧的边界,把部分帧收下(误认为是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH),如下图所示:
    在这里插入图片描述
    透明传输中的“透明”是一个很重要的术语,它表示某一个实际存在的事物看起来却好像不存在一样(例如,你看不见在你前面有块100%透明的玻璃的存在),在数据链路层透明传送数据表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层,因此,对所传送的数据来说,这些数据就看不见数据链路层有什么妨碍数据传输的东西,或者说,数据链路层对这些数据来说是透明的。

    为了解决透明传输问题,就必须设法使数据中可能出现的与控制字符SOH或EOT相同的二进制代码在接收端不被解释为控制字符。

    具体的方法是:发送端的数据链路层在数据中出现“SOH"或“EOT"的前面插入一个转义字符“ESC(其十六进制编码是1B,二进制是00011011),而接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)。 如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    在这里插入图片描述

    三、差错检测

    现实的通信链路都不会是理想的,因此数据帧在传输中通常可能发生以下两种错误:

    • 比特差错:比特在传输过程中可能会产生差错,1可能会变成0,而0也可能变成1。

      在一段时间内,传输错误比特的数量占所传输比特总数的比率称为误码率BER(Bit Error Rate),例如,误码率为0.1时,表示平均每传送10个比特就会出现一个比特的差错。误码率与信噪比有很大的关系,信噪比越高,误码率越低,因此如果设法提高信噪比,就可以使误码率减小。

      但是,实际的通信链路并非是理想的,它不可能使误码率下降到零,因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施,目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。

      下面通过一个简单的例子来说明循环冗余检验的原理,现假定待传送的数据M = 1101011011(k=10)。

      CRC的基本原理:

      1. 在发送端,先把数据划分为组,假定每组k个比特。

      2. 通过CRC运算,在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位。在所要发送的数据后面增加n位的冗余码,虽然增大了数据传输的开销,但却可以进行差错检测,当传输可能出现差错时,付出这种代价往往是很值得的。

        CRC运算的过程:

        用二进制数的模2乘法进行2ⁿ乘M的运算,这相当于在M后面添加n个0,得到的(k+n)位的数使用模2除法除以收发双方事先商定的长度为(n+1)位的除数P,得出商是Q而余数是R(n位,比P少一位),关于模2运算的具体内容请参照:模2运算

        假定除数P= 10011(即n = 4),则经模2除法运算后的结果是:商Q = 1100001010(这个商并没有什么用处),而余数R = 1110,这个余数R就作为冗余码拼接在数据M的后面发送出去。

        这种为了进行检错而添加的冗余码常称为帧检验序列FCS(Frame Check Sequence),因此加上FCS后发送的帧是11010110111110(即2ⁿ × M + FCS,这里的×是模2乘法),共有(k + n)位。需注意的是,循环冗余检验CRC和帧检验序列FCS并不是同一个概念,CRC是一种检错方法,而FCS是添加在数据后面的冗余码,在检错方法上可以选用CRC,但也可不选用CRC。

        在这里插入图片描述

      3. 在接收端,先从接收的数据帧中提取出n位冗余码,进行CRC检验,如果检验的结果正确,则接受(accept)数据帧,如果检验的结果不正确,则直接丢弃,可见,CRC检验不能确定错误发生的原因,只能判断数据帧是否正确

        CRC检验的过程:

        把收到的每一个帧都除以同样的除数P(模2除法),然后检查得到的余数R,如果在传输过程中无差错,那么经过CRC检验后得出的余数R肯定是0,但如果出现误码,那么余数R仍等于零的概率是非常非常小的。

        在接收端对收到的每一帧经过CRC检验后,一般有以下两种情况:

        1. 若得出的余数R=0,则判定这个帧没有差错,就接受(accept);

        2. 若得出的余数R≠0,则判定这个帧有差错(但无法确定究竟是哪一位或哪几位出现了差错),就丢弃。

      徐注意的是,在数据链路层,发送端帧检验序列FCS的生成和接收端的CRC检验都是用硬件完成的,处理很迅速,因此并不会延误数据的传输。

      从以上不难看出,如果我们在传送数据时不以帧为单位来传送,那么就无法加入冗余码以进行差错检验,因此,如果要在数据链路层进行差错检验,就必须把数据划分为帧,每一帧都加上冗余码,一帧接一帧地传送,然后在接收方逐帧进行差错检验。

    • 传输差错:收到的帧没有出现比特差错,但却出现了帧丢失、帧重复和帧失序。

      例如,发送方连续传送三个帧: ABC,假定接收端收到的每一个帧都没有比特差错,但却出现下面的几种情况:

      1. 帧丢失:收到AC(丢失B);

      2. 帧重复:收到ABBC(收到两个B);

      3. 帧失序:收到ACB(后发送的帧反而先到达了接收端,这与一般数据链路层的传输概念不一样)。

      因此,我们应当明确,“无比特差错”与“无传输差错”并不是同样的概念,在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输

    强调一下,在数据链路层若仅仅使用循环冗余检验CRC差错检测技术,则只能做到对帧的无差错接受(即认为:凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错),接收端丢弃的帧虽然曾收到了,但最终还是因为有差错被丢弃,即没有被接受,以上所述的可以近似地表述为(通常都是这样认为):“凡是接收端数据链路层接受的帧均无差错”。

    需注意的是,通常并不要求数据链路层向网络层提供可靠传输的服务,所谓可靠传输就是数据链路层的发送端发送什么,在接收端就收到什么,一般有以下两种情况:

    • 对于通信质量良好的有线传输链路,数据链路层协议不使用确认和重传机制,即不要求数据链路层向上提供可靠传输的服务,如果在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(例如,运输层的TCP协议)来完成。

    • 对于通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,数据链路层向上提供可靠传输的服务。

    展开全文
  • 今天看数据如何不同VLAN(不同交换机)之间传输,有关与PVID和VID,以及...当从PC1发送一个数据给SW1,从PC发出时应该不带TAG,经过FA0/1时(二地址和三IP报:帖子里看的,不明白是什么意思)。被打上T...
  • 数据传输中的成

    2015-11-05 21:15:00
    什么是数据传输中的成帧 数据传输中的成帧 成帧技术是一种用来一个比特流内分配或标记...分帧是数据链路的功能。它使发送器接收器传输一组对有含义的位。以太网、令牌环网、帧中继以及其他数据链路技术都有...
  • 前言:LLC子看懂了又忘记,写这里方便记忆。 MAC就不说了。LLC格式百度。 LLC子 IEEE802.3中的LLC子除了定义传统的链路服务之外,还增加了一些其他有用的特性。这些特性都由DSAP、SSAP和...
  • 前言:LLC子看懂了又忘记,写这里方便记忆。MAC就不说了。LLC格式百度。LLC子IEEE802.3中的LLC子除了定义传统的链路服务之外,还增加了一些其他有用的特性。这些特性都由DSAP、SSAP和Control字段提供。...
  • 数据链路,由于收发双方点到点的连接,其流量控制策略相对较为简单,接收窗口和发送窗口即为固定大小的缓冲区的个数,发送方的窗口调整,即缓冲区的覆盖依赖于确认的到达,由于信号传播延时和CPU的处理时间...
  • 封装成&透明传输

    2021-01-13 22:23:16
    封装成 封装成:一段数据的前后部分添加首部和尾部,这样就构成了一个。接收端收到物理上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别...因此,链路就“看不见”有什么妨碍数据传输的
  • 封装成和透明传输

    2021-01-03 23:18:20
    封装成 封装成就是一段数据的前后部分添加首部和尾部,这样就构成了一个。接收端收到物理上交的比特流后,就能根据首部和...透明传输是指不管所传数据是什么样的比特组合,都应当能够链路上传送。因此,
  • 封装成: 就是一段数据前后部分添加首部和尾部,这样就构成了一个。接收端收到物理上交的比特流后就能...指不管所传数据是什么样的比特组合,都应当能够链路上传送。因此,链路就“看不见”有什么妨.
  • 没错,但是TCP/IP协议是工作OSI模型第三(网络)、第四(传输层)上的,而帧是工作第二(数据链路)。上一的内容由下一的内容来传输,所以局域网中,“包”是包含“帧”里的。 名词解释:OSI(Open ...
  • 一、 成 ...因此,链路就“看不见”有什么妨碍数据传输的东西。 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为某种控制信息
  • 没错,但是TCP/IP协议是工作OSI模型第三(网络)、第四(传输层)上的,而帧是工作第二(数据链路)。上一的内容由下一的内容来传输,所以局域网中,“包”是包含“帧”里的。 名词解释:OSI(Open ...
  • TCP报文段在传输层生成,文件数据在传输层被切割为不同的数据段,每个数据段加TCP报文段首部,变成TCP报文段。 TCP报文段首部 地址信息:源端口与目的端口。 话不多说,见图: TCP报文段 数据段加上TCP首部便成了...
  • 其中以太网的数据帧在链路IP包网络TCP或UDP包在传输层TCP或UDP中的数据(Data)应用它们的关系数据{IP包{TCP或者UDP包{Data}}}————————————————————————————————应用...
  • PPP协议的主要特点是什么?...第一, 若使用能够实现可靠传输的数据链路协议(如HDLC),开销就要增大。数据链路出现差错的概率不大时,使用比较简单的PPP协议较为合理。 第二, 因特网
  • 什么是I以及如何判断I

    千次阅读 2016-12-12 14:20:24
    1、NAL全称Network Abstract Layer, 即网络抽象。  H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责...
  • 依据链路发送与接收的格式,说明数据链路、网络传输层接收数据的过程中,出现以下情况时,可能出现的问题是什么? A) 利用网络助手可以接收端接收到发送端发来的数据,但利用自己编写的链路接收...
  • 核心: 核心的功能主要实现骨干网络之间的优化传输,骨干设计任务的重点通常冗余能力、可靠性和高速的传输。核心一直被认为所有流量的最终承受者和汇聚者,所以对核心的设计以及网络设备的要求十分...
  • 数据转发过程概述数据包相同网段内或不同网段之间转发所依据的... Web应用基于传输层的TCP协议传输数据的。IP封装(三)主机A完成传输层封装后,一般会进行网络数据封装,使用IP进行封装时,需要明确IP报文...
  • 物理上,信息被转换成可以通过有线媒体(铜线或光缆)或无线媒体(无线电或红外线传输)传输的信号。高层协议则定义了传输信息的封装、流控制和传输中被丢失或破坏信息的恢复技术。 通信协议 可以将通信协议比喻...
  • 数据链路数据链路的主要功能1. 负责数据链路的建立、维护、拆除2.... 什么是以太网以太网即局域网【local Area Network | LAN】2. 以太网的拓扑结构1. 总线型:效率低下,易产生冲突2. 令牌环型:工作效率...
  • 其功能分别:1、物理主要负责物理线路上传输原始的二进制数据(0和1),该数据以比特流的形式传输;2、数据链路主要负责通信的实体间建立数据链路连接,该数据以的形式传输;3、网络主要负责创建...
  • 然后,如果速度足够低而无需时钟同步,则ATM可以直接通过光纤传输,也可以通过光纤传输之前封装SONET / SDH中。 第二种解决方案使用HDLC或PPP(点对点协议)来实现这种封装。为了允许SDH,通过光纤...
  • 接收端收到物理上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别的开始和结束。 首部和尾部包含许多的控制信息,他们的重要作用定界。(确定的界限) 同步: 接收方应当能从接收到...
  • 根据五模型,我们知道,物理的上一就是数据链路,而数据链路网络之下,所以,数据链路接受物理的提供的服务(主要是传输比特流),同时,也为它的上层——网络提供服务。 第二个问题,数据链...
  • 交换机一种工作数据链路对流量进行转发的网络设备。主要应用于延长传输距离,解决冲突域,实现单播等功能。 ** 工作过程: **当流量进入交换机后,根据数据中的源MAC,建立该地址与交换机端口的映射,并写入...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 373
精华内容 149
关键字:

帧是在什么层传输的