首页 > 其他分享 >数据链路层

数据链路层

时间:2023-03-15 15:14:16浏览次数:37  
标签:协议 地址 传输 MAC 数据 链路层

3.1 数据链路层概述

  • 链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
  • 数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路
  • 数据链路层已帧为单位传输和处理数据

使用点对点信道的数据链路层的三个重要问题

1.封装成帧

​ 封装成帧是把网络层交付的协议数据单元,添加帧头和帧尾的操作,称为封装成帧,主要目的是为了在链路上以帧为单元传输数据,从而实现数据链路层本身的功能。

2.差错检测

在传输过程中可能会产生比特差错

  • 发送方会基于发送的数据和检错算法计算出检错码,并放在帧尾。
  • 接收方主机根据帧尾中的检错码和检错算法来判断帧中是否有误码。

3.可靠传输
​ 尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。

使用广播信道的数据链路层

1.在发送信号过程中,如何知道收到的帧是发送给自己的?

以太网V2的MAC帧,在其帧头就有目的地地址和发送主机源地址。

2.数据碰撞:在数据发送过程中可能出现有两个主机同时发送数据,就会造成数据碰撞。

数据链路层的互连设备

随着技术的发展,交换技术的成熟,在有线(局域网)领域 使用点对点链路和链路层交换机的交换式局域网取代了共享式局域网

在无线局域网中仍然使用的是共享信道技术

3.2、封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。

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

 

 

 

透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
  • 面向比特的物理链路使用比特填充的方法实现透明传输。

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

考虑到 差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)

 

3.3、差错检测
实际的通信链路都不是理想的,比特在传输过沉重可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。

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

 

奇偶校验

在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中 ”1“的个数为奇数(奇校验)或偶数(偶校验)。
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)。

循环冗余校验

收发双发约定好一个生成多项式G(x)
发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
接收方通过生成多项式来计算收到的数据是否产生了误码

 

 

 

 

 

检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。

要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。

循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。

在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上传提供的是可靠传输服务还是不可靠传输服务。

3.4、可靠传输
3.4.1、可靠传输的基本概念
使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。

数据链路层向上层提供的服务类型

  • 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;
  • 可靠传输服务:想办法实现发送端发送什么,接口端就收到什么。

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

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

比特差错只是传输差错中的一种。

从整体计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。

可靠传输服务并不仅局限于数据链路层,其他各层可选择实现可靠传输。

 

可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。

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

 

 

 

注意事项

接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组。

为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等性,只需1个比特编号就够了,即编号0和1。

为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号。

超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。

在数据链路层点对点的往返时间比较确定,重传时间比较好设定。
然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。
3.4.3、回退N帧协议GBN

回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。

在协议的工作过程中发送窗口和接口窗口不断向前滑动,因此这类协议又称为滑动窗口协议。

由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。

回退N帧协议的缺点:

回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管他们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
3.4.4、选择重传协议SR
为了进一步提供性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。

 

3.5、点对点协议PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议

PPP协议是因特网工程任务组IEIF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]

 

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

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

 

 

 

 

 

 


3.6、媒体接入控制
3.6.1、媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。

 

随着技术大发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共性式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

3.6.2、静态划分信道
信道复用

复用(Multiplexing)是通信技术中的一个重要概念,复用就是通过一条物理线路同时传输多路用户的信号。
当网络中传输媒体的传输容量大于多条单一信道的总通信量时,就可以利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。


频分复用FDM

将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。


接收端通过相应的分用其通过滤波将各路信号分开。将合成的服用信号恢复成原始的多路信号。

分复用TDM

将时间划分成一个个的时间间隙
时分复用技术将传输线路的带宽资源按一个个的时间间隙轮流分配给不同的用户。
每个用户只在所分配的时隙里使用线路传输数据。


波分复用(WDM)

波分复用就是光的频分复用。

光信号传输一段距离后会衰减,所以要用掺铒光纤放大器放大光信号

 

码分复用(CDM):

码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词时码分多址CDMA(Code Division Multiple Access)

同理,频分复用FDM和时分复用TMD都可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TMDA(Time Division Multiple Access)

复用与多址:

复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
多址(更确切地应该成为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的, 而所有的移动系统基本上都需要这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
与FDM和TDM不同,CMD的每一个用户可以在同样的时间使用同样的频带进行通信。

由于个用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。

CMD最初是用于军事通信的,因此这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易于被敌人发现。

随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。

计算机网络码分多址CDMA及计算例题(简单易懂)

3.6.3、随机接入——CSMA/CD协议
3.6.4、随机接入——CSMA/CA协议
3.7、MAC地址、IP地址以及ARP协议


3.7.1、MAC地址


当多个主机连接再同一个广播信道上,想要实现两个主机之间的通信,则每个主机必须有一个唯一的标识,即一个数据链路层地址;

在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Medium Access Contr),因此这类地址被称为MAC地址。

MAC地址一般被固化在网卡中(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址;

MAC地址有时也被称为物理地址。但这并不意味着MAC地址属于网络体系结构中的物理层!

 

一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网路接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口个唯一标识,而不是对网络上各设备的唯一标识。

 

在ieee官网中,可以根据MAC地址查询到地址的相关信息,例如厂商,生产地址等等。

 

对于使用EUI-48空间的应用程序,IEEE的目标寿命为100年(直到2080年),但是鼓励采用EUI-64作为替代。

 

3.7.2、IP地址
IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:

网络编号:标识因特网上数以百万计的网络
主机编号:标识同一网络上不同主机(或路由器个接口)
很显然,之前介绍的MAC地址不具备区分 不同网络的功能

如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。
如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。

 

 

 


3.7.3、ARP协议
地址解析协议ARP,可以实现由IP地址寻求到MAC地址

 

 

 

 

ARP高速缓存表中每条记录都有其类型:

动态:自动获取,生命周期默认为两分钟
静态:手动设置,不同操作系统下的生命周期不同,例如系统重启后不存在或系统重启后依然有效。
由于ARP协议的适用是逐段链路进行的,因此ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用。

 

3.8、集线器与交换机的区别

 

 

 

 


3.9、以太网交换机自学习和转发帧的流程
以太网交换机工作在数据链路层(也包括物理层)
以太网交换机收到帧后,在帧交换表汇总查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
以太网交换机自学习和转发帧的流程:

收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号;
根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)
盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称泛洪)。
明确丢弃:交换机知道不应该转发该帧,将其丢弃。
帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:

交换机的接口改接了另一台主机;
主机更换了网卡。
3.10、以太网交换机的生成树协议STP
如何提高以太网的可靠性?

添加冗余链路可以提高以太网的可靠性
但是,冗余链路也会带来负面效应——形成网络环路
网络环路会带来一下问题:
广播风暴:大量消耗网络资源,使得网络无法正常转发其他数据帧
主机收到重复的广播帧,大量消耗主机资源
交换机的帧交换表震荡(漂移)
以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。

不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
最终生成的树型逻辑拓扑要确保连通整个网络;
当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。
3.11、虚拟局域网VLAN概述
3.11.1、概述
以太网交换机工作在数据链路层(也包括物理层)

使用一个或多个以太网交换机互联起来的交换式以太网, 其所有站点都属于同一个广播域。

随着交换式以太网规模的扩大,广播域相应扩大。

巨大的广播域会带来很多弊端:

广播风暴
难以管理和维护
潜在的安全问题


网络中会频繁出现广播信息

TCP/IP协议栈中的很多协议都会使用广播:

地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
路由信息协议PIP(一种小型的内部路由协议)
动态主机配置协议DHCP(用于自动配置IP协议)
NetBEUI:Windows下使用的广播型协议

IPX/SPX:Novell网络的协议栈

Apple Talk:Apple公司的网络协议栈

分割广播域的方法

使用路由器可以隔离广播域

路由器的成本较高

 

虚拟局域网VLAN技术
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。

 

3.11.2、实现机制
IEEE 802.1Q帧

交换机的端口类型
————————————————
版权声明:本文为CSDN博主「渣渣苏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/su2231595742/article/details/124591463

标签:协议,地址,传输,MAC,数据,链路层
From: https://www.cnblogs.com/joyware/p/17218574.html

相关文章

  • SpringBoot+MyBatis批量插入数据的三种方式
    1.背景介绍在开发过程中,我们经常会遇到往数据库表中插入大量数据的场景,比如excel批量导入数据。那么该如何快速地插入数据呢?我们可以考虑使用批量插入来实现,实测100000......
  • 易基因:染色质免疫共沉淀测序(ChIP-seq)的数据挖掘思路 |干货系列
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。CHIP-seq研究的数据挖掘思路主要分为3步:整体把握CHIP-seq图谱特征:peak/reads在基因组上的分布、peak......
  • Oracle 数据核对测试
    主键唯一性检测selectcount(distinctpk_id)-count(*)frompk_id_test;createtablestudent(snovarchar(10),snamevarchar(10),sagedate,ssexvar......
  • IotDB 时序数据库
    IoTDB是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列......
  • 数据分析3
    #代码8-1查看数据特征importnumpyasnpimportpandasaspdinputfile=r"C:\Users\admin\Documents\WeChatFiles\wxid_b0fz4hqogenr22\FileStorage\File\2023-03\G......
  • 版本发布:TDengine 3.0.3.0 为数据压缩、事件窗口等七大功能加“Buff”
    TDengine3.0自去年8月份发布以来,已经被大量用户下载使用。在此过程中,涛思的研发同学也没有懈怠,针对大家在社群、各种我们能触达到的平台上提出的种种有价值的反馈,都一一......
  • Oracle 数据库操作cs
    publicclassOracleHelper{publicstaticreadonlystringConnString="DataSource=DataBase;PersistSecurityInfo=True;UserID=UserName;Password=Password;Unic......
  • Access数据库使用
    我使用的是office2007版本1、打开库文件  2、输入密码  3、点击查询向导  4、选择单表查询  5、选择要查询的表 6、标题处右键选择SQL试图......
  • 01. 数据结构概述
    一、什么是数据结构  数据结构(DataStructure)是计算机中存储、组织数据的方式,它是数据对象、以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可......
  • 【大数据】Centos7、Hadoop3.3.1、分布式搭建
    主要遵照 https://www.cnblogs.com/lehoso/p/15550119.html进行搭建,文章里写的很清楚了,我就不多说了。在搭建过程中,用思维导图绘制了一个大纲。可点击下载安装过程中的......