计算机网络与技术——数据链路层

😊计算机网络与技术——数据链路层

    • 🚀前言
    • ☃️基本概念
      • 🥏封装成帧
      • 🥏透明传输
      • 🥏差错检测
    • ☃️点对点协议PPP
      • 🥏PPP协议的特点
      • 🥏PPP协议的帧格式
        • 🔍PPP异步传输时透明传输(字符填充)
        • 🔍零比特填充
      • 🥏PPP协议的工作状态
    • ☃️广播信道
      • 🥏局域网的数据链路层
      • 🥏CSMA/CD协议
      • 🥏使用集线器的星形拓扑
      • 🥏以太网的信道利用率
      • 🥏以太网的MAC层
        • 🔍MAC帧的格式
    • ☃️拓展的以太网
      • 🥏在物理层拓展以太网
      • 🥏在数据链路层拓展以太网
      • 🥏虚拟局域网
    • ☃️高速以太网
      • 🥏100BASE-T以太网
      • 🥏吉比特以太网
      • 🥏10吉比特以太网(10GbE)和更快的以太网
      • 🥏使用以太网进行宽带接入
    • 📖总结

🚀前言

😊各位小伙伴们,本专栏新文章出炉了!!!

在这里插入图片描述
数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层的主要功能包括封装成帧、透明传输、差错控制、流量控制和链路控制等。一般适配器都包括了数据链路层和物理层这两层的功能。



☃️基本概念

链路(link):链路就是从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点,在进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路,所以链路知识一条路径的组成部分。

链路可以使用不同的传输介质,例如电缆、光纤、无线电波等。链路的传输速率和带宽取决于传输介质的特性。链路的长度也会影响其性能,通常情况下,链路的长度越长,传输速率和带宽就越低。 链路可以使用不同的协议进行通信,例如TCP/IP协议、UDP协议、HTTP协议等。链路的协议决定了数据在链路上的传输方式和格式。链路的协议还可以进行协商,以适应不同的网络环境和需求。

链路可以用于不同的网络拓扑结构,例如星形网络、环形网络、网状网络等。链路的拓扑结构决定了数据在网络中的传输路径和顺序。链路的拓扑结构还可以根据需要进行调整,以适应不同的网络环境和需求。 链路可以用于不同的网络应用,例如互联网、局域网、广域网等。链路的应用决定了数据在网络中的传输目的和范围。链路的应用还可以根据需要进行扩展和修改,以适应不同的网络环境和需求。 链路还可以使用不同的管理工具进行监控和管理,例如网络监控工具、网络管理工具等。链路的管理工具可以用来监控链路的性能和状态,以及进行链路的配置和维护。链路的管理工具还可以用来处理链路的故障和问题,以及进行链路的优化和改进。

数据链路(data link):当需要在一条线路上传送数据时,除了必须有一条物理线路之外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路

数据链路层的协议有很多种,例如PPP协议、以太网V2协议、HDLC协议等。不同的协议有不同的功能和特性,例如PPP协议可以进行链路控制协议协商和认证,以太网V2协议可以使用MAC地址进行数据帧的封装和解封装,HDLC协议可以使用数据链路控制协议进行数据帧的封装和解封装,以及流量控制和差错控制。数据链路层的帧格式通常包括首部和数据部分。首部包含源地址、目标地址、控制字段等信息,用于控制数据的传输。数据部分则包含实际要传输的数据。

数据链路层的传输机制通常包括同步和异步两种。同步传输是通过发送特定的同步字符来同步数据的传输,异步传输则是通过发送特定的起始位、停止位和奇偶校验位来同步数据的传输。 数据链路层的差错控制通常包括检错和纠错两种方式。检错是通过使用检错码来检测数据在传输过程中是否出现差错,如果发现有差错,就简单地丢弃这个帧。纠错是通过使用纠错码来纠正数据在传输过程中出现的差错,如果发现有差错,就使用纠错码来纠正数据。

数据链路层的访问控制通常包括CSMA/CD、CSMA/CA和令牌环三种方式。CSMA/CD(载波监听多路访问/冲突检测)是一种自适应的媒体访问控制方式,适用于广播型网络。CSMA/CA(载波监听多路访问/冲突避免)是一种基于冲突避免的媒体访问控制方式,适用于点对点型网络。令牌环是一种基于令牌的媒体访问控制方式,适用于环形网络。 数据链路层的透明传输是指数据链路层协议在传输数据时,不需要对数据进行任何处理,因此数据在传输过程中不会出现任何差错。

✨接下来我们通过一个案例来简单理解数据链路层进行通信的过程
在这里插入图片描述
点对点信道在数据链路层在进行通信时的主要过程

  • 节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
  • 节点A把封装好的帧发送给节点B的数据链路层
  • 若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层,否则丢弃这个帧。

🥏封装成帧

封装成帧(framing) 是指将数据链路层的数据和控制信息组织成一个完整的数据包,封装成帧就是在一段数据的前后分别添加首部和尾部,头部包含源地址、目标地址、控制字段等信息,尾部通常包含校验码等信息,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别出帧的开始和结束。

封装成帧的目的是为了将数据链路层的数据和控制信息从源节点传输到目标节点。封装成帧的过程通常在数据链路层进行,但在某些情况下,也可以在物理层进行。封装成帧的方式和格式取决于使用的网络协议和链路类型。

所有在互连网上传送的数据都以分组(即IP数据报) 为传送单位。网络层的IP数据报传送到数据链路层就成为帧的数据部分,在帧的数据部分的前面和后面分别添加上首部和尾部,构成了一个完整的帧。首部和尾部的一个重要作用就是进行帧定界(确定帧的界限)。各种数据链路层协议都对帧首部和帧尾部的格式有明确的规定,且每一种链路层协议都规定了所能传送帧的数据部分长度上限——最大传送单元MYU(Maximum Transfer Unit)
在这里插入图片描述
封装成帧是数据链路层的一个重要功能,它可以确保数据在传输过程中的完整性和可靠性。封装成帧还可以提高数据的传输效率,减少数据在传输过程中的延迟和丢失。

当数据是由可以打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOH(Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(End Of Transmission) 表示帧的结束。
在这里插入图片描述
补充:

SOH和EOT都是控制字符的名称,它们的十六进制编码分别是01(二进制是00000001)和04(二进制是00000100)。SOH(或EOT)并不是S、O、H(或E、O、T)三个字符。

当数据在传输中出现了差错,帧定界符的作用更加明显。假定发送端在尚未发送完一个帧时突然中断发送,随后重新连接,于是从头开始发送刚才未发送完的帧。由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧(只有首部开始符,并没有尾部结束符),所以就会丢弃这个不完整的数据,随后再次收到的数据有明确的帧定界符,因此这是一个完整的帧,所以会接收成功。

🥏透明传输

透明传输是指数据链路层协议在传输数据时,不需要对数据进行任何处理,因此数据在传输过程中不会出现任何差错。透明传输的目的是为了确保数据在网络中的传输效率和可靠性。透明传输的实现通常依赖于数据链路层的差错控制和流量控制机制。差错控制机制可以检测和纠正数据在传输过程中出现的差错,流量控制机制可以控制数据的发送速率,以防止数据在网络中堆积和丢失。透明传输是一种非常重要的网络传输模式,它可以确保数据在网络中的传输效率和可靠性,提高网络的性能和稳定性。透明传输还可以简化网络的设计和维护,减少网络的复杂性和成本。

由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8bit的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就有可能出现帧定界的错误。

当传输的帧时用文本文件组成的帧时(文本文件中的字符都是可以从键盘上输入的),其数据部分显然不会出现帧定界控制字符,因此这种传输就是透明传输。但当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),假若数据中的某个字符的二进制代码恰好和帧定界控制字符一样,则数据链路层就会错误地“找到帧的边界”,把部分帧收下(误认为这是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制符SOH)。
在这里插入图片描述
为了解决透明传输所产生的问题,就必须设法使数据中可能出现的“控制字符”在接收端不被解释为控制字符。
解决办法:字节填充 (byte stuffing) 字符填充 (character stuffing)

  • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前⾯插⼊⼀个转义字符“ESC”;
  • 接收端的数据链路层在将数据送往⽹络层之前删除插⼊的转义字符;
  • 如果转义字符也出现在数据当中,那么应在转义字符前⾯插⼊⼀个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前⾯的⼀个。
    在这里插入图片描述

🥏差错检测

差错检测是指在发送的码序列(码字)中加入适当的冗余度以使得接收端能够发现传输中是否发生差错的技术。除了用于通信外,差错检测技术也广泛用于信息存储中。差错检测通常使用冗余码进行,冗余码可以检测和纠正数据在传输过程中出现的差错。冗余码的类型有很多种,例如奇偶校验码、循环冗余校验码(CRC)、海明码、纠错码等。

差错检测的过程通常包括编码和解码两个步骤。编码步骤将原始数据编码成冗余码,解码步骤将冗余码解码成原始数据。在编码过程中,可以使用不同的编码算法和编码规则,以适应不同的网络环境和需求。差错检测是数据链路层的一个重要功能,它可以确保数据在网络中的传输效率和可靠性。差错检测可以检测和纠正数据在传输过程中出现的差错,减少数据在传输过程中的丢失和损坏。差错检测还可以提高网络的性能和稳定性,提高网络的可用性和可靠性。

比特在传输过程中可能会产生差错,1可能变为0,而0也可能变为1,这就叫做比特差错。比特差错是传输差错中的一种。为了保证数据传输的可靠性,在计算机⽹络传输数据时,必须采⽤各种差错检测措施。

循环冗余校验码(CRC) 是一种常用的差错检测方法,用于检测数据在传输过程中是否出现差错。CRC码通常用于数据链路层和网络层的差错检测,它可以检测和纠正数据在传输过程中出现的位错误。

CRC码的编码过程通常包括选择生成多项式、计算生成多项式除以数据的余数、生成校验码等步骤。生成多项式是一个二进制序列,用于确定CRC码的生成规则。生成多项式的位数通常小于或等于数据的位数,因此生成多项式通常比数据短。计算生成多项式除以数据的余数是CRC码编码过程中的重要步骤。计算生成多项式除以数据的余数的过程可以使用模2除法进行,模2除法是一种特殊的除法,只适用于二进制数。计算生成多项式除以数据的余数的结果就是CRC码。
在这里插入图片描述
生成校验码是CRC码编码过程中的最后一个步骤。生成校验码的过程是将计算生成多项式除以数据的余数的结果进行某种转换,以得到一个完整的CRC码。生成校验码的过程可以使用不同的转换算法和转换规则,以适应不同的网络环境和需求。

CRC码是一种常用的差错检测方法,它可以检测和纠正数据在传输过程中出现的位错误。CRC码具有简单、高效、鲁棒性强等特点,被广泛用于各种网络通信协议和设备中。



☃️点对点协议PPP

点对点协议PPP(Point-to-Point Protocol) 是一种在链路层使用的协议,用于在两个节点之间建立一个点对点的链路。PPP协议通常用于拨号网络和广域网中的点对点连接,它可以提供可靠的、快速的、简单易用的数据链路层协议。PPP协议具有简单、高效、灵活等特点,被广泛用于各种网络通信协议和设备中。

PPP协议通常包括三个部分:链路控制协议(LCP)、网络控制协议(NCP)和地址解析协议(ARP)。LCP协议用于控制PPP链路的建立和终止,NCP协议用于协商PPP链路的参数和选项,ARP协议用于查找和解析IP地址和MAC地址。

PPP协议的建立过程通常包括三个阶段:协商阶段、认证阶段和网络阶段。协商阶段用于协商PPP链路的参数和选项,认证阶段用于进行链路认证,网络阶段用于进行数据传输。

🥏PPP协议的特点

PPP协议具有以下特点:

  • 简单:PPP协议的设计非常简单,仅需要较少的协议头和选项,可以方便地实现协议的开发和使用。
  • 可靠:PPP协议使用了多种差错检测和纠正机制,可以保证数据传输的可靠性和完整性。
  • 封装成帧:PPP协议规定特殊字符作为帧定界符(即标志一个帧的开始和结束的字符),以便接收端从收到的比特流中能准确地找到帧的开始和结束位置。
  • 透明:PPP协议保证数据传输的透明性。
  • 多种网络协议:PPP协议支持多种网络协议和选项,可以满足不同网络环境和应用的需求。
  • 多种类型链路:除了支持多种网络层协议之外,PPP协议能够在多种类型的链路上运行。
  • 差错检测:PPP协议能够对接收端接收到的帧进行检测,并能够立即丢弃有差错的帧
  • 检测连接状态:PPP协议具有一种机制能能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。
  • 最大传送单元:PPP协议对每一种类型的点对点链路设置了最大传送单元 MTU的标准默认长度。

PPP协议有三个组成部分:

  • 链路控制协议(LCP):LCP协议用于控制PPP链路的建立和终止,它可以协商链路的参数和选项,以及检测和纠正链路中的差错。
  • 网络控制协议(NCP):NCP协议用于协商PPP链路的参数和选项,它可以协商链路中的各种选项和参数,例如服务质量、压缩机制、认证机制等。
  • 地址解析协议(ARP):ARP协议用于查找和解析IP地址和MAC地址,它可以将IP地址转换为MAC地址,以及将MAC地址转换为IP地址。

🎯补充:

MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。MTU的默认值是1500字节,在RFC 1661中,MTU叫做最大接收单元MRU

🥏PPP协议的帧格式

PPP的帧格式如下图所示,PPP帧的首部和尾部分别为四个字段和两个字段。首部的第一个字段和尾部的第二个字段都是标志字段F(Flag)。标志字段表示一个帧的开始或结束。因此标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。

PPP首部的第四个字段是2字节的协议字段,当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS
在这里插入图片描述

🔍PPP异步传输时透明传输(字符填充)

当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上的和标志字段一样的比特组合不出现在信息字段中。当PPP使用异步传输时,它把转义符定义为0x7D(即01111101),并使用字节填充,RCF 1662规定了如下所属的填充方法:

  • 把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)
  • 若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成2字节序列(0x7D,0x5D)
  • 若信息字段中出现ASCII的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列(0x7D,0x23)
    在这里插入图片描述
    由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确的恢复出原来的信息。
🔍零比特填充

PPP协议在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP协议采用零比特填充的方法来实现透明传输。

零比特填充的具体做法是:在发送端,先扫描整个信息字段(通常用硬件实现,但可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入一个0,因此经过这种零比特填充过后的数据,就可以保证在信息字段中不会出现6个连续1。接收端在就接收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把这5个连续1后面的一个0删除,以还原成原来的信息比特流。这样就保证了透明传输,在所传送的数据比特流中可以传送任意组合的比特流,而不会引起对帧边界的错误判断。
在这里插入图片描述

🥏PPP协议的工作状态

PPP协议的工作状态包括以下几种:

  • 链路终止状态:链路终止状态是指PPP链路已经终止,不再进行数据传输。链路终止状态通常由一方主动发起,也可以由一方被动接受。
  • 链路静止状态:链路静止状态是指PPP链路已经建立,但是没有进行数据传输。链路静止状态通常由一方主动发起,也可以由一方被动接受。
  • 链路建立状态:链路建立状态是指PPP链路已经建立,并且正在进行数据传输。链路建立状态通常由一方主动发起,也可以由一方被动接受。
  • 鉴别状态:鉴别状态是指PPP链路正在进行鉴别的过程,以确定双方的身份和参数。鉴别状态通常由一方主动发起,也可以由一方被动接受。
  • 网络层协议状态:网络层协议状态是指PPP链路正在进行网络层协议的协商和配置。网络层协议状态通常由一方主动发起,也可以由一方被动接受。
  • 链路打开状态:链路打开状态是指PPP链路已经建立,并且正在进行数据传输。链路打开状态通常由一方主动发起,也可以由一方被动接受。
    在这里插入图片描述
    PPP链路的起始和终止状态永远都是“链路静止(Link Dead)”状态,这时候用户个人电脑和ISP的路由器之间不存在物理层的链接。当用户个人电脑通过调制解调器呼叫路由器时,路由器就能够检测到调制解调器发出的载波信号,在双方建立物理层连接后,PPP就进入“链路建立(Link Establish)”状态,其目的是建立链路层的LCP连接。这个时候LCP开始协商一些配置选项,即发送LCP的配置请求帧(Configure-Request)。这是一个PPP帧,其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。

链路的另一端可以发送以下集中响应的一种:

  • 配置确认帧(Configure-Ack):所有选项都接受
  • 配置否认帧(Configure-Nak):所有选项都理解但不能接受
  • 配置拒绝帧(Configure-Reject):选项有的无法识别或不能接受,需要协商。

协商结束后双方就建立了LCP链路,接着就进入“鉴别(Authenticate)”状态。若鉴别身份失败,则转到“链路终止(Link Terminate)”状态,若鉴别成功,则进入“网络层协议(Network-LayerProtocol)”状态。在“网络层协议”状态,PPP链路两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。PPP协议两端的网络层可以运行不同的网络层协议,但仍然可使用同一个PPP协议进行通信。

当网络层配置完毕后,链路就进入可进行数据通信的“链路静止(Link Dead)”状态。链路的两个PPP端点可以彼此向对方发送分组。数据传输结束后,可以由链路的一端发出终止请求LCP分组(Terminate-Request)请求终止链路连接,在收到对方发来的终止确认LCP分组(Terminate-Ack)后,转到“链路终止”状态。



☃️广播信道

广播信道(Broadcast Channel) 是指在无线通信网络中,所有接收端都可以接收到的信息信道。广播信道的特点是发送端发送的信息可以被网络中的所有接收端接收到,但是接收端不能确定信息的发送者。广播信道在无线通信网络中具有广泛的应用,例如在电视广播、无线电广播、卫星通信等网络中,都使用了广播信道。广播信道可以方便地实现信息的广播和传输,也可以方便地实现信息的共享和分发。广播信道是一种非常常见的无线通信信道,它可以用来描述无线通信网络中的信息传输和接收过程。广播信道可以方便地实现无线通信网络的设计和优化,也可以方便地实现无线通信网络的管理和维护。

🥏局域网的数据链路层

局域网的数据链路层(Local Area Network - Data Link Layer) 是局域网中的一个重要组成部分,它负责将数据帧从一个节点发送到另一个节点,以及处理数据帧的错误和冲突。
在这里插入图片描述
✨局域网的数据链路层通常包括以下几种功能:

  • 数据帧的发送:局域网的数据链路层负责将数据帧从一个节点发送到另一个节点。数据帧通常包括源地址、目标地址、控制字段和数据部分等信息。
  • 数据帧的接收:局域网的数据链路层负责接收数据帧,并将数据帧转发到正确的目标节点。数据帧的接收过程通常包括地址解析、错误检测和数据分段等步骤。
  • 数据帧的错误处理:局域网的数据链路层负责检测和处理数据帧中的错误,例如错误的地址、错误的控制字段等。数据帧的错误处理过程通常包括错误检测、错误恢复和错误报告等步骤。
  • 数据帧的冲突处理:局域网的数据链路层负责检测和处理数据帧中的冲突,例如数据帧的发送过程中出现了多个数据帧。数据帧的冲突处理过程通常包括冲突检测、冲突避免和冲突解决等步骤。
    局域网的数据链路层是一种非常重要的网络技术,它可以用来实现局域网中的数据传输和通信。局域网的数据链路层可以方便地实现网络的连接和通信,也可以方便地实现网络的管理和服务。

🥏CSMA/CD协议

CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 协议是一种用于以太网局域网的访问控制技术。它用于调节多个设备之间共享同一物理链路的访问。它的目标是在多个设备之间共享同一物理链路时,避免数据碰撞和冲突,并提供公平的访问权。CSMA/CD协议允许多个设备通过同一物理链路进行通信。

在CSMA/CD协议中,设备在发送数据之前会先侦听物理媒体(电缆)上是否存在其他设备的信号。如果没有侦测到其他设备的信号,设备就开始发送数据。如果同时有多个设备发送数据,就会发生碰撞。碰撞检测会被所有碰撞设备侦测到。当发生碰撞时,设备会停止发送数据,并发送一个特殊的信号(jam signal)来通知其他设备发生了碰撞。所有碰撞设备都会等待随机的一段时间后再次尝试发送数据。这个随机的等待时间可以减少再次发生碰撞的可能性。

CSMA/CD协议在以太网中起到了重要的作用,它能够有效地控制多个设备之间的访问,提高网络的吞吐量和可靠性。然而,随着网络技术的不断发展,CSMA/CD协议在一些现代网络中已经被更高效的协议所取代。

下面是CSMA/CD协议的详细解释和说明:

  1. 载波侦听(Carrier Sense):在发送数据之前,设备会先侦听物理链路上是否有其他设备正在发送数据。如果侦听到信号,说明有其他设备正在使用链路,当前设备会暂停发送并等待。
  2. 多点访问(Multiple Access):多个设备可以同时访问共享的物理链路。它们都有权利发送数据,但需要遵循一定的协议规则以防止碰撞。
  3. 碰撞检测(Collision Detection):如果多个设备同时发送数据,就会发生碰撞。通过碰撞检测机制,设备能够侦测到碰撞的发生,并立即停止发送数据。
  4. 碰撞处理:当设备侦测到碰撞发生后,它会发送一个特殊的信号(称为jam signal)来中断其他设备的发送。所有设备都会等待一段随机时间后重试发送数据,这个等待时间的随机性可以减少再次发生碰撞的可能性。
  5. 时间分割:以太网以帧的形式发送数据。为了确保不同帧之间的分隔,以太网规定帧之间需要有最小的时间间隔(Interframe Spacing)

CSMA/CD协议的工作原理是基于分布式的访问控制,没有中央调度机构。它依赖于设备之间的协作和侦听来避免碰撞,并通过碰撞检测和碰撞处理机制来处理发生的碰撞。这种协议适用于以太网局域网等共享链路的场景。

当一台设备要发送数据时,CSMA/CD协议按照以下步骤进行:

  1. 载波侦听(Carrier Sense):设备会先侦听物理链路是否空闲。如果物理链路上没有侦测到其他设备的信号,表示链路空闲,设备可以开始发送数据。如果链路上存在其他设备的信号,则设备会等待一段时间,直到链路空闲。
  2. 前导码(Preamble):设备在发送数据前会先发送一个前导码,用于让接收设备进行同步和准备接收数据。
  3. 数据传输:设备开始发送数据帧,通过物理链路将数据传输给目标设备。
  4. 碰撞检测(Collision Detection):发送数据的设备在发送数据的同时会不断侦听物理链路,以检测是否发生了碰撞。如果设备在发送数据的同时侦测到物理链路上有其他设备发送数据,即发生了碰撞,设备会立即停止发送数据。
  5. 碰撞处理:当发送设备检测到碰撞时,它会发送一个特殊的jam信号来中断其他设备的发送。同时,所有参与碰撞的设备都会等待一个随机的时间片后再次尝试发送数据。这个随机的等待时间可以减少再次发生碰撞的可能性。
  6. 重传限制:CSMA/CD协议还引入了一种重传限制机制来防止过多的重传。当重传次数超过一定的限制时,设备会放弃发送数据。

对碰撞检测的详细解释:
“碰撞检测” 就是计算机边发送数据边检测信道上的信号电压⼤⼩,当⼏个站同时在总线上发送数据时,总线上的信号电压摆动值将会增⼤(互相叠加);当⼀个站检测到的信号电压摆动值超过⼀定的⻔限值时,就认为总线上⾄少有两个站同时在发送数据,表明产⽣了碰撞;所谓“碰撞”就是发⽣了冲突。因此“碰撞检测”也称为**“冲突检测”**。

在这里插入图片描述
在发⽣碰撞时,总线上传输的信号产⽣了严重的失真,⽆法从中恢复出有⽤的信息来,每⼀个正在发送数据的站,⼀旦发现总线上出现了碰撞,就要⽴即停⽌发送,免得继续浪费⽹络资源,然后等待⼀段随机时间后再次发送。那为什么要进行碰撞检测呢?因为电磁波在总线上的传播速率是有限的(200m/µs),当某个站监听到总线是空闲时,也可能总线并⾮真正是空闲的,A向B发出的信息,要经过⼀定的时间后才能传送到B,B若在A发送的信息到达B之前发送⾃⼰的帧 (因为这时B的载波监听检测不到 A 所发送的信息),则必然要在某个时间和A发送的帧发⽣碰撞。碰撞的结果是两个帧都变得⽆⽤,所以需要在发送期间进⾏碰撞检测,以检测冲突。
在这里插入图片描述

什么是争用期?
最先发送数据帧的站,在发送数据帧后⾄多经过时间就可知道发送的数据帧是否遭受了碰撞,以太⽹的端到端往返时延 称为争⽤期,或碰撞窗⼝,经过争⽤期这段时间还没有检测到碰撞,才能肯定这次发送不会发⽣碰撞。
在这里插入图片描述
然而,随着网络技术的进步,CSMA/CD协议在高速网络中的效率变得有限,因为随着链路速度的增加,碰撞的检测和处理时间会更长,从而降低了网络的吞吐量。因此,在现代网络中,更常见的是采用全双工模式和更高效的访问控制技术,如CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)或者交换机技术来取代CSMA/CD协议。

🥏使用集线器的星形拓扑

星形拓扑是一种计算机网络拓扑结构,使用集线器作为中心设备。这种拓扑结构被广泛应用于以太网局域网和一些小型企业网络中。
在这里插入图片描述
下面是使用集线器的星形拓扑的详细解释:

  • 中心设备:在星形拓扑中,集线器(Hub)被用作中心设备。集线器是多个设备的连接点,它接收来自每个设备的数据,并将其广播给其他连接的设备。
  • 单向通信:在星形拓扑中,所有的数据流都通过集线器进行中转。当一个设备发送数据时,数据会被发送到集线器,然后集线器会将数据广播给所有其他连接的设备。这意味着数据传输是单向的,其他设备只能接收数据,而无法对其进行修改或中断传输。
  • 集线器的工作原理:集线器是一种物理层设备,它接收到来自一个端口的数据后,会将数据复制并广播到其他所有端口上。
  • 碰撞域:在星形拓扑中,每个连接到集线器的设备都在同一个碰撞域内。这意味着如果多个设备同时发送数据,可能会发生碰撞,从而影响网络的性能。为了避免碰撞,通常会使用CSMA/CD协议来轮流访问物理链路。
  • 灵活性和可扩展性:星形拓扑具有较好的灵活性和可扩展性。由于每个设备都直接连接到集线器,可以方便地添加或移除设备,而不会影响其他设备的工作。这种结构使得网络维护和故障排除更加容易。
  • 单点故障:尽管星形拓扑提供了一定的鲁棒性,但它也存在一个潜在的问题,即单点故障。由于所有的数据流都通过集线器,如果集线器发生故障,整个网络将无法正常工作。因此,为了提高网络的可靠性,通常会采取冗余设计,引入备用集线器或其他冗余组件。

集线器特点:

  • 使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议(更具体的说,是各站中的适配器执行CSMA/CD协议)。网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。
  • 一个集线器有许多端口
  • 集线器工作在物理层,它的每个端口仅仅简单地转发比特——收到1就转发1,收到0就转发0,并不进行碰撞检测。
  • 集线器采用专门的芯片,进行自适应串音回波抵消。

需要注意的是,随着技术的进步,星形拓扑逐渐被更先进的拓扑结构,如以太网交换机的使用所取代。交换机具备更高的性能和灵活性,可以实现数据的快速转发和分组,同时也能够提供更好的网络隔离和安全性。

🥏以太网的信道利用率

以太网是一种常用的局域网技术,其工作原理是在共享的物理媒体上实现多路复用和冲突检测。以太网的信道利用率是指在一个信道上,有多少时间用于传输数据,而不是用于空闲或等待。信道利用率越高,网络的效率就越高。
在这里插入图片描述
以太网的信道利用率可以通过以下公式来计算:
信道利用率 = (总发送时间 - 总等待时间) / 总发送时间

其中,总发送时间包括了所有数据包的发送时间,以及由于碰撞而引起的重传时间;总等待时间则是所有数据包之间的间隔时间。以太网的信道利用率受多种因素影响,包括网络中的节点数量、每个节点发送数据包的频率、网络的拓扑结构等。通过优化这些因素,可以提高以太网的信道利用率。

为了进一步理解以太网的信道利用率,我们需要考虑以下几个概念:

  • 单程端到端时延:这是指从一个节点发送数据包到另一个节点接收数据包所需要的时间,它取决于物理媒体的特性、节点之间的距离等因素。
  • 发送帧的概率:这是指每个节点在某个时间段内发送数据包的可能性,它可以受到网络负载、节点优先级等多种因素的影响。
  • 争用期长度:这是指在一个时间段内,所有节点都可以尝试发送数据包的时间段,它的长度等于两个单程端到端时延之和。
  • 检测到碰撞后不发送干扰信号:这是为了避免在检测到碰撞后,其他节点继续发送干扰信号,从而导致更多的碰撞。

🥏以太网的MAC层

在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)

MAC层的主要功能包括:

  • 数据帧的构建和传输:MAC层将应用层数据封装成一个完整的数据帧,并将其传输到网络中。
  • 帧同步和定时:MAC层负责保持各个节点之间的同步和定时,确保数据帧能够在正确的时间到达目的地。
  • 多路复用和碰撞检测:MAC层实现了多路复用,允许多个节点同时在共享的物理媒体上传输数据。同时,当多个节点试图在同一时刻发送数据时,MAC层能够检测到碰撞并采取相应的措施。
  • 节点识别和寻址:MAC层为每个节点分配了一个唯一的MAC地址,使得节点可以在网络中被唯一地识别和寻址。
🔍MAC帧的格式

常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准(即以太网V2标准),另一种是IEEE的802.3标准。以太网V2的MAC帧较为简单,由五个字段组成。前两个字段分别为6字节长度的目的地址源地址字段。第三个字段是2字节的类型字段。用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。第四个字段是数据字段,其长度在46到1500字节之间。最后一个字段是4字节的帧检测序列FCS(使用CRC检验)。
在这里插入图片描述
此外,以太网的MAC层还支持其他一些功能,如广播和多播、服务质量管理等。这些功能可以根据不同的应用场景和需求进行配置和调整。

☃️拓展的以太网

拓展的以太网是一种技术,用于将多个局域网(LAN)连接在一起,形成一个更大的网络。这种技术主要用于扩展物理范围内的以太网,可以增加网络的覆盖面积,并提高网络的带宽。

拓展以太网可以通过在物理层上使用光纤或集线器来实现。在物理层上使用光纤可以将数据从一个站点传送到另一个站点,而不会受到电磁干扰的影响。而在物理层上使用集线器则可以在多个局域网之间建立桥梁,从而使这些局域网能够在逻辑上成为一个更大的网络。在数据链路层上,也可以使用网桥来实现拓展以太网。网桥是一种设备,它可以接收并转发数据包,从而实现局域网之间的通信。网桥可以根据数据包的目的地址,将数据包转发到正确的网络中去,从而避免了数据包的冲突和重复发送。

🥏在物理层拓展以太网

在物理层拓展以太网是一种技术,用于将多个局域网连接在一起,形成一个更大的网络。这种技术主要用于扩展物理范围内的以太网,可以增加网络的覆盖面积,并提高网络的带宽。

在物理层拓展以太网中,有两种常用的设备:光纤和集线器。光纤是一种传输媒介,它可以把数据从一个站点传送到另一个站点,而不会受到电磁干扰的影响。光纤的传输速度非常快,因此可以大大提高网络的带宽。此外,光纤还具有很高的安全性,因为它不易被窃听或者破坏。

集线器是一种设备,它可以把多个局域网连接在一起,形成一个更大的网络。集线器的工作原理是将所有接收到的数据包都转发给其他所有的局域网,这样就可以保证数据包能够在所有局域网中流动。
在这里插入图片描述
另外,还可以使用交换机来实现物理层拓展以太网。交换机也是一种设备,它可以把多个局域网连接在一起,形成一个更大的网络。但是,交换机的工作原理与集线器不同。交换机会根据每个数据包的目的地址,将其转发到正确的网络中去,从而避免了数据包的冲突和重复发送。这种方法比使用集线器更加灵活,因为它可以根据需要选择不同的网络来进行通信。

🥏在数据链路层拓展以太网

拓展以太网更常用的方法是在数据链路层进行的。最初人们使用的是网桥(bridge)。网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有的端口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个端口,或者是把它丢弃(即过滤)。

在数据链路层拓展以太网中,主要有三种类型的设备:网桥、路由器和交换机。网桥是一种设备,它可以接收并转发数据包,从而实现局域网之间的通信。网桥可以根据数据包的目的地址,将数据包转发到正确的网络中去,从而避免了数据包的冲突和重复发送。路由器是一种设备,它可以接收和发送数据包,从而实现不同网络之间的通信。路由器可以根据数据包的目的地址,将数据包转发到正确的网络中去,从而实现网络之间的互连。交换机也是一种设备,它可以把多个局域网连接在一起,形成一个更大的网络。交换机的工作原理与路由器类似,但是它的处理能力更强,因此可以提供更快的网络服务。
在这里插入图片描述
另外,还可以使用汇聚层来实现数据链路层拓展以太网。汇聚层是一种设备,它可以把多个局域网连接在一起,形成一个更大的网络。汇聚层的工作原理与交换机类似,但是它可以处理更多的数据包,从而提高网络的服务性能。

🥏虚拟局域网

虚拟局域网(Virtual LAN,简称 VLAN)是一种将一组设备划分到单独的逻辑网段的技术。通过 VLAN 技术,可以将不在同一个物理网段上的设备逻辑上连接在同一个 LAN 中,实现更灵活高效的网络管理。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
在这里插入图片描述
在 VLAN 中,每个设备被分配到一个 VLAN,不同的 VLAN 之间是逻辑上隔离的,互相之间无法直接通信。交换机(Switch) 是 VLAN 的关键设备,通过交换机的端口,可以把每个 VLAN 的网络流量分别隔离开来。在交换机上,可以对端口进行 VLAN 配置,比如将某个端口分配给某个 VLAN,从而实现对 VLAN 网络的控制。

VLAN 在企业网络中得到广泛应用,既能提高网络管理的灵活性,也能提高网络安全性。例如,对于需要限制访问的资源或公开的资源,可以使用不同的 VLAN 进行隔离,从而增加网络安全性。此外, VLAN 还可以提高网络性能,通过合理规划 VLAN 的数量和范围,可以有效减小广播域,减少不必要的网络广播和冲突,提高网络的带宽利用率。



☃️高速以太网

🥏100BASE-T以太网

100BASE-T是一种以太网技术,其工作速率为100 Mbps。它是一种基于双绞线的以太网标准,使用4对线缆(即8根线)进行数据传输。

100Mbit/s以太网的物理层标准

名称媒体网段最大长度特点
100BASE-TX铜缆100m两对UTP-5类线或屏蔽双绞线STP
100BASE-T4铜缆100m4对UTP-3类线或5类线
100BASE-FX光缆2000m两根光纤,发送和接收各用一根

100BASE-T一般采用双绞线作为物理介质,支持最长100米的链路距离。为了实现高效的数据传输,100BASE-T采用了一些技术手段,例如采用了CSMA/CD协议实现多点访问控制,采用了4D-PAM5码流技术实现高密度信号传输。

100BASE-T中采用了很多的标准,其中包括TIA/EIA-568-B、TIA/EIA-568-C和ISO/IEC 11801等标准,这些标准规定了使用的双绞线线缆的类型、连接器的类型等等。

100BASE-T现在已经逐渐成为历史,被更快速的以太网替代,例如千兆以太网(1000BASE-T)和万兆以太网(10GBASE-T)。但是,100BASE-T仍然在某些场合得到广泛应用,特别是在一些局域网应用中,例如在企业内部网络中,仍然有许多100BASE-T以太网设备在使用。

🥏吉比特以太网

吉比特以太网(Gigabit Ethernet)是一种高速的以太网技术,其工作速率为1 Gbps(即1000 Mbps),是100BASE-T以太网的十倍速率。

吉比特以太网采用了与100BASE-T相似的物理媒介,即双绞线,但在信号调制和编码方面采用了不同的技术。吉比特以太网可以使用Cat5e或更高性能的双绞线来实现最大100米的链路距离。

吉比特以太网物理层标准

名称媒体网段最大长度特点
1000BASE-SX光缆550m多模光纤
10000BASE-LX光缆5000m单模光纤
10000BASE-CX铜缆25m使用2对屏蔽双绞线电缆STP
10000BASE-T铜缆100m使用4对UTP5类线

吉比特以太网具有许多优势。首先,它提供了更高的数据传输速率,比100BASE-T以太网快10倍,适用于对网络带宽要求较高的应用场景,如数据中心、多媒体传输等。其次,吉比特以太网兼容现有的以太网架构,使得升级到1 Gbps网络变得相对简单,并且可以与较旧的以太网设备进行互操作。

吉比特以太网也有一些变种,如1000BASE-T,它是通过4对线缆进行数据传输,支持最长100米链路距离。此外,还有其他吉比特以太网标准,如光纤以太网(1000BASE-SX、1000BASE-LX)和细胞转发以太网(1000BASE-CX)等,它们使用不同的物理媒介来实现高速的数据传输。

吉比特以太网在现代网络中得到了广泛的应用,成为企业网络、数据中心以及大规模部署的主要选择,为用户提供高速、可靠、高带宽的网络连接。

🥏10吉比特以太网(10GbE)和更快的以太网

10吉比特以太网(10 Gigabit Ethernet,简称10GbE)是一种高速的以太网技术,其工作速率为10 Gbps(即10000 Mbps),是吉比特以太网的10倍速率。除了10GbE之外,还有更快速的以太网技术,如40GbE和100GbE。

10GbE采用了与1000BASE-T相似的双绞线、光纤或直接连接线缆,但在信号调制、编码和链路控制方面使用了更复杂的技术。它能够支持长达100米的通信链路。

10GbE具有许多显著优势。首先,它提供了比吉比特以太网更高的数据传输速率,适用于处理大量数据、高带宽需求以及对网络延迟要求较高的应用场景,如数据中心、云计算、超算、视频传输等。其次,10GbE可以提供更高的网络吞吐量和更低的延迟,提升了网络性能和响应能力。此外,10GbE还可以减少数据中心的复杂性和提高网络的可伸缩性。

10GbE的物理层标准

名称媒体网段最大长度特点
10GBASE-SR光缆300m多模光纤
10GBASE-LR光缆10km单模光纤
10GBASE-ER光缆40km单模光纤
10GBASE-CX4铜缆15m使用4对双芯同轴电缆
10GBASE-T铜缆100m使用4对6A类UTP双绞线

除了10GbE之外,40GbE和100GbE是更快速的以太网技术。它们支持更高的数据传输速率,分别为40 Gbps和100 Gbps。这些技术通常在大型数据中心、高密度服务器架构以及超高带宽要求的环境中使用。总结来说,10GbE及更快速的以太网技术(如40GbE和100GbE)提供了更高的数据传输速率和网络性能,适用于大规模的数据传输、高带宽需求和低延迟要求的应用场景,推动了现代网络的发展和创新。

🥏使用以太网进行宽带接入

使用以太网进行宽带接入是一种广泛使用的方式,它可以利用以太网的高速传输能力将宽带接入网络扩展到多个计算机、路由器和其他设备。

通常情况下,宽带接入提供商会提供一种称为调制解调器的设备,用于将数字信号转换为可以通过电缆、电话线缆或其他媒介传输的信号。调制解调器可以通过多种方式连接到计算机和路由器,其中一种常用的方式是使用以太网连接。在此方案中,宽带调制解调器通常具有一个或多个以太网端口,可以将宽带信号转换到以太网协议。这使得计算机和路由器可以通过以太网电缆连接到调制解调器,实现宽带连接。

为了确保网络安全和管理,许多宽带调制解调器还带有内置路由器功能,这些路由器可以分配内部IP地址并协调内部网络流量。这使得多个计算机和其他设备可以同时访问宽带网络,从而实现共享宽带连接。除了利用通用调制解调器和内置路由器,还有一些专用设备,例如电信公司提供的光纤终端设备,也可以将数字信号转换为以太网连接。这样的设备通常具有更高的性能和更多的端口,可以同时连接多个计算机和其他设备。

📖总结

数据链路层是网络层次结构中的第二层,它负责控制和管理在网络中的数据帧的传输。在数据链路层,主要包括以下几个方面的功能:

  • 节点识别:数据链路层通过节点识别技术,可以确定网络中的每个节点的身份,从而保证数据的安全性和正确性。
  • 数据包组装和拆卸:数据链路层通过数据包组装和拆卸技术,可以把原始的数据分割成一个个的数据包,并把它们按照一定的规则组装起来,以便在网络中进行传输。
  • 数据包差错检测和纠正:数据链路层通过数据包差错检测和纠正技术,可以检查数据包是否完整,并在发现数据包有误时,对其进行纠正,从而保证数据的正确性。
  • 流量控制:数据链路层通过流量控制技术,可以控制网络中的数据流量,从而防止数据包过早地到达目标节点,导致目标节点无法正常处理。
  • 多路复用:数据链路层通过多路复用技术,可以同时传输多个数据包,从而提高网络的带宽利用率。

总的来说,数据链路层的功能主要是控制和管理在网络中的数据帧的传输,以保证数据的安全性和正确性,提高网络的带宽利用率。


🎨觉得不错的话记得点赞收藏呀!!🎨

😀别忘了给我关注~~😀

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

的修工单管理系统好用吗?工单系统应该怎么选?

在当今的数字化时代,企业运营效率的高低往往取决于其内部管理工具的先进性和实用性。工单管理系统作为企业运营中的重要工具,其作用日益凸显。市场上存在许多工单管理系统,但“的修”以其独特的产品差异化和优势,在竞争中独树一帜…

东初版 java代码混淆 java加密class Java混淆实际方案

作为资深的开发专家,我很高兴与您分享有关Java混淆的实际方案和案例。Java混淆是一种重要的安全措施,用于保护您的代码免受恶意分析和反编译的威胁。在本文中,我将介绍Java混淆的基本原理、常用工具,以及一个简单的案例来演示如何…

c++从入门到放弃,小白踩坑记录1

c从入门到放弃,小白踩坑记录1 错误问题描述 没有与这些操作数匹配的运算符操作数类型为std::basic_ostream <char,std::char traits <char > > < < <unknown-type > 错误代码 #include<iostream> int main(void) {std::cout << "…

今日头条小程序源码系统 带完整搭建教程

随着小程序的发展&#xff0c;越来越多的企业和开发者开始关注小程序的开发。今天源码小编给大家分享一款今日头条小程序源码系统&#xff0c;并附带完整的搭建教程。 今日头条小程序源码系统是一款基于PHPMySQL开发组合开发的小程序框架&#xff0c;具有丰富的组件库和插件生…

ASO优化之如何制作Google Play的长短描述

应用的描述以及标题和图标是元数据中最关键的元素&#xff0c;可以影响用户是否决定下载我们的应用程序。简短描述的长度限制为80个字符&#xff0c;它提供了更多的有关应用背景信息的机会。 1、简短描述帮助用户快速了解我们应用。 确保内容丰富的同时&#xff0c;保持简洁和…

科研迷雾:读研以来,我发现的科研界“怪象”

1 引言 随着读论文和做实验的增多&#xff0c;我发现了sci的很多猫腻经不起细细推敲&#xff0c;原来科研并不如我想象的神圣&#xff0c;还不如工业界来的实在&#xff0c;因为在工业界做项目出现问题&#xff0c;客户是验收不了不给付钱的。所以论文只是一个玩具。 2 常见的…

ue5 右击.uproject generator vs project file 错误

出现如下错误 Unable to find valid 14.31.31103 C toolchain for VisualStudio2022 x64 就算你升级了你的 vs installer 也不好使 那是因为 在C:\Users\{YourUserName}\AppData\Roaming\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml 这个缓存配置文件中写死了 14…

armbian 安裝配置教程

1、安装贝锐蒲公英 下载安装包 cd /usr/local/share mkdir pgyvpn wget https://pgy.oray.com/softwares/58/download/1839/PgyVisitor_Raspberry_2.4.0.52291_arm64.deb安装 dpkg -i PgyVisitor_Raspberry_2.4.0.52291_arm64.deb 输入pgyvisitor login/pgyvisitor login -…

广告行业中那些趣事系列65:使用chatgpt编写基金定投程序

导读&#xff1a;本文是“数据拾光者”专栏的第六十五篇文章&#xff0c;这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇介绍了prompt生成器和使用chatgpt来编写一个基金定投程序&#xff0c;对于希望使用chatgpt提升工作效率&#xff0c;尤其是对投资基金感兴趣…

php得到两个数组之间的差集、并集、交集方法

1、差集&#xff1a; array_diff()函数用于返回在第一个数组中存在&#xff0c;但在其他数组中不存在的值。 $array1 [1, 2, 3, 4, 5]; $array2 [4, 5, 6, 7, 8]; $diff array_diff($array1, $array2); print_r($diff); 输出&#xff1a;Array ( [0] > 1 [1] > 2 [2]…

保护生产中 Node.js 应用程序安全的 15 项最佳实践

在后端开发方面&#xff0c;Node.js 是开发人员最喜欢的技术之一。它的受欢迎程度不断上升&#xff0c;现已成为在线攻击的主要目标之一。这就是为什么保护 Node.js 免受漏洞和威胁至关重要。 在本指南中&#xff0c;您将看到为生产设计安全 Node.js 应用程序架构的 15 种最佳…

打造美团外卖新体验,HarmonyOS SDK持续赋能开发者共赢鸿蒙生态

从今年8月起&#xff0c;所有升级到HarmonyOS 4的手机用户在美团外卖下单后&#xff0c;可通过屏幕上的一个“小窗口”&#xff0c;随时追踪到“出餐、取餐、送达”等订单状态。这个能让用户实时获悉订单进度的神奇“小窗口”&#xff0c;就是实况窗功能。 实况窗&#xff1a;简…

Intel oneAPI笔记--oneAPI简介、SYCL编程简介

oneAPI简介 Intel oneAPI是Intel提供的统一编程模型和软件开发框架。 它旨在简化可充分利用英特尔各种硬件架构&#xff08;包括 CPU、GPU 和 FPGA&#xff09;的应用程序的开发 oneAPI一个重要的特性是开放性&#xff0c;支持多种类型的架构和不同的硬件供应商&#xff0c;是…

QML 创建 Web 混合应用

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 随着互联网的快速发展,Web 应用在各个领域中变得越来越流行。为了满足用户对多样化功能的需求,我们经常需要将 Web 技术和原生应用相结合,来创建混合应用程序。 混合应用程序:是一种应用程序开发方法,它…

Microsoft 365 管理自动化

Microsoft 365 服务被大多数组织广泛使用&#xff0c;每天生成的数据量巨大。解决 Microsoft 365 中的问题可能非常困难&#xff0c;并且使用多个管理中心来保护组织变得复杂。本机控制台还缺少某些批量管理任务、全面的审计报告和基于角色的精细访问控制。 Microsoft 360 管理…

42 深度学习(六):调参|保存模型以及再次调用或训练

文章目录 卷积神经网络调参optimizer 优化器SGDmomentumAdaGradRMSPropadam学习率自适应经验之谈 激活函数SigmoidTanhReLULeaky-ReLU指数线性单元(ELU)Maxout&#xff08;基本不用&#xff09;经验之谈 初始化全部为 0判断初始化好不好批归一化&#xff08;BN&#xff09; 数据…

android 8.1 disable unsupported sensor

如果device不支持某种sensor,可以在android/frameworks/base/core/java/android/hardware/SystemSensorManager.java里将其disabled掉。以disable proximity sensor为例。 public SystemSensorManager(Context context, Looper mainLooper) {synchronized(sLock) {if (!sNativ…

一文带你速通Sentinel限流规则(流控)解读

目录 前置知识速补 基本介绍 流控模式 直接模式 关联模式 链路模式 流控效果 直接失败 Warm Up&#xff08;预热&#xff09; 排队等待 前置知识速补 QPS每秒查询率(Query Per Second)&#xff1a;每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多…

Python项目——识别指定物品

目录 1、百度EasyDL平台数据配置 1.1、训练图像上传 1.2、训练图像进行标注 1.3、训练模型 1.4、检验识别 1.5、申请发布 1.6、控制台权限配置 2、Python调用物体识别API 本项目是基于百度EasyDL平台制作的识别转盘内瓶子&#xff0c;且识别瓶子位置的一个项目。通过在…

【备忘录】SpringBoot+ dynamic-datasource配置自定义多数据源

一、 业务场景解释 由于公司业务需要开发设计一款文件读取导入工具&#xff0c;导入的配置和目标数据库并不一定在同一个数据库地址&#xff0c;故需要使用到自定义数据源&#xff0c;并且支持数据源切换 大致场景如下&#xff1a; 二、工具选择 鉴于市面上有很多工具&#…
最新文章