计算机网络湖科大微课堂笔记 p21-23 数据链路层概述封装成帧差错检测

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络湖科大微课堂笔记 p21-23 数据链路层概述封装成帧差错检测相关的知识,希望对你有一定的参考价值。

数据链路层概述

数据的流动如红色虚线所示。


数据链路层的三个重要问题:

  • 封装成帧
  • 差错检测
  • 可靠传输

封装成帧

应用层->运输层:应用层协议数据单元
运输层->网络层:应用层协议数据单元+运输层协议首部=运输层协议数据单元
网络层->数据链路层:运输层协议数据单元+网络层协议首部=网络层协议数据单元
数据链路层->物理层:网络层协议数据单元+帧头+帧尾。

添加帧头帧尾即封装成帧
目的:在链路上以帧为单元来传输数据。

如:

差错检测
检错码被封装在帧尾中,如:FCS就是检错码。

接收方主机收到帧后,通过检错码和检错算法,可以检测帧中是否有误码。

可靠传输
接收方主机收到有误码的帧后,会将其丢弃。然后让接收方主机收到被丢弃帧的正确副本。

也就是说:尽管误码是不能完全避免的,但若能实现发送发发送什么,接受方就收到什么,就成为可靠传输。

注意:我们在介绍这三个问题的时候,使用点对点信道的数据链路层来举例。

如果使用广播信道的数据链路层,那还有其他问题需要解决,如:
A要发信息给C,代表帧的信号会通过总线传输到总线上的其他主机,那么C如何知道信息是发送给自己的?其他主机如何知道信息不是发送给自己的?

将目的地址添加到帧中一起传输。(编址问题)

传输帧时可能会碰撞:

解决方法:以太网的媒体接入控制协议:CSMA/CD(载波监听多点接入/碰撞检测)

如果使用交换式局域网,如何转发帧呢?
网桥和交换机的工作原理

封装成帧

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。

帧头帧尾中包含重要的控制信息,如:

帧头帧尾的作用之一就是帧定界(通过帧头帧尾的标志提取出帧),如:

不过,并不是每一种数据链路层的帧都有帧定界标志(如以太网V2的MAC帧)。那么,它将如何提取帧呢?

以太网V2的MAC帧有8个字节的前导码,其中有7个字节前同步码和1个字节的帧开始定界符(确定了帧的开始),如图:

同时,帧间间隔时间为96比特时间,因此可以提取帧。

透明传输
是指数据链路层对上层交付的传输数据没有任何限制,就像数据链路层不存在一样。

发送数据前,会对数据进行扫描,在数据中出现的帧定界符前加一个转义字符,这样就不会误判了数据中的帧定界符(也就是帧中只会有开始和结束两个帧定界符,其他的都是数据内容)。

如果数据中也包含转义字符呢?
也是一样,对帧进行扫描,在转义字符和帧定界符前加转义字符。


变成

上述情况是帧定界符是字节的情况,用字节填充;
若帧定界符是比特,则用比特填充。(每5个1后加一个0)

一道例题:

解:

帧的数据部分长度要尽可能大最大传送单元

总结

差错检测


FCS是用来让数据链路层检测是否产生误码的:

奇偶校验

如:
第1个例子中,若使用奇校验,则在数据后加一个1使得整串数据的1的个数为奇数。
第3个例子中,若使用偶校验,则在数据后加一个0使得整串数据的1的个数为偶数。

漏检率比较高。

循环冗余校验CRC


一个例题:求发送数据

解:
注意,生成多项式最高系数是3,所以加3个0,不是加4个!

一个例题:判断是否误码

解:
误码了,余数为11.

差错检测的总结:

以上是关于计算机网络湖科大微课堂笔记 p21-23 数据链路层概述封装成帧差错检测的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络湖科大微课堂笔记 p38-40 以太网交换机的生成树协议STP虚拟局域网VLAN概述和实现机制

计算机网络湖科大微课堂笔记 p28-30 点对点协议PPP媒体接入控制的基本概念媒体接入控制:静态划分信道

计算机网络湖科大微课堂笔记 p24-27 可靠传输的基本概念和实现机制

计算机网络湖科大微课堂 笔记目录(未完)

计算机网络湖科大微课堂笔记 p57-59 运输层概述运输层端口号复用与分用的概念UDP和TCP的对比

计算机网络湖科大微课堂笔记 p17-18 编码与调制信道的极限容量