数据链路层
创始人
2025-05-30 12:49:40
0

数据链路层概述

数据链路层在网络体系结构中所处的地位

链路:就是从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。

数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

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

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

封装成帧

差错检测:发送的过程中可能会出现错误(FCS检错码)

 可靠传输:不符合的帧直接丢弃

 封装成帧

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

帧头和帧尾中包含重要的控制信息

帧头和帧尾的作用之一就是帧定界

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

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

面向比特的物理链路层使用比特填充的方法实现透明传输(五个1后面填充一个0)

  • 为了提高帧的传输效率,应当使帧的数据部分长度尽可能大一些
  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单位MTU

差错检测

  • 实际上通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
  • 在一段时间内,传输错误的比特占占所传输比特总数的比特率称为误码率BER。
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

  •  奇偶校验

在待发送的数据后面添加1位奇偶数校验位,使整个数据(包括所添加的校验位在内)中"1"的个数为奇数(奇校验)或偶数(偶校验)。

  • 循环冗余校验CRC

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

可靠传输

  • 使用差错检测技术(例如CRC),接收双方的数据链路层就可以检测出帧在传输过程中是否产生了误码。
  • 数据链路层向上提供的服务类型

不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;

可靠传输服务:想办法实现发送端发什么,接收端就接收到什么;

  • 有线链路的误码率比较低,为了减少开销,并不要求熟路链路层向上提供可靠传输服务。
  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上提供可靠传输服务。

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

扩展:

TCP向其上层提供面向连接的可靠传输服务

UDP向其上层提供无连接不可靠传输服务

可靠传输的三种方法

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

这三种可靠传输实现机制的基本理论不仅仅用于数据链路层,可以用到计算机网络体系结构的各层协议中。

停止等待协议SW

确认与否,当收到接收方的信息后发送ACK确认分组,接收到误码后,则会发送NAK丢弃的信息

 超时重传,当数据丢弃了,就会有个超时重传的时间,超过了这个时间就会从新发送数据

 确认丢失,给相邻数据带上0、1的编号,这样才可以保证到数据丢失

 确认迟到,也就是给相邻的ACK带上0、1的编号从而得到解决。

 小结:

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

 通过上图可以看出

当往返时延RTT远大于发送时延Td的时候就会出现信道利用率很低很低。(例如卫星链路),停止等待协议的信道利用率很低,若出现超出重传,则信道利用率会更低。

采用流水线的传输可以提高信道的利用率,这就是以下两种可靠传输的方式。

回退N帧协议GBN

累积确认,即使确认分组丢失,发送方也可能不必重传。当发送5个数据的时候,接收方检测0,1确认无误则发送ACK1,然后接收方检测2,3,4,确认无误,发送ACK4,就算ACK1丢失,ACK4到达了,也可以确认前面4个无误,然后交给上层服务进行处理。可以减少开销,较少网络资源。

选择重传协议SR

这是对回退N帧协议GBN的改进

注意:选择重传协议是为了是发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据进行逐一确认。

 与退回帧协议不同,选择协议不支持累积确认。接收方每接收一个数据帧,就会发回相应的确认帧。

点对点协议PPP

  • 点对点协议PPP是目前使用最广泛的点对点数据链路层协议
  • PPP协议为在带你对点链路传输各种协议数据报中提供了一个标准方法,主要由以下三部分构成

1、对各种协议数据报的封装方法(封装成帧)

2、链路控制协议LCP        用于建立、配置以及测试数据链路的连接

3、一套网络控制协议NCPS        其中的每一个协议支持不同网络层协议

帧的格式

 透明传输

面向字节的异步链路采用插入转义字符的字节填充法

 面向比特的同步链路采用插入比特0的比特填充法(遇见5个1则填充一个0)

 差错检测

 使用PPP的数据链路层向上不提供可靠传输服务。

工作状态

媒体介入控制

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

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

媒体接入控制-----静态划分信道

  1. 信道复用

复用是信道技术中一个重要概念。复用就是通过一条物理线路同时传输多路用户信号。

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

频分复用FDM:

频分复用的所有用户同时占用不同的频带资源并进行通信。

 时分复用TDM:

使用时分复用的所有用户在不同的时间占用同样的频率带宽。

 波分复用WDM:

就是波的频分复用

 码分复用CDM:

码分复用CDM是另一种共享信道的方法。实际上由于该技术要用于多址接入,人们更常用的名词是马粪多址CDMA。

与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信

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

 媒体接入控制-----动态介入控制

  • 随机接入控制

载波监听/多址接入/碰撞检测     CS/MA/CD

 首先各点都进行载波监听,信道空闲96比特时间,则发送帧,并进行碰撞检测,如果产生碰撞,则都退避一段随机时间。

1、CSMA/CD协议------争用期(碰撞窗口)

2、CSMA/CD协议-------最小帧长

很显然,以太网的帧长不能太短!

以太网规定最小帧长为64字节,即512比特(发送512比特的时间即为争用期)

以太网的最小帧长确保了主机可以在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞。

3、CSMA/CD协议-------最大帧长

 4、CSMA/CD协议--------截断二进制指数退避算法

若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述算法可使重传需要推迟的平均时间随着重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。

当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告。

5、CSMA/CD协议-------信道利用率

 6、CSMA/CD协议-------帧发送流程

 7、CSMA/CD协议---------帧接收流程

 CSMA/CD协议曾用于各种总线结构以太网和双绞线以太网早期版本中。现在的以太网基于交换机和全双工连接,不会有碰撞,因此没必要使用CSMA/CD协议。

载波监听多址接入/碰撞避免        CSMA/CA

 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不实现碰撞检测功能。

由于不可避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。

802.11的MAC层标准定义了两种不同的媒体接入控制方式:

分布式协调功能DCF、点协调功能PCF

802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧。

载波监听多址接入/碰撞避免        CSMA/CA的工作原理:

 1、当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后理解连续发送的数据帧则不使用退避算法。

2、一下情况下使用退避算法:

在发送数据帧之前检测到信道处于忙状态时

在每一次重传一个数据帧时

在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)

载波监听多址接入/碰撞避免        CSMA/CA的退避算法:

 CSMA/CA协议的信道预约和虚拟载波监听

除源站和目的站外的其他各站,在收到CTS帧(或数据帧)后就会推迟接入到无线局域网中。这样就会保证了源站和目的站之间的通信不会受到其他站点的干扰。

由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。因此用很小的代价对信道进行预约往往都是值得的。

除了RTS帧和CTS帧会携带通信所需要的持续时间,数据帧也能携带通信需要的时间,这称为802.11的虚拟载波监听机制。

由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或者数据帧中的任何一个,就能知道信道被占用的连续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。

CSMA是指载波监听多址接入,并不使用确认机制;

CSMA/CD是载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享信道以太网使用的信道访问控制协议,并不使用确认机制;

CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用的无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止等待协议,这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,还要等到收到对方确认帧后才能继续发送下一帧;

CDMA是指马分多址,属于静态划分信道,是物理层的通信复用技术,而不是MAC协议

CDMA是指码分多址;

TDMA是指时分多址;

FDMA是指频分多址;

CSMA是指载波监听多址接入;

TDMA,FDMA,CDMA是常见的物理层信道复用技术,属于静态划分信道,用于多用户共享信道,不会发生冲突。

CSMA属于争用型媒体接入控制协议,连接在同一媒体上的多个站点使用该协议以竞争方式发送数据帧,可能出现冲突(也称为碰撞)

MAC地址、IP地址以及ARP协议

MAC地址是以太网的MAC子层所使用的地址;数据链路层

使用点对点信道的链路层不需要使用MAC地址

 IEEE802局域网的MAC地址发送顺序

总数量        2^48个

字节发送顺序为第一字节到第六字节

字节内的比特发送顺序:b0 -> b7

IP地址是TCP/IP体系结构网际层所使用的地址;网际层、网络层

  • IP地址是因特网上的主机和路由器所使用的地址用于标识两部分信息:

网络编号:标识因特网上数以百万计的网络

主机编号:标识同一网络上不同主机(或路由器各接口)

  • 很显然之前介绍的MAC地址不具备区分不同网络的功能

如果知识一个单独的网络,不接入因特网,可以只是用MAC地址(这不是一般用户的应用方式)

如果主机所在的网络要接入因特网,则IP地址和MAC地址都是需要使用的。

从网络体系结构上看IP地址与MAC地址

  •  数据包转发过程中IP地址和MAC地址变化情况

数据包转发过程中源IP地址和目的的IP地址保持不变;

数据包发送过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变

ARP协议属于TCP/IP体系结构的网际层,其作用是用已知设备分配到IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;网际层

IP地址===地址解析协议===>MAC地址

发送报文先获取目的地址的IP地址和MAC地址对应

集线器与交换机的区别

集线器

交换机

 对比集线器和交换机

 以太网交换机自学习和转发帧的流程

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

以太网交换机的生成树协议STP

如何提高以太网的可靠性?

添加冗余链路可以提高以太网的可靠性

但是,冗余链路也会带来负面效应--------形成网络环路

网络环路会带来以下问题:

广播风暴

大量消耗网络资源,使得网络无法正常转发其他数据帧;

主机收到重复的广播帧

大量消耗主机资源

交换机的帧交换表震荡(漂移)

  • 以太网交换机使用生成树协议STP可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。

虚拟局域网VLAN描述

  1. 以太网交换机在数据链路层(包括物理层)
  2. 使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一广播域。
  3. 随着交换式以太网规模的扩大,广播域相应扩大。
  4. 巨大的广播域会带来许多的弊端
    1. 广播风暴
    2. 难以管理和维护
    3. 潜在的安全问题

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

虚拟局域网VLAN的实现机制

IEEE802.1Q帧

交换机的端口类型

  • 交换机的端口类型有以下三种:

Access

Trunk

Trunk端口发送处理方法:

对VID等于PVID的帧,"去标签"再转发;

对VID不等于PVID的帧,直接转发

 

Hybrid

  • 交换机各端口的缺省VLAN ID

在思科交换机上称为Native VLAN,即本征VLAN。

在华为交换机上称为Port VLAN ID,即端口VLAN ID简记为PVID

相关内容

热门资讯

精神病人扰民困境:自由与安全的... 2025 年 5 月,吉林松原的刁先生向荔枝新闻讲述了自家长达两年多的困扰。自 2022 年 12 ...
关于glibc的若干问题总结 今天在学习C的库函数memchr时,想看看其实现的源码,所以去网上下载了...
Macs Fan Contro... Macs Fan Control Pro是一款非常实用的软件,尤其适合需要长时间使用M...
【Java JVM基本问题】记... 文章目录JVM系统结构JVM运行程序Java对象回收双亲委派模型JVM沙箱安全机制OOM分析与调优J...
基于java+SpringBo...  博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系&...
Python字典dict基础学... #字典表达 # 字典名={}或者字典名=dict()# 字典名={key:...
数据结构——图 图的定义         图是由顶点的有穷非空集合和顶点之间边的集合组成的,通常表示为...
java面试中和String有... 文章目录1. String 属于基础的数据类型吗?2. String str=...
中国政法大学与塔什干国立法律大... 中国政法大学与乌兹别克斯坦塔什干国立法律大学30日签署两校谅解备忘录,就联合发起“一带一路”(中国—...
王毅会见出席国际调解院公约签署... 中新社香港5月31日电 中共中央政治局委员、外交部长王毅30日在香港会见出席国际调解院公约签署仪式的...