[计算机网络](十三)数据链路层概念及其主要功能

147 阅读4分钟

一. 数据链路层基本概念

  • 结点:主机、路由器
  • 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
  • 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据协议的硬件和软件加到链路上就构成数据链路。
  • :链路层的协议数据单元,封装网络层数据报

数据链路层:负责通过一条链路从一个结点向另一个物理链路直接相连的结点传送数据报!!

1》数据链路层的基本功能:

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路!!!!

1370.png

  • 即一层一层指派任务!!数据链路层负责物理层的传输不会丢失....

(1) 功能一:为网络层提供服务

   - 无确认无连接服务
   - 有确认无连接服务
   - 有确认面向连接服务

!!!!有连接一定有确认

(2) 功能二:链路管理

即连接的建立、维持、释放(用于面向连接的服务)

(3) 功能三:组帧

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后.就能根据首部和尾部的标记.从收到的比特流中识别帧的开始和结束。

  • 加上的首部和尾部包含许多控制信息,它们的一个重要作用就是成为帧定界
  • 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的开始和结束!!!

1371.png

补》透明传输

1372.png

组帧的四种方法:

  • 字符计数法:

1373.png

  • 字符填充法:

可以选择在数据部分的首部和尾部加上 SOH 、EOH (在不同的协议中用不同的二进制来表示!!!)

但是这种方法对于数据部分是二进制的数据传输就不友好了,会错把数据中的某些数据(跟SOH、EOH相同的)当作EOH、SOH 。此时,就要用到字符填充法提前把数据部分跟SOH和EOH相同的数据前面加上ESC(类似转义字符的东西,也是一串二进制!!!) 1374.png

1375.png

  • 零比特填充法: 5 '1' 1 '0'

跟字符填充法的区别在于: 其头部和尾部部分相同都为01111110而它对原始数据部分的处理是遇见5个'1',就在它们后面加1个'0'。(这样就不会出现6个'1',也就不会跟头部和尾部部分相同了!!!嘻嘻嘻)

1376.png

  • 违规编码法:在物理层比特编码中实现!!

曼彻斯特编码中一个码元内不会出现 高-高 、低-低的状态,索性就用 高-高 、低-低来定界帧的起始和终止!!!

1377.png

(4) 功能四:差错控制(主要解决比特错)

  • why 会出现差错?

1378.png

  • 差错的分类

1379.png

  • 差错控制的两种方法 ----- 检错编码

<1> 奇偶校验码

1380.png

若采用奇校验,则检查要传输的数据中 '1' 的个数,如果为奇数,则最前面加上校验元 '0' ;如果为偶数,则最前面加上校验元 '1' ;即保证要传输的数据中 '1' 的个数为奇数。然后在接收端进行验证,如果其 '1' 的个数还为奇数,则判断数据没发生差错,否则发生!!!

注意: 只能检查出 50% 的错误!!!(只有发生差错的比特位的个数为奇数时,才能检查出错)

<2> CRC 循环冗余码

1381.png

判断单位是每个帧,不能找出具体位置!!!

1382.png

1383.png

  • 差错控制的两种方法 ----- 海明码

1384.png

发现双比特错,纠正单比特错 动一发而牵全身

1385.png

1386.png

1387.png

1388.png

p1就是找对应的第一位比特为 1 的 D (p2就是找对应的第二位比特为 1 的 D)。然后把 p 和 D 对应的进行异或为 0 求出 p

1389.png

把收到的数据再次从 p1 进行异或 ,然后从最后一个 p 倒着写异或结果,得到的二进制转为十进制就是出错的位置!!!

1390.png

(5) 功能五:流量控制 [限制发送方]

  • 数据链路层的流量控制是点到点的

                 - 接收方收不下就不回复确认
    

流量控制的方法:

1391.png

1392.png

补》

  • 传输层的流量控制是端到端的

                 - 接收端给发送端一个窗口公告
    

可靠传输、滑动窗口、流量控制之间的关系:

1393.png

1394.png