计算机网络

数据链路层

2019-07-23  本文已影响0人  程序员will

[TOC]

数据链路层

以下服务由数据链路层提供

数据链路层

错误检测

当数据从一个设备传输到另一个设备时,系统不保证设备接收的数据是否与另一个设备传输的数据相同。错误是指在接收方端收到的消息与发送的消息不同的情况。

错误的类型

错误检测

错误可分为两类:

单比特错误

给定数据单元的唯一一位从1变为0或从0变为1。

错误检测

错误在串行数据传输中不太可能出现。例如,Sender以10 Mbps的速率发送数据,这意味着该位仅持续1?s,并且出现单位错误,噪声必须大于1?s。

单比特错误主要发生在并行数据传输中。例如,如果使用8条线来发送一个字节的8位,如果其中一条线路有噪声,则每个字节会损坏单个位。

突发错误

两个或多个位从0更改为1或从1更改为0称为突发错误。

从第一个损坏位到最后一个损坏位确定突发错误。

错误检测

突发错误最有可能发生在串行数据传输中。

受影响的位数取决于噪声和数据速率的持续时间。


错误检测技术

最流行的错误检测技术是:

单一奇偶校验

错误检测 错误检测 错误检测

校验

校验和是基于冗余概念的错误检测技术。

它分为两部分:

校验和生成器

校验和在发送方生成。校验和生成器将数据细分为每个n位的相等段,并且所有这些段通过使用一个补码算法加在一起。该和被补充并附加到原始数据,称为校验和字段。扩展数据通过网络传输。

错误检测

校验和检查

校验和在接收方验证。接收器将输入数据细分为每个n比特的相等段,并且将所有这些段加在一起,然后补充该总和。如果和的补码为零,则接受数据,否则拒绝数据。

  1. 接收方遵循以下步骤:
  2. 块单元被分成k个部分和n个比特中的每一个。
  3. 通过使用一个补码算法将所有k个部分加在一起得到总和。
  4. 总和是补充。
  5. 如果和的结果为零,则接受数据,否则丢弃数据。

循环冗余校验(CRC)

CRC是用于确定错误的冗余错误技术。

以下是CRC中用于错误检测的步骤:

如果该除法的结果为零,这意味着它没有错误,并且数据被接受。

如果该除法的结果不为零,则意味着数据由错误组成。因此,数据被丢弃。

错误检测

假设原始数据是11100,除数是1001。

CRC生成器

错误检测 错误检测

数据链路控制

数据链路控制是数据链路层提供的服务,可通过物理介质提供可靠的数据传输。例如,在半双工传输模式中,一个设备一次只能传输数据。如果链路末端的两个设备同时传输数据,它们将发生冲突并导致信息丢失。数据链路层提供设备之间的协调,以便不发生冲突。

数据链路层提供三个功能:

数据链接控件

行纪律

Line Discipline可以通过两种方式实现:

END / ACK

END / ACK代表查询/确认当链路上没有错误的接收器并且在两个设备之间具有专用路径以使得能够接收传输的设备是预期的设备时使用。

END / ACK协调哪个设备将开始传输以及接收者是否准备好。

END / ACK的工作

发送器发送称为查询(ENQ)的帧,询问接收器是否可用于接收数据。

接收器响应肯定确认(ACK)或否定确认(NACK),其中肯定确认意味着接收器准备接收传输,否定确认意味着接收器不能接受传输。

以下是接收者的回复:

数据链接控件

Pool/Select

线路规则的轮询/选择方法适用于将一个设备指定为主站,而其他设备为二级站的拓扑。

Poll / Select的工作

选择

数据链接控件

轮询

数据链接控件

流量控制

已经开发了两种方法来控制数据流:

停止与等待

停止等待的好处

Stop-and-wait方法很简单,因为在发送下一帧之前检查并确认每个帧。

停止等待的缺点

停止等待技术使用效率低,因为每个帧必须一直传输到接收器,并且确认在下一帧发送之前一直传播。发送和接收的每个帧使用遍历链路所需的整个时间。

滑动窗口

发件人窗口

数据链接控件

接收窗口

数据链接控件

错误控制

错误控制是一种错误检测和重传技术。

错误控制的类别:

数据链接控件

停止等待ARQ

停止等待ARQ是一种用于在帧损坏或丢失的情况下重新传输数据的技术。

该技术的工作原理是发送方在收到最后发送帧的确认之前不发送下一帧。

重传需要四个功能:

重传的两种可能性:

滑动窗ARQ

SlidingWindow ARQ是一种用于连续传输错误控制的技术。

用于重传的三个功能:

滑动窗口ARQ中使用的两个协议:

重传可能有三种可能性:

数据链接控件

选择性拒绝ARQ

数据链接控件
上一篇下一篇

猜你喜欢

热点阅读