关于比特、帧和数据报

关于比特、帧和数据报_第1张图片

从宏观层面看,计算机网络分层结构中数据不断变化的过程主要如下:

数据每经历一层,本质上就是在穿衣服。我们需要传输的数据,在应用层加了H5(首部),形成报文。然后送到传输层后,由于最大传输单元的限制,被切分成几个小段,每个段添加了H4(首部),形成报文段。报文段送达网络层后,添加H3(首部),形成数据报。数据包到达数据链路层之后,加头加尾,尾部是CRC循环冗余校验码,形成一个帧。最后到达物理层,不做任何修改并进行透明传输,即比特流的形式。到了另一端之后即呈现对称的脱衣服即可。

扩展:(N)服务是(N)层及以下各层向(N+1)层提供的一种综合能力;(N)协议是控制对等(N)实体之间通信的规则的集合。服务是同一开放系统中相邻层之间的操作;协议是不同的开放系统的对等实体之间进行通信所必须遵守的规定。协议是水平的,而服务是垂直的。(N)层服务就是利用(N-1)服务以及按(N)协议与对等实体交互信息来实现的,即服务是由协议支持的。

那么可以认为,每一层的封装都是通过按照本层协议、利用下一层服务、新增一些信息来实现这一层的功能,并且这一功能为上层提供服务。

这篇文章主要从全局的角度来讲一下每一层到底新增了什么信息,也是我备考过程中最疑惑的内容。

 

比特流

物理层的传输形式,未新增任何信息,只负责数据传输。

 

数据链路层的传输形式,增加了头部和尾部,加强物理层传输能力,主要保证无差错。

尾部:加入了CRC循环冗余校验码,以确保在传输过程中没有出现差错。

头部:目的MAC地址和源MAC地址,从而实现与MAC地址有关的功能。此外还有类型/长度之类。

组帧

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部包含许多的控制信息,他们的一个重要作用是帧定界(确定帧的界限),并且实现帧同步(接收方应当能从接收到的二进制比特流中区分出帧的起始和终止)。

透明传输:不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

当所传数据中的比特组合恰巧与某一个控制信息完全样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。异步线路用字节填充,同步线路用比特填充。

字符计数法

关于比特、帧和数据报_第2张图片

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。

字符填充法

关于比特、帧和数据报_第3张图片

每遇到一个与首尾标志位重复的内容,就填充一个转义字符,读取信息时默认删去即可。

零比特填充法

关于比特、帧和数据报_第4张图片

1、在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。

2、在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

违规编码法

关于比特、帧和数据报_第5张图片

利用曼彻斯特编码的特点,可以用“高-高”,“低-低” 来定界帧的起始和终止。这两个编码就作为违规编码,遇到则表示帧的起始和结束。

由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

 

数据报

网络层的传输形式,增加了头部。

头部:目的ip地址和源ip地址,从而实现路由寻址等功能。网络层本身不保证可靠传输,需要上层来实现。

 

报文段

传输层的传输形式,增加了头部。

头部:目的端口号和源端口号,从而实现进程寻址等功能。此外TCP为保证数据的可靠传输,多了更多的东西。

 

报文

应用层的传输形式,增加了头部,主要实现人机交互等功能。

不同的协议新增内容千差万别,不需要掌握。

 

具体多了哪些以及各种格式请看这篇文章——

关于计算机网络中的基本概念和协议格式

 

你可能感兴趣的:(计算机网络)