计算机网络-数据链路层


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:


参考网址

概述

数据链路层主要的功能

调用物理层提供的不可靠的、透明的比特传输服务,为网络层的数据传输提供一条无差异的、可靠的数据链路

  • 在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报
  • 计算机局域网的绝大多数功能属于数据链路
  • 使用的信道有点对点信道和广播信道两种类型
    广播信道使用一对多的广播通信,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送

链路(物理链路)、数据链路和通信路径的联系

链路

  • 一条无源的、节点到其相邻节点的物理线路段,中间没有任何其他的交换节点

通信路径

  • 通信实体之间的物理线路,由链路和交换设备构成
    两个主机之间的通信路径由许多的链路串接而成
    在这里插入图片描述

数据链路(data link)

  • 除了物理线路外,还必须有通信协议来控制这些数据的传输
    通过复用,一条物理链路上可以有多条数据链路;一条通信路径上也可以有多条数据链路
  • 使用适配器(即网卡)来实现这些协议的硬件和软件
    适配器包括了数据链路层和物理层这两层的功能

数据链路层的必要性

物理层仅实现了数据传输而没有实现有效无差错通信

  • 要实现真正的通信,还需要做大量的协调工作,如链路管理、流量控制、差错控制等,这些功能由数据链路层来完成
    主要功能是在不可靠的物理链路上实现可靠的数据传输,向网络层提供无差异的、可靠的数据传输通路。

数据链路层的主要功能

主要功能

数据链路层协议:PPP协议、CSMA/CD协议
1、链路管理
2、封装成帧(帧同步)
3、差错检测
4、将数据和控制信息区分开
5、透明传输
6、寻址
7、流量控制

链路管理

为确保接收方处于接收状态

  • 数据的发送方与数据的接收方在数据交换之前,通过交换必要的信息,确定链路的状态
  • 这些状态分为:链路建立、链路维持和链路释放。
  • 完成这些状态的转换的功能,称为链路的管理
    在这里插入图片描述

封装成帧(帧同步)

帧是数据链路层数据传输的单位

帧包含网络层需要传输的数据和传输网络层数据所需的控制信息

  • 控制信息包括: 帧同步信息、寻址信息、流量控制信息和差错控制信息
    在这里插入图片描述
    封装成帧(framing)
    在一段数据的前后分别添加首部和尾部,就构成了一个帧。
  • 首部和尾部的一个重要作用就是进行帧定界
    MTU (Maximum Transfer Unit) :帧的数据部分的长度上限
    在这里插入图片描述

控制字符进行帧定界的方法

文头SOH(Start Of Header): 二进制 00000001
文尾EOT(End Of Transmission):二进制 00000100
帧定界符的作用

  • 当数据在传输中发生中断,由于使用了帧定界符,因此只有首部SOH,没有结束符EOT。接收端就知道收到的数据是个不完整的帧,必须丢弃
    在这里插入图片描述

成帧

以帧为单位便于差错检测和处理

  • 物理层不能识别帧,它为数据链路层提供一个原始比特流的物理连接

透明传输

比特的特殊组合代表着控制信息,在传输的数据中的比特可能会组合成控制信息

  • 数据链路层忽略比特组合的含义,将数据正+确传输到接收方,称为透明传输
    在这里插入图片描述
    解决透明传输的方法
  • 字节填充法
    转义字符“ESC”(其十六进制编码是 1B)
    在这里插入图片描述

差错检测控制

及时发现错误和发现错误后及时处理

计算机网络通讯中,要求具有极低的比特差错率,为此必须采用差错编码技术

差错编码

  • 前向纠错
    接收方能检验错误并能纠正错误

  • 差错检测
    只检测错误,不做纠正

在计算机网络中采用的是差错检测技术

即检测出错误后,丢弃出错的数据帧

  • 然后将错误信息通知上层,由上层处理。
    处理的方法是:通知发送方重传出错的数据帧—反馈重发纠错

差错控制的具体方法有

垂直冗余校验(VRC)、水平冗余校验(LRC)、水平垂直冗余校验(TRC)和循环冗余校验(CRC)

差错检测

  • 误码率 BER (Bit Error Rate)
    传输错误的比特占所传输比特总数的比率

误码率与信噪比有很大的关系

  • 目前在数据链路上广泛使用循环冗余检验CRC(Cyclic Redundancy Check )的检错技术

循环冗余检验CRC

特点

检错能力极强
开销很小
易于实现

适用场合

奇偶校验对一个字符校验一次,适合异步通讯
而CRC对一个数据块(frame)校验一次,适合同步通讯

  • zip,jar等压缩软件采用的是crc-32

在串行同步通信中,在所有链路层或网络接口层协议中,几乎都可以使用这种校验方法

  • 如磁盘信息的读/写等

CRC码生成与校验分三步

在数据单元(k位)的末尾加上r个0

  • r是一个比预定除数的比特位数(r+1)少1的数
    补零:被除数比除数少一位,例如除数=1101,被除数就是3个0

采用二进制除法将新的加长的数据单元(k+r位)除以除数

  • 运算规则

求CRC循环冗余校验码

  • 将被除数+余数发送出去
    如果余数位数小于r,最左的缺省位数为0。
    如果余数为0,则r=0

CRC码使用说明

1、发送方和接收方必须有一个共同的多项式P(x)
2、除数比余数多1位
3、余数既为冗余码,又称帧检验序列FCS

CRC缺点

在这里插入图片描述

帧检验序列 FCS

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

  • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
    FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法
    开e:我可以接受你对我的好,却不能唯一的对你好

CRC注意

仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)

  • “无差错接受”是指:“凡是接受的信息(即不包括丢弃的信息),我们都能以非常接近于 1 的概率认为这些信息在传输过程中没有产生差错
  • 凡是接收端接受的信息都没有传输差错”(有差错的信息就丢弃而不接受)
  • 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制

检错性能

在这里插入图片描述

将数据和控制信息区分开

在数据链路层将控制信息和数据组成在一个数据帧中

  • 所以在数据的接收端,还需要将它们分开

帧包括
(1)帧起始、结束标志
(2)接收站标志
(3)控制字段(流控制、差错控制)
(4)帧校验序列
(5)数据部分

寻址

地址作为控制信息,存在帧中

  • 主机的寻址流程
    (1)发送主机将源地址和目的地址放入帧中
    (2)收到帧的主机将帧中的目的地址与自己的地址比较
    (3)不同,抛弃;相同,进一步处理

  • 寻址的方式
    (1)单播
    (2)组播
    (3)广播

流量控制

1、发送方和接收方处理数据的速度必须匹配
2、当出现不匹配时,数据传输失败
3、通过接收方控制发送方发送数据的速度,保证数据传输的成功是计算机网络中常用的流量控制方式
4、接收方使用反馈机制,向发送方应答,报告自己当前的接收情况和能力。接收能力由接收设备的处理速度、接收缓冲的容量等影响)
5、常用的流量控制方法有(课本p189-p192)
(1)停止等待协议(Stop-and-Wait) ——( P189 5.4)
(2)滑动窗口协议(Sliding Window )——(P197-203 5.6-5.7)

停止等待协议(Stop-and-Wait)

算法的准备

1、停止等待协议每次只传送1个数据帧,因此只需1位进行编号
2、数据帧的编号为0或1
3、如果本次发送的数据帧为0,则下次为1;如果本次为1,则下次为0
4、本次发送的数据帧编号=1-上次发送数据帧编号来计算数据帧编号
5、由于发送方对出错的数据帧进行重传是自动进行的,所以这种差错控制体制简称为ARQ(Automatic Repeat reQuest),自动重传请求

发送方

在这里插入图片描述

接收方

在这里插入图片描述

示例

在这里插入图片描述

时间关系

在这里插入图片描述

不可靠链路上存在的风险及解决方法

在这里插入图片描述
数据帧出错

  • 数据链路层差错控制
    可对欲发送的帧进行差错编码,接收方通过差错校验,可判断出接收的数据帧是否发生错误。如果接收错误,就向发送方发送一出错标识帧,称为否认帧NAK,通知发送方重新传送原数据帧。
    在这里插入图片描述

数据帧丢失

  • 超时自动重新传送
    可在发送方每发送完一个数据帧就启动一个超时计时器,其时间可设为略大于“从发完数据帧到收到确认帧所需的平均时间”。如果超时,发送方还没有收到ACK,则认为帧丢失,自动将数据帧重新发送
    在这里插入图片描述

接受溢出

  • 简单流量控制
    可以采用发送方每发送一帧,就停止发送,等待接收方的确认信息。接收方每收到一个正确的数据帧就向发送方发送一确认标识帧,称为确认帧ACK。发送方接收到确认帧,则继续发送下一帧
    在这里插入图片描述

重复帧处理

  • 数据帧编号
    解决重复帧的问题可通过对数据帧编号的方法解决。发送方将欲发送的数据帧编好序号,如接收方收到序号相同的帧,则将重复帧丢弃,并向发送方重新发送确认帧
    在这里插入图片描述

停止等待协议特性

优点是比较简单

  • 缺点是通信信道利用率不高,尤其是当信道的传播时延很大时
    为克服上述缺点,产生了另外两种协议(1)连续ARQ协议(2)选择重传ARQ协议

连续ARQ协议的工作原理

  1. 发送方可以连续发送多个数据帧(有一定的限制)
    每发送完一个数据帧,设置超时计时器
  2. 当发送的数据帧数量没有达到限制就收到了确认帧,可继续连续发送
    如果达到了限制还没有收到确认帧,则等待
  3. 接收方不对每个收到的数据帧进行确认,而是对几个数据帧进行确认
    由于需要对多个数据帧进行确认,因此,确认帧必须编号
  4. 接收方将确认帧进行编号
    ACKn表示已经正确接收到前n-1个数据帧,期望第n号数据帧
  5. 接收方只按顺序接收数据帧
    当接收到的数据帧出错时,只确认编号小于出错数据帧编号的数据帧,而将接收到编号大于等于出错数据帧编号的数据帧抛弃

滑动窗口协议(Sliding Window )

连续ARQ(自动重传)协议中,采用滑动窗口的技术解决上述问题

滑动窗口协议简介

属于数据链路层协议

  • 是用来解决数据链路层流量控制的协议
    该协议支持连续ARQ协议,用来提高数据链路的利用率

相关定义

目的

  • 对可以连续发出的最多帧数(已发出但未确认的帧)作限制

序号使用

  • 循环重复使用有限的帧序号

流量控制

  • 发送窗口
    其大小WT表示在收到对方确认的信息之前,可以连续发出的最多数据帧数(只有序号在窗口内的帧才可以发送)
  • 接收窗口
    其大小WR为可以连续接收的最多数据帧数(只有序号在窗口内的帧才可以接收,否则丢弃)

接收窗口驱动发送窗口的转动

滑动窗口协议基本思想

  1. 在发送方设置发送窗口
    窗口的大小为在发送方未接到接收方确认的前提下,发送方能连续发送的最大数据帧数
  2. 窗口的后沿初始化为0,前沿初始化为K-1
    表示可以连续发送K个数据帧(K为发送窗口的大小),设置发送指针,初始化为0,表明下一个要发送的是第0号数据帧
  3. 在接收方设置接收窗口,窗口的大小为1
  4. 接收窗口的前沿和后沿初始化为0,表示期望收到第0号数据帧
  5. 发送方每发送一个数据帧,发送窗口的发送指针加1
    发送指针到达发送窗口前沿时,停止发送,否则继续发送
  6. 接收方只接收数据帧编号等于接收指针的数据帧
    抛弃其他的数据帧,每成功接收一个数据帧,接收窗口的前沿和后沿加1,同时,可以对一个或多个接收的数据帧发出确认帧ACKn
  7. 接收方接到确认帧ACKn
    发送窗口的后沿设置为n,前沿设置为k+n,如果发送指针小于窗口的前沿,则继续发送

发送窗口和接受窗口
在这里插入图片描述

协议工作原理图
在这里插入图片描述

相关说明

  1. 从发送窗口可以获得的信息
  • (1)已成功发送的数据帧
    (2)发送还没有确认的数据帧
    (3)还可以最多连续发送的数据帧
    (4)下一个要发送的数据帧
  1. 从接收窗口可以获得的信息
  • (1)已成功的接收的数据帧
    (2)下一次要接收的数据帧
  1. 发送端的tout为略大于与窗口大小等效的时间
  2. 通过接受端控制发送窗口的滑动协调发送方和接收方的动作
  3. 发送方最大连续发送数据帧的个数与窗口大小相等

选择重传的工作原理

为了进一步提高信道的利用率

  • 接收方只将出错的帧丢弃,接收正确的帧保存在接收缓存中
    设法要求发送方只传送出现差错的那一帧,一旦收到重新传来的帧后,就可以将原已存于缓冲区中的其余帧一并按正确的顺序上交主机。这种方法称为选择重传
  • 选择重传减少了浪费,但要求接收方有足够大的缓冲区空间
`滑动窗口协议`、`选择重传协议`是连续ARQ协议的一种实现

关于Tout

停止等待协议

  • Tout一般可将超时时间选为略大于“从发完数据帧到收到确认帧所需要的平均时间”

滑动窗口协议

  • tout为略大于与窗口大小等效的时间

PPP点对点协议

点对点信道中高级数据链路控制HDLC

在这里插入图片描述
点对点协议 PPP (Point-to-Point Protocol)
在这里插入图片描述

满足的需求

在这里插入图片描述

不需要的功能

在这里插入图片描述

不提供使用序号和确认的可靠传输

在这里插入图片描述

ppp的协议体系

在这里插入图片描述

PPP协议的组成

在这里插入图片描述
在这里插入图片描述

PPP协议的帧格式

在这里插入图片描述
在这里插入图片描述

透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上正确传送

同步传输链路时

  • 协议规定采用硬件来完成比特填充

异步传输

  • 使用一种特殊的字符填充法

PPP验证

PAP:口令验证协议

  • Password Authentication Protocol
    在这里插入图片描述

CHAP:挑战握手协议

  • Challenge Handshake Authentication Protocol
    在这里插入图片描述

广播信道的数据链路层

局域网的数据链路层

在这里插入图片描述

CSMA/CD

Carrier Sense Multiple Access with Collision Detection载波监听多点接入/碰撞(冲突)检测

“多点接入”

  • 表示许多计算机以多点接入的方式连接在一根总线上

“载波监听”

  • 是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞

总线上并没有什么“载波”

  • 因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号

碰撞检测

在这里插入图片描述

重要特性

在这里插入图片描述

争用期

在这里插入图片描述

争用期的长度
在这里插入图片描述

最短有效帧长
在这里插入图片描述

强化碰撞
在这里插入图片描述

CSMA/CD小结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

虚拟以太网

在这里插入图片描述

虚拟局域网使用的以太网帧格式

在这里插入图片描述
在这里插入图片描述

Vlan的划分

  1. 根据端口来划分VLAN
    利用交换机的端口来划分VLAN成员 ,被设定的端口都在同一个广播域中
  2. 根据MAC地址划分VLAN
    根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置它属于哪个组
    优点:当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置
    缺点:初始化时,所有的用户都必须进行配置
  3. 根据网络层划分VLAN
    根据每个主机的网络层地址或协议类型(如果支持多协议)划分的,虽然这种划分方法是根据网络地址,比如IP地址,但它不是路由,与网络层的路由毫无关系。
    优点:不需要附加的帧标签来识别VLAN,可以减少网络的通信量
    缺点:效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的(相对于前面两种方法)
  4. 根据IP组播划分VLAN
    IP 组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN,这种划分的方法将VLAN扩大到了广域网
  5. 按用户划分VLAN
    基于用户定义、非用户授权来划分VLAN,是指为了适应特别的VLAN网络,根据具体的网络用户的特别要求来定义和设计VLAN

各划分特点

基于端口的VLAN端口方式建立在物理层上;
MAC方式建立在数据链路层上;
网络层和IP广播方式建立在第三层上

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值