当前位置:   article > 正文

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

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

待更新中。。。

目录

前言

一、数据链路层  

数据链路层三个重要问题:

帧定界 !!!(确定帧的界限)

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

2.透明传输

两种方法解决此问题:(组帧)

3.差错检测

FCS(帧检验序列)

*可靠传输

前言:使用差错检验技术,接收方在数据链路层就可以检测到帧在传输过程中是否产生了误码,那么接下来怎么办呀?

 传输差错

可靠传输的三种实现机制:

A.停止—等待协议​​​​​​​

等待-停止协议的信道利用率

B.回退N帧协议(GBN)

 累计确认:

C、选择重传协议(SR)

由GBN协议可知,一个数据分组的误码就会导致后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,对通信资源产生极大浪费,因此引入选择重传协议。​​​​​​​ 

过程分析

二、点对点协议(PPP)

1.基本概念

​编辑

 2.帧格式​编辑

3.透明传输

4.差错检测

PPP帧尾部包含有 1 个两字节的帧检验序列 FCS 字段,使用循环冗余校验 CRC 来计算该字段的取值。 

 接收方每收到一个PPP帧,就进行 CRC 检验。若 CRC 检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层 向上提供不可靠传输服务。

5.工作状态

*PPP协议的LCP连接 

协商结束后双方就建立了LCP链路,接着就进入鉴别状态,在这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组。若鉴别身份失败,则转到链路终止状态。若鉴别成功,则进入网络层协议状态。

*PPP协议的NCP连接

注:从设备之间无链路开始,到先建立物理链路,再建立LCP链路。经过鉴别后再建立NCP链路,然后才能交换数据。由此可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

三、广播信道(共享式局域网)

1.局域网的数据链路层

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

​​​​​​​2.媒体介入控制

a.基本概念 

b.媒体接入控制主要分类

静态划分信道

信道复用 

总结



前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据链路层  

  • 链路:一条无源的点到点的物理线段,中间无其他任何交换结点(一条链路只是一条通路的组成成分之一)
  • 数据链路:把实现通信协议的硬件和软件加到链路上,构成了数据链路

在数据链路层上传输的数据包又称为帧) 

数据链路层以为单位传输和处理数据

数据链路层三个重要问题:

1.封装成帧(数据链路层给上层交付的协议数据单元添加帧头和帧尾的过程)

  • 帧头和帧尾包含重要的控制信息
  • 帧头帧尾作用之一:帧定界

发送方数据链路层将上层交付下来的协议的数据单元封装成帧之后,还需要通过物理层将构成帧的各比特转化为电信号发送到传输媒体。那么! 接收方数据链路层是如何从物理层交付的比特流中提取一个个的帧呢?

帧定界 !!!(确定帧的界限)

帧的开始和帧的结束由定界符确定,发送从帧开始(帧首部)开始逐个比特发送,直到发送到帧尾部。接收端从帧首部判断出来发送了一个帧数据,接收端开始接收数据,直到发现帧尾部的定界符。

这里需要说明的是:不是每一种数据链路层的帧都包含帧定界(例如:以太网V2的MAC帧)

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止

组帧是在发送端进行的(封装成帧,添加帧首和尾进行帧定界)

帧同步是在接收端进行的(区分其首部与尾部)

帧首部+帧尾部+帧的数据部分的总长度是数据链路层的帧长,为了提高帧的传输效率,应该使帧的数据部分尽可能大于首部和尾部。

数据链路层的协议规定了帧的数据部分的最大传送单元MTU(MTU即为传输中数据的长度限制),在不同协议中MTU的值不同。在传输过程中,帧的数据部分的长度一定小于等于最大传送单元MTU

2.透明传输

透明传输是指不管所传输的数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。 

这时候我们需要思考一个问题:如果你想要实现透明传输,那上层交付的协议数据单元含有帧定界标志或其他怎么办?

两种方法解决此问题:(组帧)

1.面向字节的物理链路使用字节填充(字符填充)来实现透明传输

 在发送数据之前,对帧的数据部分进行扫描,每当出现一个帧的定界符或转义字符,就在它的前面插入一个转义字符。因为接受端的数据链路层会在将数据送往网络层之前删除插入的转义字符,所以当接受端收到连续两个转义字符的时候,就删除其中前面的一个。

2.面向比特的物理链路使用比特填充的方法实现透明传输

在发送前对数据部分进行扫描,每5个连续的比特1后面就插入一个比特0,这样就确保了帧定界子在整个帧中的唯一性,就可以实现透明传输。 接受方数据链路层将每5个连续比特1后面的0去除即可!

(这里分享一道例题,字丑不要介意呜呜呜)

 为提高帧的传输效率,应当使帧的数据部分长度尽可能大些

3.差错检测

实际通信链路在比特传输中可能会产生差错:1变成0,0变成1,这叫做比特差错

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率(BER)(bit error rate)

使用差错检测法来检测数据在传输过程中是否产生比特差错,是数据链路层要解决的重要问题之一。

在一般的帧尾部分,都会包含FCS序列,就是让接收方的数据链路层检查帧在传输过程中是否产生误码。

两种检错方法:

1.奇偶校验

在待发送数据后添加1位奇偶校验位,使得整个数据(包含校验位在内)中的‘1’的个数为奇数(奇校验)或偶数(偶校验)

如果有奇数个发生误码,则奇偶性变化,可以检测出误码

如果有偶数个发生误码,则奇偶性不变,检测不出(漏检)

​​​​​​​

这种方法漏检率高,一般不用它

*2.循环冗余检验(CRC)

具体实现步骤

收发双方约定好一个生成多项式G(x)

发送方基于待发送的数据和生成多项式计算出差错检验码(冗余码),将其添加到待传输数据后面一起传输

 

 CRC具体计算实例:

 

 ps:

1.检错码只能在检测帧在传输过程中是否出现差错,无法定位与纠正

2.CRC循环冗余校验漏检率低,广泛应用于数据链路层

FCS(帧检验序列)

在数据后面添加上冗余码(余数)称为帧检验序列(FCS)

  • CRC是一种检验错误的方法,而FCS是添加在数据之后的冗余码
  • FCS可由CRC获取,但CRC并非获取FCS的唯一方案

仅使用CRC只能做到无差错接受 (凡是接受端数据链路层的帧都没有传输差错,有差错的帧都已经被丢弃不接受)

要做到可靠传输(发送什么就收到什么)就必须加上确认和重传机制

*可靠传输

前言:使用差错检验技术,接收方在数据链路层就可以检测到帧在传输过程中是否产生了误码,那么接下来怎么办呀?

这取决于数据链路层向上层提供的服务类型:

1.不可靠传输:仅仅丢弃有误码的帧,其他什么都不做 

2.可靠传输:想办法实现发送端发什么接受端就收什么

  • 一般来说,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理

  • 无线链路易收到干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输

 传输差错

比特差错仅仅只是传输差错的一种,还有分组丢失、分组失序以及分组重复(这些差错一般不出现在数据链路层,而是它的上层)

可靠传输服务并不仅仅局限在数据链路层,例如:TCP/IP四层体系结构:

 

可靠传输的三种实现机制:

  • 停止-等待协议SW
  • 回退N帧协议GBN
  • 选择重传协议SR

ps:这三种可靠传输实现机制的基本原理可以应用到计算机网络的各个层次里。 

A.停止—等待协议​​​​​​​

停止—等待协议就是当发送方发送一段数据分组后,会停下来等到接收方返回消息,确认收到或没有收到数据。

 

 ACK:接收方收到数据分组后进行差错检测,若没有误码,则接收该分组,并给发送方发送 确认分组

 NAK:若差错检测发现误码,则丢弃该分组,并给发送方发送 否认分组 

传输过程可能出现的三个问题(面向整个层次结构体系)

Q1:上述只是发送过程产生数据分组误码的情况,那如果数据分组在传输过程丢失了怎么办呀?

A1:首先说明:接受方收不到收据分组,就不会发送ACK或NAK。如果不采取措施就会一直处于等待状态。对于网络多路由的互联网环境而言,经常出现此情况,so,我们可以用超时重传实现数据分组的重传输

超时重传:在发送方发送完一个数据分组后,启动一个 超时计时器。到了超时计时器所设置的重传时间而发送方仍接收不到ACK或NAK,则重传原分组(一般可将重传时间选为略大于 “ 从发送方到接收方的平均往返时间 ”)

Q2:发送方确认分组丢失,如何确定超时重传的数据分组是否为重复的数据分组勒?

A1:为了避免重复分组的情况,必须给每个分组带上序号

只需要保证和上个分组的序号不同即可,因此只需要1个比特编号,0或1

 Q3:如果确认分组迟到,导致了超时重传,接收方再次发送确认分组,如何区分同一确认分组的重复发送呢?

A1:

ps:数据链路层的点对点信号,往返时间固定,不会出现迟到现象,所以只在数据链路层实现SW协议,可以不用给确定分组编号

解决方案:对确认分组也进行编号

等待-停止协议的信道利用率

 图中忽略了接收方对数据分组的处理时延,以及发送方对确认分组的处理时延。

  • TD:发送方发送数据分组的发送时延
  • RTT:收发双方之间的往返时间
  • TA:接收方发送确认分组所耗费的发送时延

 

信道利用率: 

  

 

 当往返时延 RTT 远大于发送时延 TD 时(例如使用卫星链路),信道利用率非常低。为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即 后退 N 帧协议 GBN 和 选择重传协议 SR 。

例题: 

B.回退N帧协议(GBN)

如果发送发在收到接收方的确认分组之前,可以连续发送多个数据分组,则可大大提高信道利用率,这是一种流水线式的传输

 回退 N 帧协议 GBN :

  • 在 流水线传输 的基础上利用 发送窗口 来限制发送方可连续发送数据分组的数量
  • 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为 滑动窗口协议

 

 

过程分析:

  1. 发送方将序号落在发送窗口内的 0~4 号数据分组依次连续发送出去,通过互连网的传输正确到达接收方。

 

接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送确认分组 。 

 

0~4 号确认分组通过互连网的传输正确到达发送方,发送方每接收一个,发送窗口就向前滑动一个位置,这样就有新序号落入发送窗口。发送方可以将已收到确认的数据分组从缓存中删除,接收方将已接收的数据分组交付上层处理。 

 累计确认:

接收方 不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定),对按需到达的 最后一个数据分组发送确认 

ACKn: 表示序号为 n 及以前的所有数据分组都已正确接收。

 当接收完 0 号和 1 号数据分组后,给发送方发送一个累积确认 ACK1,接受完 2~4 号分组后,发送累积确认ACK4。假设ACK1在传输过程中丢失,而ACK4正确到达发送方,发送方接收后就知道序号4及之前的分组都已正确接收。

累计确认的优点:

  • 即使确认分组丢失,发送方也可能不必重传
  • 减少了接收方的开销和对网络资源的占用

以上为无差错传输,而遇到差错时的传输过程: 

如图 5 号数据分组出现误码被丢弃,后续到达的 4 个数据分组的序号与接收窗口不匹配,同样也不能接收,将它们丢弃。并返回之前最后一个确认分组 ACK4,每丢弃一个分组就发送一个 ACK4,也就是会连续发送 4 个 ACK4。
发送方收到重复的确认,就知道之前发送的分组出现差错,于是就可以不等超时计时器超时就立刻重传。至于收到几个重复确认分组后开始重传,由具体实现决定。
在本例中,尽管序号为 6,7,0,1 的数据分组正确到达接收方,但由于 5 号数据分组误码不被接受,它们也 “受到牵连” 而不被接受,发送方还要重传这些数据分组,这就是所谓的 Go-back-N (回退 N 帧) 。

 解析:

只收到了0、2、3证明仅仅只正确接收了0-3号帧,并针对它们每一个发送了确认帧,只不过针对1号的确认帧给丢啦,而发送方发送了0-7号帧,所以应该从4号帧开始重传,即重传4、5、6、7号帧,共4个,选c

 

C、选择重传协议(SR)

由GBN协议可知,一个数据分组的误码就会导致后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,对通信资源产生极大浪费,因此引入选择重传协议。​​​​​​​ 

设法 只重传出现误码的数据分组

因此,接收窗口的尺寸WR不再等于 1 (而是 大于 1),以便 接收方先收下窗口内无误码的数据分组 ,等所缺部分收齐后一并递交上层,这就是 选择重传协议

 

  • 过程分析

1.接收方将接收 0 号和 1 号数据分组,并发送确认分组,之后接收窗口向前滑动两个位置。接收方再接收 3 号数据分组,并发送 3 号确认分组,但是接收窗口不能向前滑动,因为这是一个未按序到达的数据分组。 

2.发送方接收 0 号 和 1 号确认分组,发送窗口向前滑动两个位置。再将落入的 4 号 和 5 号数据分组发送出去。发送方接收 3 号数据分组,但是窗口不能向前滑动,因为这个是一个未按序到达的确认分组。 

 3.等待 2 号数据分组超时重传后,接收方接收到按序到达的数据分组,并发送确认分组,接收窗口才可以向前滑动。

 4.发送方收到按序到达的 2 号确认分组,发送窗口向前滑动 4 个位置。

 

解析:

与GBN不同,SR 不支持累计确认,接收方每接收一个数据帧,就会回传相应的确定帧

根据题目可知,需要重传0、2号帧,3号帧没给任何线索,所以不考虑三号帧,故重传帧数为2,选B

二、点对点协议(PPP)

1.基本概念

点对点协议 (PPP)是目前使用最广泛的点对点数据链路层协议(PPP协议也广泛用于广域网路由器之间的专用线路

PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成: 

  1. 对各种协议报的封装方法(封装成帧)
  2. 链路控制协议LCP (用于建立、配置以及测试数据链路的连接)
  3. 一套网络控制协议NCPs(其中的每一个协议支持不同的网络层协议

 2.帧格式

 

ps:符号“0x”表示后面的字符使用16进制表示 

PPP是面向字节的,所有PPP帧的长度都是整数字节

3.透明传输

实现透明传输的方法:

1.面向字节的异步链路 

​​​​​​​

2.面向比特的同步链路 

发送方的处理:

对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就填充一个比特0

接收方的处理:

 对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就将其后的比特0删除。

4.差错检测

PPP帧尾部包含有 1 个两字节的帧检验序列 FCS 字段,使用循环冗余校验 CRC 来计算该字段的取值。 

 接收方每收到一个PPP帧,就进行 CRC 检验。若 CRC 检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层 向上提供不可靠传输服务

5.工作状态


1.当用户拨号接入ISP后,就建立了一条从用户PC机到ISP的物理连接
2.这时用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧)以便建立LCP连接
3.这些分组及其响应选择了将要使用的一些PPP参数
4.接着还要进行网络层配置NCP给新接入的用户PC机分配一个临时的IP地址
5.这样,用户PC机就成为因特网上的一个有IP地址的主机了。
6.当用户通信完毕时,NCP释放网络层连接收回原来分配出去的IP地址
7.接着,LCP释放数据链路层连接
8.最后释放的是物理层的连接

注:PPP链路的起始和终止状态永远是“链路静止”状态,这时在PC机和ISP的路由器之间并不存在物理层的连接。

*PPP协议的LCP连接 

当用户PC机通过调制解调器呼叫路由器时(通常是在屏幕上用鼠标点击一个连接按钮),路由器就能够检测到调制解调器发出的载波信号。在双方建立了物理层连接后,PPP就进入“链路建立”状态,其目的是建立链路层的LCP连接。

LCP开始协商一些配置选项,即发生LCP的配置请求帧。这是一个PPP帧,其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求

链路的另一端可以发送以下响应中的其中一种: 
(1)配置确认帧:所有选项都接受。 
(2)配置否认帧:所有选项都理解但不能接受。 
(3)配置拒绝帧:选项有的不能识别或不能接受,需要协商。


协商结束后双方就建立了LCP链路,接着就进入鉴别状态,在这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组若鉴别身份失败,则转到链路终止状态。若鉴别成功,则进入网络层协议状态。
 

*PPP协议的NCP连接

在网络层协议状态,PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。这个步骤是非常重要的,因为现在的路由器都能够同时支持多种的网络层协议。

PPP协议两端的网络层可以运行不同的网络层协议,但仍然可以使用同一个PPP协议进行通信。

如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分配IP地址)时就要使用NCP中支持IP的协议——IP控制协议IPCPIPCP分组也封装成PPP帧(其中的协议字段为0x8021)在PPP链路中传送。在低速链路上运行时,双方还可以协商使用压缩的TCP和IP首部,以减少在链路上传送的比特数。

当网络层配置完毕后,链路就进入可进行数据通信的链路打开状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可发送回送请求LCP分组和回送回答LCP分组,以检查链路的状态。
数据传输结束后,可以由链路的一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到链路终止状态。
如果链路出现故障,也会从链路打开状态转到链路终止状态。
当调制解调器的载波停止后,则回到链路静止状态。


注:从设备之间无链路开始,到先建立物理链路再建立LCP链路。经过鉴别后再建立NCP链路,然后才能交换数据。由此可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容

三、广播信道(共享式局域网)

1.局域网的数据链路层

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

  • 具有广播功能,从一个站点可以很方便地访问全网。局域网上主机可共享连接在局域网上各种硬件和软件资源
  • 提高系统可靠性、可用性和残存性
  • 便于系统的扩展和演变

​​​​​​​2.媒体介入控制

a.基本概念 

共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即 媒体接入控制 MAC 

b.媒体接入控制主要分类

  • 静态划分信道

信道复用 

  • 复用就是通过一条物理线路同时传输多路用户的信号

  • 当网络中的传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽​​​​​​​

  • 常见的信道复用技术有

    1. 频分复用 FDM
    2. 时分复用 TDM
    3. 波分复用 WDM
    4. 码分复用 CDM


 

 

总结

暂时更新到这里,最近有点忙呜呜呜 后面会补充的声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】

推荐阅读
相关标签