博文目录

一、数据链路层的功能
二、差错的产生原因和控制方法
三、数据链路层使用的最重要的协议——HDLC协议
四、数据链路的工作过程
五、滑动窗口协议
六、点-点协议PPP

一、数据链路层的功能

1. 为什么要设置数据链路层

  1. 物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时一定会存在误差,而设置数据链路层目的就是为了在存在差错的物理层的基础上,采用差错检测,差错控制和流量控制等方法,将有差错的物理线路改进为无差错的数据链路,向网络层提供高质量的数据传输服务。
  2. 对于网络层,由于数据链路层的存在,网络层不需要知道物理层具体采用了哪种传输介质与通信设备的,是采用模拟通信方法,还是采用数字通信方法。只要接口关系与功能不变,物理层所采用的传输介质与通信设备的变化对网络层不会产生影响。

2. 数据链路的主要功能

链路管理

通信开始前,要建立数据链路连接;数据传输过程中,维护数据链路连接;通信结束后,释放数据链路连接。

帧同步

数据链路层的传输数据单位是帧,物理层的比特流封装在帧中进行传输,帧同步指的是:接收端能从收到的比特流中正确的判断一帧的开始为和结束位

流量控制

发送端发送数据超过物理线路的传输能力或者超出接收端的帧接受能力时,就会发生链路阻塞。流量控制就是为了防止出现链路阻塞

差错控制

将有差错的物理线路改进为无差错的数据链路,向网络层提供高质量的数据传输服务

透明传输

不管传输数据的比特是什么样的组合,都应当能在链路上传送

寻址

多点连接时,为了保证每一帧都能传送到正确的接收端,因此数据链路层必须有寻址的能力

二、差错的产生原因和控制方法

差错是不可避免的,而且不同的传输介质的差错程度也不相同,数据链路的任务就是分析差错产生的原因与类型,研究检查是否出现差错,如何纠正差错。

1. 差错的产生原因

当数据信号从发送端出发到物理线路时,由于物理线路存在噪声,因此数据信号经过物理线路到达接收端时,接收信号必然是数据信号和噪声信号的叠加,这就是差错的产生原因。

2. 差错的控制方法

2.1 误码率的定义

误码率(Pe):指二进制比特在数据传输系统中被传错的概率
N为传输的二进制比特总数,Ne为传错的比特数

Pe = Ne / N

2.2 差错控制

差错控制:检测和纠正 比特流传输错误的方法,目的是为了减少物理线路的传输错误

差错控制的两种策略:
纠错码:每个传输的分组带上足够的冗余信息,接收端能发现并自动纠正传输差错
检测码:分组仅包含足以使接收端发现差错的冗余信息,接收端能发现出错,但不能确定哪一比特是错的,并且自己不能纠正传输差错

纠错码实现困难,而检错码方法虽然可以通过重传机制达到纠错目的,但是实现简单,所以广泛采用检错码策略

2.3 检错码:循环冗余编码(CRC)

检错码又分为两种,奇偶校检码和循环冗余编码,而循环冗余编码是广泛使用的检错码方法,它检错能力强,实现容易。

循环冗余编码(CRC)的工作原理:

  1. 首先收发双方约定一个**生成多项式**G(x)
  2. 发送端把数据看成一个多项式f(x)
  3. 把f(x) 乘以生成多项式的最高次幂,f(x) * xk,目的是为了左移k位,用来放余数
  4. f(x) * xk/G(x),求得余数
  5. 将f(x) * xk+R(x)作为整体,发送到接收端
  6. 接收端用接收到的数据f′(x)采用相同的算法,去除约定好的G(x),得到余数R′(x)。如果R′(x)等于 R(x),表示发送没有出错;否则,说明传输出错,例如:1100111001 / 11001 = 0。

举例:发送数据110011
1. 约定G(x)=x4+x3+1,则对应G(x)的二进制代码为: 11001(N = 5,k = 4)
2. 发送数据比特序列为110011,其对应的多项式为f(x)=x5+x4+x1+1
3. G(x)的最高次幂为4,f(x) * x4 = 1100110000
4. f(x) * xk/G(x),余数为:R(x) = 1001
5. 将f(x) * xk+R(x)作为整体,发送到接收端:1100111001
6. 接收端解码:1100111001 / 11001 = 0,说明传输成功

三、数据链路层使用的最重要的协议——HDLC协议

数据链路层协议中,面向比特型协议有两种比较重要的:
1. HDLC协议
2. 点-点协议PPP
其中HDLC协议是最重要的!

1. HDLC协议数据链路的配置方式和数据传送方式

数据链路有两种配置方式:非平衡配置和平衡配置

1. 非平衡配置

非平衡配置的特点:主从站结构(这是和平衡配置的区别),主站发出命令,从站接受命令,发出响应
非平衡配置的结构:点-点连接和点-多点连接

非平衡配置有两种数据传输方式:
1. 正常响应模式:主站可以随时向从站传输数据帧,从站只有在主站向它发送命令帧进行探询(poll),从站响应后才可以向主站发送数据帧。
2. 异步响应模式:主站和从站可以随时相互传输数据帧;从站可以不需要等待主站发出探询就可以发送数据;主站仍负责数据链路的初始化、链路的建立、释放与差错恢复等功能

2. 平衡配置

  1. 链路两端的两个站都是复合站(combined station)
  2. 复合站同时具有主站与从站的功能
  3. 每个复合站都可以发出命令与响应
  4. 平衡配置结构中只有异步平衡模式(asynchronous balanced mode,ABM)
  5. 异步平衡模式的每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的许可

2. HDLC协议的帧结构

网络层传输的数据就封装在信息字段I中。

1. 标志字段

前面我们说到帧同步,指的是接收端能从收到的比特流中正确的判断一帧的开始为和结束位,而标志字段就是用来标记帧的开始和结束。

透明传输问题:
这里会出现一个问题,假如我们定“01111110”为标志字段,那么可能信息字段会出现与该标志字段相同的比特码,结果就会导致误认为这个是帧结束的标记。

0比特插入/删除法解决透明传输问题:
发送端在两个标志字段之间的比特码中,检查出5个连续的1,不管后面的比特位是0还是1,都插入一个0比特,保证不会出现连续的6个1(对应标志字段01111110)。
接收端接受帧后,对两个标志字段之间的比特码,检查出5个连续的1,就把后面的0比特删除,这就还原成原来的比特序列

2. 地址字段

当使用非平衡方式传送数据时,地址字段填从站地址
当使用平衡方式传送数据时,地址字段填应答站地址
如果地址字段全为1,表示广播地址,网中所有站都要接受该帧

3. 控制字段(最重要)

HDLC帧中很多重要的功能都是靠控制字段来提供,根据最前面两个比特的取值,HDLC帧可以分为下面三类:

4. 信息字段

传送的数据(比特码)

5. 帧校检字段

HDLC采用CRC校检方式

3. 控制字段详解

信息帧

(1)N(S)和N(R)的意义
N(S) — 当前发送的信息帧的序号
N(R) — 该站已正确接收序号为N(R)-1的帧及以前各帧,表示下一次希望收到序号为N(R)的帧

(2)P/F的意义
P/F指探询/终止位,如果P/F = 0,表示没有什么意义;如果P/F = 1,则有比较多注意的地方:
- 正常响应模式中,只有主站向从站发送“探询”后,从站才能向主站发送信息,此时主站的帧探询位=1
- 从站接收到帧,发现探询位为1,如果从站要发送信息给主站,则从站的帧发送的最后一帧置终止位为1,表示发送结束
- P = 1 和 F = 1在帧交换中要成对出现

(3)信息帧的表示:

标准格式:

例如:

监控帧

监控帧的前面两位为10,决定监控帧不同类型的是第3,4位比特

(1)RR,RNR,REJ用于拉回重传方式,SERJ用于选择重传方式(拉回重传和选择重传接下来会讲到)
(2)所有的监控帧都不包含传输的数据

无编号帧

四、数据链路的工作过程

数据链路的工作过程分为三个阶段:建立数据链路,帧传输,释放数据链路

结合数据链路和物理层的流程:

1. 正常响应模式下分析数据链路的工作过程

(1)数据链路建立
主站发送 置正常响应模式SNRM帧 向从站请求建立数据链路,如果从站同一,发送无编号确认UA帧回主站,于是建立成功

(2)数据帧传输
这里就结合上面信息帧介绍的来理解,从图中可以看出,P和F是成对出现的,主站发出探询位P=1,从站才能发送信息帧,并且以终止位F=1结束。

(3)释放数据链路
主站发送无编号拆链帧,从站同一拆链,发送无标号确认帧回给主站,释放成功

五、滑动窗口协议

前面提到了用检错码来检测帧传输中是否发生了错误,如果发生了错误,就需要通过滑动窗口协议来解决。
数据链路层的差错控制与流量控制采用了滑动窗口协议。

滑动窗口协议分为两种类型:

1. 单帧停止等待协议

发送端每次发送1帧之后,需要等待接收端返回确认帧,如果接受到ACK,表示传输成功,发送下一帧;如果接收到NAK,表示传输错误,重新发送此帧

2. 多帧连续发送协议

多帧连续发送有两种类型,后退N帧(GBN)拉回重发方式和选择重发(SR)方式

1. 后退N帧(GBN)拉回重发方式

只要有一个帧发送失败,则当前发送的全部帧都重新发送,这样导致的问题就是会发送许多重复帧,流量控制不好

2. 选择重发(SR)方式

选择重发和拉回重发的区别在于,当前发送的帧中出现某个帧传输错误后,在下一次发送时只是重新发送该错误的帧

3. 滑动窗口机制

在GBN和SR中,发送端可以连续发送多个数据帧,从流量控制的角度出发,发送端连续发送数据帧的数量必然会收到限制:
1. 接收端的缓冲区可以用于接受新的帧的容量
2. 接收端处理数据帧的速度
3. 接收端需要等待重传的帧的数量

引入滑动窗口的目的:对可以连续发出的最多帧数(已发出但未确认的帧)作限制

发送窗口(Ws):表示在收到对方确认的信息之前,以连续发出的最多数据帧数
接受窗口(Wr):可以连续接收的最多数据帧数(只有序号在窗口内的帧才可以接收,否则丢弃)

滑动窗口机制实例

六、点-点协议PPP

点-点协议PPP:特点是简单,适用范围广,广泛应用于广域网环境中路由器-路由器连接,以及家庭用户接入Internet之中,成点-点线路中应用最多的数据链路层协议

1. PPP协议的特点

  1. 在物理层支持点-点线路连接、全双工通信,支持异步通信或同步通信。
  2. 在数据链路层实现PPP数据帧的组帧、传输与拆帧,CRC校验;不使用帧序号,不提供流量控制功能。
  3. 通过链路控制协议(LCP)来建立、配置、管理和测试数据链路连接;4. 通过网络控制协议(NCP)来建立和配置不同的网络层协议。
  4. 可以用于用户计算机通过Modem与电话线路、ADSL Modem与电话线路,以及HFC传输网中Cable Modem与同轴电缆接入,也可以用于光纤接入。
  5. 在网络层支持IP协议与NetWare IPX等多种协议。
  6. 广泛应用于主机—路由器、路由器—路由器的连接。

2. PPP协议的工作过程

PPP协议帧结构:

PPP链路的建立过程:
1. 每一个端主机首先发送LCP帧,以建立、配置和测试PPP链路
2. 链路建立后,每一个主机发送NCP帧,以选择和配置网络层协议
3. 当网络层协议配置好后,网络层的数据通过PPP信息帧传输

PPP数据链路结合物理层:

认证协议

在建立PPP数据链路时,需要进行认证,认证主要有两种协议:
口令认证协议(PAP):明文传输账号密码,容易被窃听,是一种不安全的认证协议
查询握手认证协议(CHAP):使用MD5加密账号密码,并且通过三次握手来启动CHAP的认证过程,是一种安全的认证协议

OSI参考模型——数据链路层详解相关推荐

  1. OSI体系结构——数据链路层详解

    前言 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间.数据链路层在物理层提供的服务的基础上向网络层提供服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理 ...

  2. OSI参考模型——物理层详解

    一.物理层的基本功能 物理层是OSI参考模型的最低层,它利用传输介质为通信的主机之间建立,管理和释放物理连接,实现比特流的透明传输(传输单位是比特),保证比特流通过传输介质的正确传输. 1. 与数据链 ...

  3. 【Linux】24_网络管理数据链路层详解

    目录 数据链路层简介 组建局域网 VLAN详解 TRUNK详解 数据链路层简介 功能:链路创建,维护,管理帧封装,传输,同步差错校验 地址:MAC地址(媒体访问控制地址),结构为12位16进制数字.示 ...

  4. IP,ARP,以太网--网络层与数据链路层详解

    目录 网络层 IP协议--网络层 基本概念 IP协议格式 IP地址 子网 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 ICMP协议--网络层 ping命令 面试常问 ...

  5. Linux网络学习第七部分:ip协议+数据链路层详解

    IP协议与TCP协议的关系 上一部分我们详细的讲了TCP的发送与接收,但事实上数据并不是从传输层TCP直接发送到对端主机的传输层TCP缓冲区,而是需要经过网络层ip协议的加工,在经过数据链路层加工(后 ...

  6. 计算机网络(三)数据链路层详解

    目录 第三章 数据链路层和局域网技术 3.1 数据链路层功能 3.2 点到点信道的数据链路 PPP协议的特点 PPP协议的帧格式 PPP协议的工作状态 3.3 广播信道的数据链路 局域网的数据链路层 ...

  7. 【计算机网络】数据链路层详解

    1.概念 主要功能:用于两个设备(同一种数据链路节点)之间进行信息传递. 网络层和数据链路层对比: 网络层是进行地址管理和路由选择的,是为数据报的转发找出一条路来:而数据链路层解决的是两个结点之间的数 ...

  8. [Linux] Linux网络之数据链路层详解

    1. 数据链路层   处于TCP/IP中物理层, 数据链路层的协议定义了通过通信媒介互连的设备之间的传输规范. 在计算机中数据是由0 1表示的,实际通信时通信媒介处理的时电压的高低.光的闪灭及电波的强 ...

  9. Linux| |网络层以及数据链路层详解(不点进来会后悔的那种详解哦!)

    网络层 1. 基本概念 主机:配有IP地址,但是不进行路由控制的设备 路由器:配有IP地址,又能进行路由控制 结点:主机和路由器的统称 网络层:地址管理和路由选择 2. IP协议 插图:IP报文首部 ...

最新文章

  1. 本地windows上传大文件到Linux服务器工具的选择以及使用方法
  2. boot loader:Grub
  3. 设计模式之策略模式(strategy)--游戏角色使用武器
  4. oracle 表分区[三]
  5. 【干货】极简体验+免费真的万能嘛?北森Saas第一坑:免费
  6. SDWebImage详解
  7. proxy connect abort处理方法_Java代理设计模式(Proxy)的几种具体实现
  8. matplotlib的颜色及线条控制
  9. (四)比特币时间序列数据的AI预测
  10. Zookeeper节点监听结合Spring
  11. P2P技术原理及应用
  12. 饥荒联机版服务器启动慢_饥荒联机版大型攻略——简介与目录
  13. gmp新附录 计算机系统,GMP新附录:计算机系统
  14. 09-Git-补丁patch操作
  15. jxt解析上传的xls文件
  16. flutter 设置全屏背景图(导航栏)
  17. FLUENT中关于边界和域的操作
  18. 900年历史的万安桥失火!传统古建筑又该如何保护?
  19. 任正非评华为HR胡玲事件,元芳你怎么看?
  20. Sendgrid 发信失败!错误代码421.5.7.1 是什么原因?

热门文章

  1. 什么是代码,源文件、编辑和编译?
  2. 关于uIP移植以及部分特性解析和勘误
  3. 初级算法-10. 有效的数独
  4. 初级算法_数组 --- 有效的数独
  5. 逻辑函数(表示方法、形式转换、化简、最小项、最大项)
  6. sxt_1_struts2入门_hello
  7. 升降压斩波电路matlab,升降压斩波电路matlab仿真
  8. 万科副总裁毛大庆在建策沙龙上关于楼市走向的发言
  9. 【RedisTemplate】Set数据类型的常用操作
  10. BAT在互联网医疗的产业布局分析