计算机网络 第三章: 封装成桢和透明传输

文章目录

封装成帧

封装成帧是指数据链路层给上层交付下来的协议数据单元PDU添加一个首部和一个尾部,使之成为帧。

  • 帧的首部和尾部中包含有一些 重要的控制信息。
  • 帧首部和尾部的作用之一就是帧定界。


接收方的数据链路层如何从物理层交付上来的比特流中提取出一个个的帧???

???


为了提高数据链路层传输帧的效率,应当使帧的数据载荷的长度尽可能地大于首部和尾部的长度。

考虑到对缓存空间的需求以及差错控制等诸多因素,每一种数据链路层协议都规定了帧的数据载荷的长度上限,即最大传送单元(Maximum Transfer Unit,MTU)。例如,以太网的MTU为1500个字节。

透明传输

透明传输是指数据链路层对上层交付下来的协议数据单元PDU没有任何限制,就好像数据链路层不存在一样。

反例 下图就演示了接收方不能正常收到桢信息的案例. 不满足透明传输.

措施:

发送方在把桢交给物理层之前, 对桢的数据载荷进行扫描, 每出现一个桢定界符, 就在其前面插入一个转义字符. 接收方的数据链路层在物理层交付的比特流中提取帧时, 遇到转义字符就知道了其后面是数据而不是帧定界符.

上面的措施似乎不错呢, 解决了透明传输的问题. 那么此时如果数据载荷本身中既包含帧定界符又包含转义字符, 阁下又该如何应对呢?

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

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

注意上面的两种方法并不是所有的协议采用的方法, 还有其他的 这里就不介绍了.

发送方的数据链路层将数据发送给物理层前先对数据载荷进行扫描, 发现连续5个比特1, 就在其后填充一个比特0. 经过如此一番填充操作就可以保证其数据载荷不会包含帧定界符了.

接收方的数据链路层在把数据载荷向上交付给网络层前, 对数据载荷进行扫描, 当发现5个连续的比特1时, 就把其后面的一个比特0删除掉, 就还原出原始数据的数据载荷.


习题

【2013年 题37】HDLC协议对0111110001111110组帧后对应的比特串为( )。

A. 011111000011111010

B. 011111000111110101111110

C. 01111100011111010

D. 011111000111111001111101

【练习】在某个数据链路层协议中使用下列字符编码:

A:01000111

B:11100011

ESC:11100000

FLAG:01111110

其中,FLAG作为帧定界符,ESC作为转义字符。

假设帧的数据载荷为4个字符A、B、ESC以及FLAG,请分别使用字符填充法和零比特填充法将其封装成帧。


解析

【2013年 题37】

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

HDLC为了实现"透明传输",采用"零比特填充法",即每五个连续比特1后面插入一个比特0。

练习题:


相关推荐
白帽黑客沐瑶2 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
树码小子2 天前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
绿箭柠檬茶2 天前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
real 12 天前
传输层协议UDP
网络·网络协议·udp
路由侠内网穿透2 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
喵手2 天前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!2 天前
实验-基本ACL
网络
ftpeak2 天前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app
LabVIEW开发2 天前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序
JZZC22 天前
MA上的OSPF动态路由(2025年9月11日)
计算机网络·ensp·ospf·动态路由·ma上的ospf动态路由