[计算机网络微课]第三章 数据链路层

news2024/11/26 2:33:05

数据链路层

概述

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

主机 H1 给主机 H2 发送数据,中间要经过 3 个路由器和电话网、局域网以及广域网等多种网络。从五层协议原理体系结构角度来看

在这里插入图片描述

为了专注数据链路层内容,这里我们只考虑数据链路层,而不考虑其他层

在这里插入图片描述

主机 H1 到 H2 的通信可以看作在 4 个不同链路上组成

  • 链路(LINK)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点

要在链路上传输数据,仅有链路还不够,还需要一些通信协议来控制数据的传输

  • 数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路

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

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

数据链路层三个重要问题

  1. 封装成帧

    数据在应用层被封装成为应用层数据单元

    运输层==>为其添加运输层协议首部(成为运输层协议数据单元)

    网络层==>添加网络层协议首部(成为网络层协议数据单元)

    数据链路层==>添加帧头帧尾(即封装成帧)

在这里插入图片描述

  1. 差错检测

    检错码和检错算法对数据进行校验(如下图FCS)

在这里插入图片描述

  1. 可靠传输

在这里插入图片描述

这三个问题针对于点对点信道的数据链路层,使用广播信道的数据链路层除了这三个问题外,还有一些其他问题

在这里插入图片描述

封装成帧

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

在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层将构成帧的各比特转换成电信号发送到传输媒体。

在这里插入图片描述

帧定界

如下图,红色字段为帧定界标志

在这里插入图片描述

并不是每一种数据链路层协议的帧都包含帧定界标志。例如,以太网 V2 的 MAC 帧:

在这里插入图片描述

  1. 前导码中的前7个字节为前同步码,作用是使接收方的时钟同步。之后1字节为帧开始定界符,表明后面紧跟的为MAC帧

在这里插入图片描述

  1. 此外,以太网定义了帧间间隔为 96 比特的发送时间,因此,MAC 帧不需要帧结束定界符

在这里插入图片描述

透明传输

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

要实现透明传输就要思考一个问题,如果上层交付的协议数据单元中含有帧定界标志应该怎么办?

对此有两种解决方案:

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

在这里插入图片描述

在发送数据前,对帧的数据部分进行扫描,每出现一个帧定界符或转义字符,就在其前面插入一个转义字符。这里的转义字符是一个特殊的控制字符,长度为 1 个字节,十进制值为 27。

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

    在这里插入图片描述

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

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

最大传送单元MTU

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

在这里插入图片描述

差错检测

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1 可能会变成 0,而 0 也可能变成 1,这称为 比特差错
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为 误码率BER (Bit Error Rate)
  • 使用 差错检测码 来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一
    在这里插入图片描述如上述两种帧格式中,FCS字段的作用就是检查帧传输过程中是否产生误码

下面介绍两种检错方法:奇偶校验、循环冗余校验

奇偶校验

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

在这里插入图片描述

这种检错方法漏检率比较高,计算机网络的数据链路层一般不会采用这种检测方法

循环冗余校验

具体步骤:

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

  2. 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输在这里插入图片描述

  3. 接收方通过生成多项式来计算收到的数据是否产生了误码

    在这里插入图片描述

需要注意,CRC算法要求生成多项式必须包含最低次项

分析

在这里插入图片描述

在这里插入图片描述

注意:

  • 检错码只能检测帧在传输过程中是否出现差错,无法定位错误、纠正错误
  • 循环冗余校验CRC有漏检率低,易于硬件实现,广泛应用于数据链路层

可靠传输

基本概念

使用差错检验技术,接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。那么接下来如何处理呢?

在这里插入图片描述

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

  1. 不可靠传输服务:仅仅丢弃有误码的帧,其他什么都不做
  2. 可靠传输服务:想办法实现发送端发送什么,接收端接收什么

对有线链路而言

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

对于无线链路

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

传输差错

  • 比特差错只是传输差错的一种
  • 从整个计算机网络体系结构来看,传输差错还包括 分组丢失、分组失序 以及 分组重复
  • 分组丢失、分组失序、分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层
  • 可靠传输服务并不仅局限在数据链路层,其他各层均可选择实现可靠传输

例如:TCP/IP四层体系结构中:

在这里插入图片描述

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

可靠传输的三种实现机制

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

需要注意的是,这三种可靠传输实现机制的基本原理 可以应用到计算机网络体系结构的各层协议 中

停止 - 等待协议SW

示意图

在这里插入图片描述

  • ACK:接收方收到数据分组后进行差错检测,若没有误码,则接收该分组,并给发送方 发送确认分组,简称为ACK
  • NAK:若差错检测发现误码,则丢弃该分组,并给发送方 发送否认分组,简称为 NAK

停止等待的过程

  • 发送方每发送完一个数据分组后,就 停止 发送下一个数据分组,等待 来自接收方的 确认分组或否认分组。若收到确认分组,则可以继续发送下一个数据分组;若收到否认分组,则重发之前发送的那个数据分组。

传输过程出现的三个问题

  1. 上述只是发送过程中数据分组产生误码的情况,如果数据分组在传输过程中丢失了呢 ?

两点说明:

  • 接收方接收不到数据分组,就不会发送 ACK 或 NAK 。如果不采取其他措施,发送方就会一直处于等待状态。
  • 这里说明一下,对于数据链路层点对点信道而言,不太容易出现此情况。但对多网络多路由器的互连网环境而言,经常出现此情况

为解决该问题,可采用 超时重传 实现数据分组的重新传输
在这里插入图片描述

  • 超时重传:在发送方发送完一个数据分组后,启动一个 超时计时器。到了超时计时器所设置的重传时间而发送方仍接收不到ACK或NAK,则重传原分组
  • 一般可将重传时间选为略大于 “ 从发送方到接收方的平均往返时间 ”
  1. 发送方发送的确认分组丢失,如何确定超时重传后的数据分组 是否为重复的数据分组 呢?

为 避免重复分组 这种传输错误,必须给每个分组 带上序号。

在这里插入图片描述

  • 只需要保证与上个分组的序号不同即可,因此只需 1 个比特编号即可,即 0 或 1
  1. 如果确认分组迟到,导致了超时重传,接收方再次发送确认分组,如何区分同一确认分组的重复发送呢 ?
  • 对于数据链路层的点对点信号,往返时间比较固定,不会出现确认迟到的情况。因此,如果只在数据链路层实现 停止-等待协议,可以不用给确认分组编号

对确认分组也进行编号,就可以使发送方避免这种误判

在这里插入图片描述

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

在这里插入图片描述

  • TD:发送方发送数据分组的发送时延
  • RTT:收发双方之间的往返时间
  • TA:接收方发送确认分组所耗费的发送时延
  • 图中忽略了接收方对数据分组的处理时延,以及发送方对确认分组的处理时延

在这里插入图片描述

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

回退N帧协议GBN

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

在这里插入图片描述

为此,我们引入 回退 N 帧协议 GBN

  • 在 流水线传输 的基础上利用 发送窗口 来限制发送方可连续发送数据分组的数量

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

示例分析:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

过程分析

  1. 发送方将序号落在发送窗口内的 0~4 号数据分组依次连续发送出去,通过互连网的传输正确到达接收方在这里插入图片描述
  2. 接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送确认分组在这里插入图片描述
  3. 0~4 号确认分组通过互连网的传输正确到达发送方,发送方每接收一个,发送窗口就向前滑动一个位置,这样就有新序号落入发送窗口。发送方可以将已收到确认的数据分组从缓存中删除,发送方将已接收的数据分组交付上层处理在这里插入图片描述

累计确认:

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

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

在这里插入图片描述

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

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

错误时的情况

在这里插入图片描述

  1. 如图 5 号数据分组出现误码被丢弃,后续到达的 4 个数据分组的序号与接收窗口不匹配,同样也不能接收,将它们丢弃。并返回之前最后一个确认分组 ACK4,每丢弃一个分组就发送一个 ACK4,也就是会连续发送 4 个 ACK4。
  2. 发送方收到重复的确认,就知道之前发送的分组出现差错,于是就可以不等超时计时器超时就立刻重传。至于收到几个重复确认分组后开始重传,由具体实现决定。

选择重传协议

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

概念

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

  • 接收方不能再采取累积确认,而是 逐一确认

在这里插入图片描述

在这里插入图片描述

示例分析:

传输条件:

在这里插入图片描述

但在传输过程中 2 号数据分组丢失

在这里插入图片描述

过程分析:

  1. 接收方将接收 0 号和 1 号数据分组,并发送确认分组,之后接收窗口向前滑动两个位置。接收方再接收 3 号数据分组,并发送 3 号确认分组,但是接收窗口不能向前滑动,因为这是一个未按序到达的数据分组.在这里插入图片描述
  2. 发送方接收 0 号 和 1 号确认分组,发送窗口向前滑动两个位置。再将落入的 4 号 和 5 号数据分组发送出去。发送方接收 3 号数据分组,但是窗口不能向前滑动,因为这个是一个未按序到达的确认分组。在这里插入图片描述
  3. 等待 2 号数据分组超时重传后,接收方接收到按序到达的数据分组,并发送确认分组,接收窗口才可以向前滑动。在这里插入图片描述
  4. 发送方收到按序到达的 2 号确认分组,发送窗口向前滑动 4 个位置。在这里插入图片描述

在这里插入图片描述

点对点协议ppp

基础概念:

  • 点对点协议 PPP(Point-to-Point Protocal)是目前使用最广泛的点对点数据链路层协议在这里插入图片描述

    另外,PPP协议也广泛用于广域网路由器之间的专用线路

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

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

    在这里插入图片描述

帧格式:

在这里插入图片描述

透明传输:

在这里插入图片描述

  1. 面向字节的异步链路

    在这里插入图片描述

  2. 面向比特的同步链路

    在这里插入图片描述

差错检测:

在这里插入图片描述

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

生成多项式

在这里插入图片描述

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

工作状态:

以拨号接入为例,简单介绍PPP协议的工作状态

在这里插入图片描述

媒体介入控制

基本概念

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

在这里插入图片描述

媒体接入控制主要分类

在这里插入图片描述

静态划分信道

  • 静态划分信道也就是预先固定分配好信道,这类方法非常不灵活,对于突发性数据传输信道利用率会很低
  • 通常在无线网络的物理层中使用,而不是在数据链路层中使用

动态接入控制

  • 在 集中控制 的多点轮询协议中,有一个主站以循环方式 轮询 每个站点有无数据发送,只有被轮询到的站点才能发送数据。集中控制的最大缺点,就是存在单点故障问题 (已淘汰)

  • 在 分散控制 的令牌传递协议中,各站点是平等的,并连接成一个环型网络。令牌(一种特殊的控制帧)沿环逐站传递,接收到令牌的站点才有权发送数据,并在发送完数据后,将令牌传给下一个站点(已淘汰)

  • 采用 令牌协议 的典型网络有:IEEE 802.5 令牌环网,IEEE 802.4 令牌总线网,光线分布式数据接口FDDI(已淘汰)

  • 随机接入 的特点是 所有站点通过竞争,随机的在信道上发送数据。如果有两个或以上站点在同一时刻发送数据,那么信号在共享媒体上就要 产生碰撞,使得站点的发送都失败。因此,这类协议要解决的关键问题是如何 避免冲突,以及发生冲突后如何 尽快恢复通信

  • 著名的共享式以太网采用的就是 随机接入

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

静态划分信道

信道复用:

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

在这里插入图片描述

在这里插入图片描述

  • 常见的信道复用技术有
    1. 频分复用 FDM
    2. 时分复用 TDM
    3. 波分复用 WDM
    4. 码分复用 CDM

频分复用 FDM

在这里插入图片描述

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

时分复用

在这里插入图片描述

  • 时分复用的所有用户在不同的时间占用同样的频带宽度
  • 每对用户只在所分配的时隙里使用线路传输数据

波分复用 WDM

在这里插入图片描述

  • 波分复用其实就是光的频分复用
  • 光复用器和光分用器之间可以放入 4 个掺铒光纤放大器,使得光复用器和光分用器之间的无线电转换的距离可达 600km

码分复用 CDM

  • 实际上,由于该技术主要用于多址接入,人们更常用的名词是 码分多址 CDMA

  • 同理,频分复用 FDM 和时分复用 TDM 同样可用于多址接入,相应的名词是频分多址 FDMA 和时分多址 TDMA

  • 这里,我们不严格区分复用和多址的概念。可简单理解如下:

    1. 复用 是将单一媒体的频带资源分成很多子信道,这些子信道之间独立,互不干扰
    2. 多址 (更确切的应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(无线广播或电视广播)
  • 与 FDM 和 TMD 不同,CMD 的每一个用户可以在 同样的时间使用同样的频带进行通信

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

码片:

  • 在 CMDA 中,每一个比特时间再划分为 m 个短的间隔,称为 码片(Chip)。通常 m 的值是 64 或 128
  • 使用 CMDA 的每一个站被指派一个唯一的 m bit 码片序列(Chip Sequence)
    1. 一个站如果要发送比特 1,则发送它自己的 m bit 码片序列
    2. 一个站如果要发送比特 0,则发送它自己的 m bit 码片序列反码

在这里插入图片描述

码片序列的挑选原则如下:

  1. 分配给每个站的 码片序列必须各不相同,实际常采用伪随机码序列
    分配给每个站的 码片序列必须相互正交(规格化内积为 0)
  2. 令向量 S 表示站 S 的码片序列,令向量 T 表示其他任何站的码片序列
    两个不同站 S 和 T 的码片序列正交,就是向量 S 和 T 的规格化内积为 0
    在这里插入图片描述在这里插入图片描述

应用

在这里插入图片描述

随机接入(CSMA/CD协议)

在这里插入图片描述

早期的共享式以太网采用 载波监听多址接入/碰撞检测 ,即 CSMA/CD协议 来解决碰撞冲突问题

多址接入

  • 多个站连接在一条总线上,竞争使用总线

载波监听CS

  • 每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(先听后说):
    1. 若检测到总线空闲 96 比特时间,则发送这个帧
    2. 若检测到总线忙,则继续检测并等待总线转为空闲 96 比特时间,然后发送这个帧
  • 96 比特时间 是指发送 96 比特所耗费的时间,也称为 帧间最小间隔。其作用是使接收方可以检测出一个帧的结束,同时也使得其他站点有机会平等竞争信道并发送帧

碰撞检测CD

  • 每一个正在发送帧的站边发送边检测碰撞(边听边说):

    一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送

举例分析

假设在主机 B 发送帧的过程中,主机 C 也要发送帧。主机 C 进行载波监听,发现总线空闲 96 比特后立即发送帧,这必然导致碰撞

在这里插入图片描述

碰撞信号沿总线传播,主机 C 比主机 B 更早检测到碰撞并停止发送,退避一段随机时间后,重新发送之前所发送的帧

在这里插入图片描述

当主线 B 检测到碰撞后,同样也停止发送退避一段随机时间,重新发送之前所发送的帧

在这里插入图片描述

以太网还采用了一种 强化碰撞 的措施,这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要继续 发送 32 比特或 48 比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞。

CSMA/CD协议 —— 争用期(碰撞窗口)

在这里插入图片描述

在这里插入图片描述

  • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
  • 每一个主机在自己发送帧之后的一小段时间内,存在着偶遇碰撞的可能性。这一小段时间取决于另一个发送帧的主机到本主机的距离,但不会超过总线端到端的往返传播时延,也就是一个争用期时间
  • 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长

CSMA/CD协议 —— 最小帧长

在这里插入图片描述

  • 以太网规定最小帧长为 64 字节,即 512 比特(512 比特时间即为争用期)
    1. 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不少于 64 字节
  • 以太网的 最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
    1. 如果在争用期(共发送 64 字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞
    2. 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于 64 字节。因此,凡长度小于 64 字节的帧都是由于碰撞而异常中止的无效帧

CSMA/CD协议 —— 最大帧长

在这里插入图片描述

示例

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

  • 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可 使重传需要推迟的平均时间随重传次数而增大(这也称为 动态退避),因而 减小发生碰撞的概率,有利于整个系统的稳定
  • 当 重传 16 次仍不能成功 时,表明同时打算发送帧的主机太多,以至于发生碰撞,则 丢弃该帧,并向高层报告

CSMA/CD协议 —— 信道利用率

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

CSMA/CD协议 —— 帧发送流程

在这里插入图片描述

CSMA/CD协议 —— 帧接收流程

在这里插入图片描述

随机接入 —— CSMA/CA协议

  • 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞
  • 在无线局域网中,不能使用碰撞检测CD,原因如下:
    1. 由于无线信道的传输条件特殊,其信号强度的动态非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞,对硬件要求非常高
    2. 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大

在这里插入图片描述

这种未能检测到信道上其他站点信号的问题叫做隐蔽站问题

IEEE 802.11是现今无线局域网通用的标准,虽然经常将 Wi-Fi 与 802.11 混为一谈,但两者并不等同

  • 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能
  • 由于不能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收
  • 802.11的MAC层标准定义了两种不同的媒体接入控制方式
    1. 分布式协调功能DCF:在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式
    2. 点协调功能PCF:CF方式使用集中控制的接入算法,是802.11定义的可选方式,实际中较少使用

帧间隔符IFS:

  • 802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS
  • 帧间间隔的长短取决于该站点要发送的帧的类型:
    1. 高优先级帧需要等待的时间较短,因此可优先获得发送权
    2. 低优先级帧需要等待的时间较长,若信道被高优先级帧占用,低优先级帧则推迟发送,减少碰撞
  • 常用的两种帧间间隔如下:
    1. 短帧间间隔SIFS(28μs),是最短的帧间间隔,用来分隔开属于一次对话的各帧
    2. DCF帧间间隔DIFS(128μs)。在DCF方式中用来发送数据帧和管理帧

CSMA/CA 协议工作原理

在这里插入图片描述

此处引出三个问题

  • 源站为什么在检测到信道空闲后还要再等待一段时间 DIFS ?

    1. 考虑到可能有高优先级的帧要发送,若有,应先让高优先级帧发送
  • 目的站为什么正确接收数据帧后还要等待一段时间 SIFS 才能发送 ACK 帧呢?

    1. SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧
    2. 在这段时间内,一个站点应当能从发送方式切换到接收方式
  • 信道由忙转为空闲且经过DIFS时间后,为什么还要退避一段随机时间才能使用信道?

    1. 防止多个站点同时发送数据而产生碰撞

退避算法的时机

  • 当站点检测到信道是空闲的,并且所发送的数据帧紧接上次发送时,不使用退避算法
  • 但以下情况必须使用退避算法:
    1. 在发送数据帧之前检测到信道处于忙状态
    2. 在每一次重传一个数据帧时
    3. 在每一次成功发送后要连续发送下一个帧时(避免一个站点长时间占用信道)

CSMA/CA 协议的退避算法

在执行退避算法时,站点为退避计时器设置一个随机的退避时间:

  1. 当退避计时器的时间减少到零时,就开始发送数据
  2. 当退避计时器的时间还未减少到零时而信道又转为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器
  3. 在进行第 i 次退避时,退避时间在时隙编号 { 0,1,…,2 ^(2+i) - 1 } 中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到 255 时(对应于第6次退避)就不再增加了。

在这里插入图片描述

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

为了尽可能减少碰撞的概率和降低碰撞的影响,802.11 标准允许要发送数据的站点对信道进行预约

  1. 源站在发送数据帧之前先发送一个短的控制帧,称为 请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间
  2. 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为 允许发送CTS(Clear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)
  3. 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧
  4. 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK

在这里插入图片描述

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

  • 如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧

  • 由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延,碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费很多时间,因此用很小的代价对信道进行预约往往是很值得的。802.11 标准规定了 3 种情况供用户选择:

    1. 使用RTS帧和CTS帧
    2. 不使用RTS帧和CTS帧
    3. 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
  • 除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的 虚拟载波监听 机制

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

    1. 如下图所示隐蔽站
    2. 主机 C 接收到主机 B 发送来的CTS,就知道了信道将被占用时间,在这段时间内不能发送帧

在这里插入图片描述

MAC地址,ip地址以及ARP协议

MAC地址

  • 使用点对点信道的数据链路层不需要使用地址

在这里插入图片描述

  • 使用广播信道的数据链路层必须使用地址来区分各主机

在这里插入图片描述

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

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

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

      在这里插入图片描述

  • 每个网络适配器都有一个全球唯一的 MAC 地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的 MAC 地址。严格来说,MAC 地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识

IEEE 802 局域网的 MAC 地址格式

它由 48 个比特构成,每 8 个比特为一字节,从左右依次为第一到第六字节。这种地址标识符称为 扩展的唯一标识符 EUI,对于 48 比特的 MAC 地址,可称为 EUI - 48。

在这里插入图片描述

IEEE 802 局域网的 MAC 地址表示方法

每 4 个比特写成 1 个十六进制的字符,共 12 个字符,每两个字符分为一组。

在这里插入图片描述

IEEE 802 局域网的 MAC 地址类型

在这里插入图片描述

在这里插入图片描述

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

IEEE 802 局域网的 MAC 地址发送顺序

  • 字节发送顺序: 第一字节 -----→ 第七字节
  • 字节内的比特发送顺序:b0 -----→ b7

广播 MAC 地址作用举例说明

一个拥有三台主机的总线型以太网,各主机网卡上固化了全球单播 MAC 地址。假设,主机 B 要给主机 C 发送单播帧

在这里插入图片描述

  1. 主机 B 首先要构建该单播帧,在帧首部中目的地址字段填入主机 C 的 MAC 地址,源地址字段填入自己的 MAC 地址,再加上帧首部中的其他字段、数据载荷以及帧尾部,就构成了该单播帧在这里插入图片描述
  2. 主机 B 将该单播帧发送出去,主机 A 和 C 都会收到该单播帧。主机 A 的网卡发现该单播帧的 MAC 地址和自己不匹配,于是丢弃该帧;主机 C 发现其匹配,接收该帧,并将其交给上层处理在这里插入图片描述

多播 MAC 地址作用 举例说明

主机 A 要发送多播帧给给多播地址。将该多播地址的左起第一个字节写成 8 个比特,可以看到最低比特位是 1,这就表明该地址是多播地址。

在这里插入图片描述

假设主机 B、C、D 支持 MAC 多播,各用户给自己的主机配置的多播组列表如下:

在这里插入图片描述

  1. 主机 A 首先要构建该多播帧。在帧首部中的目的字段填入该多播地址,源地址字体填入自己的 MAC 地址,再加上帧首部中的其他字段、数据载荷以及帧尾部,就构成了该多播帧在这里插入图片描述
  2. 主机 A 将该多播帧发送出去,主机 B、C、D 收到该多播帧后,将该多播帧的目的 MAC 地址与自己的多播组列表中地址匹配。主机 B、C匹配成功后,接收该帧,并交予上层处理;而主机 D 则丢弃该多播帧在这里插入图片描述
  • 快速判断mac地址是否为多播地址

    在这里插入图片描述

  • 需要注意:给主机配置多播组列表进行私有应用时,不得使用公有的标准多播地址

IP地址

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

    1. 网络编号:标识因特网上数以百万计的网络
    2. 主机编号:标识同一网络上不同主机(或路由器各接口)

    在这里插入图片描述

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

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

网络体系结构中的ip地址和MAC地址

在这里插入图片描述

数据包转发过程中的IP与MAC的变化情况

假设主机 H1 要向主机 H2 发送数据包

在这里插入图片描述

过程

在这里插入图片描述

  • 数据包转发过程中 源 IP 地址和目的 IP 地址保持不变
  • 数据包转发过程中 源 MAC 地址和目的 MAC 地址逐个链路(或逐个网络)改变

ARP协议

每一台主机都维护着一张ARP高速缓存表,用于记录ip地址与mac地址的对应关系

image-20221214211107725

主机B发送数据包的时候,主机会在ARP高速缓存表中查询目的地址的mac地址,如果不存在,就发送ARP请求报文(局域网内广播)

image-20221214210458234

其他主机收到广播之后会交付上层处理,上层的arp进程发现需要的不是自己的ip地址,会将其直接忽略,如果是自己的ip地址,则将B的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给B发送ARP响应,告知自己的mac地址

image-20221214211006176

ARP缓存的类型:

动态:自动获取,生命周期默认为两分钟;

静态:手工设置,不同操作系统下的生命周期不同,例如系统重启后不存在或系统重启后依然有效。

image-20221215190352643

集线器与交换机的区别

早起总线型以太网

image-20221215190816288

使用双绞线和集线器hub的星型以太网

使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;

集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测);

集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。

使用集线器可以在物理层扩展以太网

以太网交换机

以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。

以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。

以太网交换机一般都具有多种速率的接口,例如:

10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。

以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。

以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。

帧的两种转发方式:

  1. 存储转发

  2. 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否右差错)

对比

单播帧对比

集线器:

与集线器链接的所有主机都会收到消息,然后对比目的地址,发现不是自己的地址就拒绝接收

交换机:

会查询自身的帧交换表发送给目的主机

image-20221215192341159

广播对比

基本没有区别

image-20221215192433372

扩展以太网:

发送单播帧

image-20221215193013892

发送广播帧

image-20221215193134009

碰撞比较

image-20221215193400357

总结

image-20221215193543896

image-20221215193656250

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

以太网交换机工作在数据链路层(也包括物理层)

以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。

以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。

image-20221215204824995

小结

image-20221215205719955

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

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

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

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

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

  • 广播风暴

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

  • 主机收到重复的广播帧

    大量消耗主机资源

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

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

  • 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
  • 最终生成的树型逻辑拓扑要确保连通整个网络;
  • 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。

虚拟局域网VLAN

概述

  • 以太网交换机工作在数据链路层(也包括物理层)

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

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

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

    • 广播风暴

    • 难以管理和维护

    • 潜在的安全问题

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

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

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

NetBEUI:Widnows下使用的广播型协议

IPX/SPX:Novell网络的协议栈

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

如何分割广播域?

  • 使用路由器(成本高昂)
  • 虚拟局域网VLAN

image-20221215211118000

同一个vlan中的主机才能收到彼此之间的广播

实现机制

IEE802.1Q

image-20221215211531995

交换机的端口类型

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

  • Access
  • Trunk
  • Hybrid

交换机各端口的缺省VLAN ID

  • 在思科交换机上称为Native VLAN,即本征VLAN。
  • 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID。

Access端口

  1. Access端口一般用于连接用户计算机
  2. Access端口只能属于一个VLAN
  3. Access端口的PVID值与端口所属VLAN的ID相同(默认为1)
  4. Access端口接收处理方法:
  • 一般只接受“未打标签”的普通以太网MAC帧。根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
  1. Access端口发送处理方法:
  • 若帧中的VID与端口的PVID相等,则“去标签’并转发该帧;否则不转发。

Trunk端口

  1. Trunk端口一般用于交换机之间或交换机与路由器之间的互连
  2. Trunk端口可以属于多个VLAN
  3. 用户可以设置Trunk端口的PVID值。默认情况下,Trunk端口的PVID值为1。
  4. Trunk端口发送处理方法:
  • 对VID等于PVID的帧,“去标签”再转发;
  • 对VID不等于PVID的帧,直接转发;
  1. Trunk端口接收处理方法:
  • 接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
  • 接收“已打标签的帧”;

Hybrid端口

  1. Hybrid端口既可用于交换机之间或交换机与路由器之间的互连(同Trunk端口),也可用于交换机与用户计算机之间的互连(同Access端口)
  2. Hybrid端口可以属于多个VLAN(同Trun端口)
  3. 用户可以设置Hybrid端口的PVID值。默认情况下,Hybrid端口的PVID值为1(同Trun端口)
  4. Hybrid端口发送处理方法(与Trunk端口不同)查看帧的VID是否在端口的“去标签”列表中:
  • 若存在,则“去标签”后再转发;
  • 若不存在,则直接转发;
  1. Hybrid端口接收处理方法(同Trunk端口)
  • 接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
  • 接收“已打标签的帧”;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

体外诊断丨艾美捷游离维多珠单抗ADA水平检测试剂盒

introduction: Crohns disease in patients with moderate to severe active ulcerative colitis, routine treatment or tumor necrosis factor α (TNF α) Antagonists can also be treated with vidolizumab. Vedolizumab is a humanized monoclona…

并查集引入

目的 主要是处理一些不相交集合的合并问题,比如:求连通子图,求最小生成树的克鲁斯卡尔算法以及最近公共祖先(LCA)等 简单应用就是连通图,将元素进行合并,如果要优化路径的话可以利用数据压缩 …

大学生简单抗击疫情静态HTML网页设计作品 DIV布局疫情感动人物介绍网页模板代码 DW学生抗疫逆行者网站制作成品下载

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_Home

继上篇介绍File功能模块之后,今天我们来介绍vTESTstudio工程使用过程的种的另外一个重要的工具栏Home,这块将是我们使用vTESTstudio编程中使用最多的一个功能模块。话不多说,下面我们就来一一介绍该功能栏能在我们编程的时候做哪些事情。 2、…

网关服务限流熔断降级【Gateway+Sentinel】

目录 第一步:启动sentinel-dashboard控制台 第二步:在网关服务中引入sentinel依赖 第三步:在网关服务application.yml中配置sentinel 第四步:通过网关进入服务 再进入sentinel控制台查看链路情况 第一步:启动sen…

一个简单的dw网页制作作业,学生个人html静态网页制作成品代码——怪盗基德动漫主题网页成品(15页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

【mmdetection系列】mmdetection之evaluate评测

1.configs 还是以yolox为例,配置有一项evaluation。用于配置评估是用什么评价指标评估。 https://github.com/open-mmlab/mmdetection/blob/master/configs/yolox/yolox_s_8x8_300e_coco.py#L151 max_epochs 300 num_last_epochs 15 interval 10evaluation di…

LVS 负载均衡

LVS 负载均衡 本篇主要介绍一下 lvs 是什么 以及它的 nat 模式的搭建 配合nginx来演示 1.概述 LVS 是 Linux Virtual Server 的简写 (Linux 虚拟服务器 ), 是由章文嵩博士主导, 它虚拟出一个服务器集群,然后进行负载均衡的项目, 目前LVS 已经被集成到Linux内核模块中了, 外部请…

直播弹幕系统(三)- 直播在线人数统计

直播弹幕系统(三)- 直播在线人数统计前言一. 在线人数统计功能实现1.1 Redis整合1.2 在线人数更新1.3 演示前言 上一篇文章整合RabbitMQ进行消息广播和异步处理 写完了消息的广播、削峰、异步处理业务逻辑等操作。完成了实时共享功能。 不过写到后面发…

Netcat介绍及安装使用

目录 介绍 Linux 安装 Windows安装 1.下载安装包 2.解压安装包 3.安装路径加入系统变量 Netcat命令参数 使用Netcat互相通信 1.创建一个服务端 2.创建一个客户端(连接服务端) 介绍 Netcat 是一款简单的Unix工具,使用UDP和TCP协议。…

七、Docker 安装Tomcat(流程、注意点、实操)

1、从中央仓库搜索tomcat 命令:docker search tomcat 也可以从官网查找,地址:Docker Hub 2、从中央仓库拉取tomcat 命令:docker pull tomcat:8.0 这里我们选择8.0 版本tomcat 3、查看镜像 命令:docker images 4、运行镜像 命令:docker run -d

如何从内存卡恢复丢失的数据?简单内存卡(SD卡)数据恢复方法分享

SD卡,也就是内存卡,在日常使用中有着体积小、存储量大的优点,被我们用来存储一些重要的数据。相机是使用SD卡的场景之一。目前大多数相机都使用SD卡来存储相关数据,这不仅是因为SD容量的优势,而且其运行速度也比较快&a…

苹果手机有什么好玩的app推荐

creativeclock 苹果手机有什么好玩的app推荐,iPhone时钟app推荐下载。 An elegant clock application that contains various creative clock styles and widgets. FlipClock, PolarClock, DigitalClock, RouletteClock, AnalogClock … and so on. view on Appsto…

Matplotlib学习笔记(第二章 2.1.5 图形的绘制过程)

本教程旨在展示使用Matplotlib的单个可视化的开始、中间和结束。 我们将从一些原始数据开始,最后保存一个定制的可视化图形。 在此过程中,我们尝试使用Matplotlib来突出一些整洁的特性和最佳实践。 注意:本教程基于克里斯莫菲特这篇优秀的博…

【图像去噪】鲁棒PCA图像去噪【含Matlab源码 463期】

⛄一、图像去噪及滤波简介 1 图像去噪 1.1 图像噪声定义 噪声是干扰图像视觉效果的重要因素,图像去噪是指减少图像中噪声的过程。噪声分类有三种:加性噪声,乘性噪声和量化噪声。我们用f(x,y)表示图像,g(x,y&#xff0…

jmeter性能测试-Arrivals 线程组解释

📌 博客主页: 程序员二黑 📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识! 📌 公号同名,欢迎加入我的测试交流群,我们一起交流学习! 目录…

Go项目目录结构该怎么写?

原文地址:Go项目目录结构该怎么写? Go 目录 /cmd 项目的主干。 每个应用程序的目录名应该与想要的可执行文件的名称相匹配(例如,/cmd/myapp)。 不要在这个目录中放置太多代码。如果认为代码可以导入并在其他项目中使用,那么它…

Python入门自学到精通需要看哪些书籍?

Python语言在近几年可以算得上如日中天,越来越火爆的同时,学习Python的人也越来越多了。对于不同基础的学习者来讲,学习的重点和方式也许会有差别,但是基础语法永远都是重中之重。在牢牢掌握基础知识的前提下,我们才能…

SAP ABAP 利用弹窗(POPUP)实现屏幕(DIALOG)快速开发

SAP ABAP 利用弹窗(POPUP)实现屏幕(DIALOG)快速开发 引言: 在 ABAP 开发中经常用到屏幕(DIALOG)开发,这通常都比较耗时。按复杂度可以分成复杂和简单两类屏幕开发,复杂的…

linux(乌班图)开发环境搭建

乌班图远程连接方法:安装openssh-server 和openssh-clientsudo apt-get -y install openssh-server openssh-client 设置允许root用户进行远程连接 方法一: /etc/ssh/sshd_config里面添加PermitRootLogin yes #重启 service ssh restart方法二&#xff1…