数据链路层

Posted ztniu666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层相关的知识,希望对你有一定的参考价值。

三、数据链路层

3.1、基础知识


数据链路和帧

链路(link)是从一个结点到相邻结点的中间没有任何交换结点的物理线路

数据链路是加上必要通信协议(通信规程(procedure))的物理链路,是逻辑链路。常用网络适配器实现这些协议。

:数据链路层协议的数据单元。

三个基本问题
  1. 封装成帧

    定义:在一段数据前后分别添加帧定界的首部和尾部。接收端收到物理层上交的比特流后,根据帧定界识别一个帧。

    传输效率——尽可能 数据部分>首部+尾部(长度),但有数据部分长度上限——最大传输单元MTU(Maximum Transfer Unit)。

    帧定界可以用帧定界符——SOH(Start Of Header)0x01,EOF(End Of Transmission)0x04。

    技术图片

  2. 透明传输

    透明:某一个实际存在的事物看起来却好像不存在一样。

    解决方法:字节填充(byte stuffing)或字符填充(character stuffing)——插入转义字符ESC(0x1B)

  3. 差错检测

    差错:比特差错、传输差错(帧丢失、帧重复、帧失序)。

    数据链路层——>网络层不是“可靠传输”服务。

    比特差错,误码率BER(Bit Error Rate)——错误/总(比特数)。

    差错检测措施——循环冗余检验CRC(Cyclic Redundancy Check):把数据划分为组,假定每组K个比特。假定传输数据M=101001(k=6)。CRC运算就是在M后面添加用于检错的n为冗余码,然后构成一个帧一起发出去,一共发送(k+n)位。

    n位冗余码的得到方法:(二进制模2运算——不进位)。事先规定n+1位的除数P,得到商Q余数R。现假定M=101001,P=1101(n=3),用M模2运算除P得到商Q=110101,余数R=001,这个余数R就作为冗余码拼接在数据M的后面发送出去。这种为了检错而进行添加的冗余码常称为帧检验序列FCS(Frame Check Sequence)。因此加上FCS后发送的帧是101001001(共k+n位)。

    在接收端把接收到的数据以帧为单位进行CRC检验:把收到的帧都除以同样的除数P(模2运算),然后检查得到的余数R。若余数R为0,则这个帧么有出错,接受;否则就有差错,丢弃。

    P=1101,M=1011001,n=3,k=7

    技术图片

    生成多项式:P(X)=X3+X2+1表示除数P=1101。

3.2、点到点协议PPP


点到点协议PPP

可靠数据链路控制HDLC(High-level Data Link Control)(了解,很少使用)——>PPP(Point-to-Point Protocol)协议。

PPP协议的组成

一个将IP数据封装到串行链路的方法;

一个用来建立、配置和测试数据链路的链路控制协议LCP;

一套网络控制协议NCP(其中每个协议支持不同分网络层协议);

PPP协议特点

简单、封装成帧、透明性、多种网络协议、多种类型的链路、差错检测、检测连接状态、最大传送单元、网络层地址协商、数据压缩协商。

支持点对点链路通信和全双工链路。

PPP协议的帧格式
  1. 各字段意义

技术图片

  1. 字节填充(异步传输)

    填充方法如下:

    • 把信息字段中的0x7E转化为2字节序列(0x7D,0x5E)
    • 把信息字段中的0x7D转化为2字节序列(0x7D,0x5D)
    • 当信息字段中出现ASCII码的控制字符(数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时把该字符编码加以改变。例如:0x03就要把它转变为2字节序列(0x7D,0x23)
  2. 零比特填充(同步传输)

    零比特填充的具体方法:

    • 在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。
    • 只要发现有5个连续的1,则立即填入一个0。
    • 接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。
PPP协议的工作状态

3.3、使用广播信道的数据链路层


局域网的数据链路层

局域网主要特点:网络为一个单位所拥有,且地理位置和站点数目均有限。

局域网主要优点:广播功能;便于系统扩展和逐渐演变,各设备位置可灵活调制和改变;提高系统的可靠性(reliability)、可用性(availability)、生存性(survivability)。

局域网分类(网络拓扑):星形图(集线器);环形网;总线网。

共享信道方法:

  1. 静态划分信道——划分信道(频分复用、时分复用等)
  2. 动态划分信道(多点接入)
    • 随机接入(重点)——解决碰撞问题
    • 受控接入
以太网
  1. 共享以太网

    采取两种措施

    • 无连接的工作方式,尽最大努力交付即不可靠交付。解决碰撞问题——载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)
    • 奥彻斯特编码

    CSMA/CD协议

    详见:https://blog.csdn.net/idealhunting/article/details/85038512

    使用集线器的星形拓扑

    ? 集线器

  2. 交换式以太网

以太网的信道利用率

以太网帧格式

3.4、扩展的以太网

?
?

以上是关于数据链路层的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络—— 数据链路层:数据链路层概述

计算机网络(3) 数据链路层

数据链路层-第一节:数据链路层概述

计算机网络-数据链路层

数据链路层

计算机网络数据链路层总结