数据链路层的主要功能将数据转换为相应的比特流使用的信道主要有点对点的信道方式(一对一的方式), 以及广播的信道方式
一. 点对点信道的数据链路层
1. 数据链路和数据帧
链路就是从一个结点连接到相邻结点的一段物理线路(有线或者无线), 期间不准有任何的交换结点, 因此两台计算机之间进行通信的时候, 往往需要经过多条链路才能够相互通信.
数据链路 就是两台计算机要想实现通信, 单靠链路是不能够达到准确的通信的, 当前我们在链路的基础上加上一定的实现通信协议的软件和硬件设备时, 此时两台计算机之间就可以实现相互通信了,
2. 数据帧
在一个数据的前后分别加上头部和尾部, 此时的数据就会变成帧.这样接收端在收到数据时根据帧的头部和尾部就可以判断出数据的开始和数据的结束.
其中 SOH 的二进制序列是00000001 EOF二进制序列是 00000100
3.透明传输
由于在传输的时候为了辨别数据的开始和结束, 我们对其加上了一定的头部和尾部, 将数据组装成数据帧, 为了在传输的过程中保证数据的正确传输, 因此在 SOH 和 EOF 之间就不能出现和 SOH 以及 EOF 相同的序列, 为了我们从键盘中输入的数据都能够有效传输, 这样的传输就叫做透明传输我们采用了字节填充法来解决透明传输问题
即发送端在发送的时候如果发现在有效数据段出出现了界定符, 则给想用的界定符前面加上 ESC, 而接收端再接收数据的时候一旦发现有 ESC时, 就将其剥离, 这样就实现了发送端和接收端之间相互通信
二. 点对点协议 PPP
1. PPP协议帧格式
2. 字节填充
若数据中出现 0x7E, 则用0x7D, 0x5E代替, 如果出现控制字符, 则在控制字符前加上 0x7D, 接收端在接受的时候去掉对应的 0x7E
3. 零比特填充
发送端在发送前扫描这个信息段, 若发现 5 个连续的 1, 则立即填入一个 0, 接收端在接收数据的时候先找到对应的标示字段 F, 然后向后扫描, 若发现5个连续的1后面有一个 0, 则接收端就将这个 0 删掉, 这样就可以完成数据的准确收发.