这节课呢我们将来学习封装成帧以及透明传输两个内容。
首先我们来回顾一下上节课所讲的这样一个例子,网络层这个大Boss呢要把5个文件发给B公司,他就找了一个小帮手,那这个小帮手不可能亲自去跑腿,她又找了一个小帮手。那这个小帮手啊他是个傻子,所以她为了防范于未然呢,小秘书她就把这5个文件进行了一个编号,那这样如果傻子把这个文件弄丢了,比如说弄丢了4号和5号。那在这一端接收端呢小秘书就发现4号、5号没有收到,所以就让傻子再重新发4号和5号就可以了,而不至于说把1到5号,5个文件全部重新发送一次。因此呢数据链路层的功能啊其实就是把网络层交付给它的数据报进行一个加工和处理,然后再递交给物理层。这样呢,小秘书就可以实现啊,把这个链路改造成一个逻辑上没有差错的数据链路。
那封装成帧的过程呢,其实就是把网络层的IP数据报,加头加尾形成链路层的数据传送单元,也就是形成帧。那这个数据报呢,自然也就成为了帧的数据部分。
所以我们要是定义封装成帧的话,就是在一段数据的前后部分添头添尾,这样就构成了一个帧。那接收端呢在收到物理层上交的比特流之后,就可以根据首部和尾部的标记,从收到的比特流当中识别出帧的开始和结束。那这里面说的首部和尾部的标记,其实就是在首部和尾部添加一个字段或者说是一个字节,然后这个字节呢就叫做帧定界符。那根据这个帧定界符呢,接收端就可以确定哦,这个帧是从这儿开始的,从这儿结束的。那首部和尾部自然它们一个重要作用,就是帧定界,也就是确定帧的界限。这里面要注意的是,它包含许多控制信息,而是其中的一个也就是帧定界符才是实现这个帧定界的作用。它其他还有,比如说进行差错控制的信息,还有流量控制的信息,还有包含一些物理地址这样的信息。
那这个帧的开始和帧的结束就是由定界符来去确定的。它发送呢就是从帧的开始,也就是帧首部,开始逐个比特发送,直到发送到这个帧尾部为止。那接收端呢,首先就是从,首先从这个帧首部,判断出来,诶你发给我了一个帧了,因为它看到了这样一个帧的定界符,然后它就开始接收这样一个帧,直到它碰到了帧尾部的定界符,就确定我这样一个帧接收结束,
所以说这这个过程呢就叫做帧同步。也就是说接收方应当能从接收到的二进制比特流当中区分出帧的起始和终止。所以说组帧就是在发送端做的过程。帧同步呢,就是接收端识别帧的开始和结束这样一个过程。
那这里面再介绍一个概念,这样一个帧啊从首部到尾部包括这个数据部分,它的总长度呢就叫做数据链路层的帧长。显然为了提高帧的传输效率,我们都应该使帧的数据部分尽可能地大于首部和尾部。也就是说这样一个帧,大部分都是数据部分。
但是呢,由于我们这个链路层的协议,它不管是哪一种,都要规定所能传送的帧的最大数据部分上限,也就是这个数据部分它有一个极限值,那这个极限值呢就叫做最大传送单元MTU。那我根据不同的协议它的MTU的长度也不同,这个我们之后在讲具体的协议的时候会展开讲解。所以说我们在传送帧的时候,它的数据部分一定要小于等于这样一个协议所规定的MTU。
那我们对于发送端的组帧过程,也就是封装成帧过程呢,有四种常见的方法。第一个字符计数法,第二个字符或者说字节填充法,第三个零比特填充法,第四个违规编码法。
那在具体讲这四种组帧方法之前呢,我们先来了解这样一个名词,透明传输。那这个透明两个字啊,就是假如说我有东西在你面前,它隐身了,看不到了。那这种其实就叫透明,这个东西它是实实在在存在的,但是你却看不见。
那在计算机网络当中呢,透明传输指的是不管所传的数据是什么样的比特组合,都应当能够在链路上传送。因此,“链路层”就好像看不见有什么妨碍数据传输的东西。
那如果所传的比特当中呢恰巧与某一个控制信息完全一样,那就一定要采取一定的手段和措施,致使得接收方不会将这样的数据误认为是某种控制信息,这样才能保证数据链路层的传输是透明的。那其实上面这段话就是在讲透明传输是什么意思,就是在链路层当中你好像看不见,有什么样比特组合都能通过。那下面呢就是,如果啊出现了这种现象,达不到透明传输,我们就应该采用一种手段来实现透明传输。