封装成帧

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

首尾标志的作用就是帧定界

接收方的链路层可以依据帧定界标志,从物理层交付的比特流中,提取出一个一个的帧。

并不是每种数据链路层的帧都包含有帧定界标志。

使用该协议,物理层会在以太网V2的mac帧前添加前导码。

另外,以太网还规定了帧间间隔时间为96比特的发送时间,不需要帧定界。

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

flag是帧定界标志,是一个特定数值。如图,首位各一个flag,但是在上层交付的协议数据单元中,恰好也包含了这个特定数值,接收方就不能正确接收帧,会提前结束。

解决:在帧发送前,对帧数据部分进行扫描,每出现一个帧定界符,就在其前面插入一个转义字符(ESC)。

接收方在收到转义字符时,会去掉转义字符,并知道后面的不是帧定界符而是数据。

数据部分中出现了转义字符也是同理。

转义字符不是“esc”,而是一个特定字符,十进制值为27.。

面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。

面向比特的物理链路使用比特填充的方法实现透明传输。

在发送前,可采用零比特填充法,每5个连续的比特1前就插入一个比特0,来确保帧定界符的唯一性。接收方接受时把数据部分每5个连续的比特1前的比特0剔除即可。

例题. HDLC协议对 0111110001111110 组帧后对应的比特串为

A.011111000011111010 B.011111000111110101111110

C.01111100011111010 D.011111000111111001111101

解析:高级数据链路控制协议HDLC采用帧头和帧尾中的标志字段作为帧定界符,其值为01111110

HDLC为了实现“透明传输”,采用“零比特填充法”(每5个连续1后面插入一个比特0),故选A

为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些

考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)。