计算机网络——数据链路层(介质访问控制)

计算机网络——数据链路层(介质访问控制)

  • 介质访问控制
    • 静态划分信道
    • 动态划分信道
      • ALOHA协议
      • 纯ALOHA(Pure ALOHA)
        • 原理
        • 特点
      • 分槽ALOHA(Slotted ALOHA)
        • 原理
        • 特点
      • CSMA协议
        • 工作流程
        • 特点
      • CSMA-CD 协议
        • 工作原理
        • 主要特征
      • CSMA-CA
        • 工作原理
        • 主要特征
      • CSMA-CD和CSMA-CA之间的区别
        • 应用环境
        • 冲突检测与处理
        • 控制帧与握手
        • 开销与效率
        • 适用场景
    • 轮询访问
      • 工作原理
      • 特点
      • 令牌传递协议
      • 工作原理
      • 特点

我们今天来继续介绍计算机网络数据链路层的知识。

介质访问控制

介质访问控制(Medium Access Control, MAC)是计算机网络中数据链路层的一个子层,负责管理和协调多个网络设备(如计算机、路由器、交换机、无线终端等)对共享传输介质(如以太网电缆、无线频谱等)的访问,以确保数据的有效、高效、公平传输。MAC 层的主要任务包括以下几个方面:

  1. 信道访问控制
  • 决定网络设备何时以及如何获得访问介质的权利,以发送数据帧。这通常涉及到冲突检测、避免和管理机制,如载波监听多路访问/冲突检测(Carrier Sense Multiple Access with Collision Detection, CSMA/CD)在以太网中的应用,或载波监听多路访问/碰撞避免(Carrier Sense Multiple Access with Collision Avoidance, CSMA/CA)在无线网络中的应用。
  • 实施各种介质访问控制协议,如轮询(Polling)、令牌传递(Token Passing)、预约(Reservation)等,以协调设备间的通信。
  1. 帧传输与接收
  • 封装上层数据(如网络层的IP数据包)为适合在物理层传输的数据帧,添加必要的帧头(如源和目标MAC地址、类型/长度字段、校验和等)和尾部(如帧校验序列,FCS)。
  • 对接收到的数据帧进行解析,验证其完整性(如通过校验和检查),提取出有效载荷(上层数据)并递交给上层协议处理。

总的来说,介质访问控制是网络通信中的关键环节,它确保了多个设备能够有效地共享同一传输介质,避免或解决数据传输冲突,保证数据的正确传输,并可能提供错误检测、流量控制、拥塞控制和安全性等功能,为上层协议提供可靠的传输服务。

介质访问控制,分为以下的几类:
在这里插入图片描述

静态划分信道

静态划分信道的方法,在之前的物理层有较为详细的解释了,如果有不清楚的可以点击这里:

https://blog.csdn.net/qq_67693066/article/details/136801008

动态划分信道

ALOHA协议

ALOHA协议是一种早期的无线网络通信协议,主要用于解决多个设备在同一共享信道上进行数据传输时可能出现的冲突问题。它由美国夏威夷大学的Norman Abramson教授及其团队在20世纪60年代开发,最初应用于名为“ALOHA”的无线分组网络项目,这是世界上最早的无线电计算机通信网络之一。ALOHA协议对后续的随机接入协议(如CSMA/CD、CSMA/CA等)产生了重要影响,并在多种无线通信系统中得到应用,特别是在早期的卫星通信和无线数据网络中。

ALOHA协议有两个主要版本:

纯ALOHA(Pure ALOHA)

原理

纯ALOHA协议是最基础的形式,其工作原理非常简单:

  1. 随机发送:每个网络节点在有数据需要发送时,无需任何协调或预约,可以直接尝试发送数据包到共享信道上。
  2. 冲突检测:如果两个或更多的节点同时发送数据包,它们将在信道上产生冲突,导致数据包损坏或无法被正确接收。这种冲突通过接收端反馈的错误检测(如CRC校验失败)或超时重传机制来发现。
  3. 重传策略:当发送节点检测到冲突(通过接收端的否定确认(NACK)或自身设定的超时阈值),它会等待一段随机时间后重新尝试发送数据包。这个随机时间是为了减少再次冲突的概率,因为不同节点的重传时间点分散开,降低了在同一时刻重复发送相同数据包的可能性。

在这里插入图片描述

特点
  • 简单易实现:纯ALOHA不需要复杂的信道协调机制,节点操作简单,硬件实现成本较低。
  • 冲突概率较高:由于节点发送完全随机且无冲突检测机制,信道利用率相对较低,尤其是在高负载条件下,冲突概率显著增加,导致网络效率下降。

分槽ALOHA(Slotted ALOHA)

原理

分槽ALOHA是对纯ALOHA的改进版,引入了时间同步和时间划分的概念:

  1. 时间同步:所有节点都按照预定义的时间间隔(称为时隙)进行同步,每个时隙足够传输一个完整的数据包。
  2. 定时发送:节点只能在时隙的起始时刻发送数据包,不能在时隙中间插入数据。这意味着所有节点的发送操作都限制在时隙边界,减少了冲突的可能性。
  3. 冲突检测与重传:如同纯ALOHA,如果两个或更多节点在同一个时隙发送数据,会产生冲突。冲突的检测与处理方式与纯ALOHA相同,即通过接收端的错误反馈或超时重传来识别冲突,并在随机延迟后重新尝试发送。

在这里插入图片描述

特点
  • 降低冲突:由于发送操作限于时隙起始,分槽ALOHA相比纯ALOHA显著减少了冲突发生的概率,提高了信道利用率。
  • 需要时间同步:分槽ALOHA增加了对节点时间同步的要求,增加了系统复杂性,但换取了更高的网络效率。

总的来说,ALOHA协议以其简单的设计和易于实现的特点,为无线网络通信奠定了基础。尽管其信道利用率在高负载条件下受到限制,但通过后续的发展和改进(如CSMA/CA等),ALOHA的基本思想和原理依然在现代无线网络中发挥着重要作用,特别是在那些对成本敏感、对复杂性要求较低的场合。
z

CSMA协议

CSMA(Carrier Sense Multiple Access,载波侦听多路访问)是一种介质访问控制(Medium Access Control, MAC)协议,用于协调多个网络设备(如计算机、路由器、交换机、无线终端等)在共享通信介质(如以太网电缆、无线频谱等)上发送数据,以避免数据传输冲突。CSMA协议的基本原理是“先听后说”,即在发送数据前先检测信道是否空闲,如果信道空闲则发送数据,否则等待一段时间后再次尝试。

以下是CSMA协议的主要工作流程和特点:

工作流程
  1. 载波侦听:设备在准备发送数据前,首先监听(侦听)信道状态,判断信道是否处于空闲状态。空闲状态意味着当前没有其他设备正在发送数据。

  2. 发送决策

    • 非坚持CSMA(Nonpersistent CSMA):如果信道空闲,设备立即发送数据;如果信道忙,设备放弃发送,等待一个随机的时间间隔后再重新开始载波侦听。
    • 1-坚持CSMA(1-Persistent CSMA):如果信道空闲,设备立即发送数据;如果信道忙,设备持续监听信道,直到信道变为空闲后立即发送数据。
    • p-坚持CSMA(p-Persistent CSMA):如果信道空闲,设备以概率p立即发送数据,以概率(1-p)延迟一个随机时间后再次侦听;如果信道忙,设备持续监听,直到信道变为空闲后执行上述决策过程。
特点
  • 简单易实现:CSMA协议的逻辑相对简单,不需要复杂的中央调度或令牌传递机制,便于硬件实现和网络部署。
  • 自适应性:CSMA协议能够根据网络负载动态调整发送行为,如通过随机退避算法降低冲突概率,提高信道利用率。
  • 适用于轻到中度负载网络:在低到中等网络负载下,CSMA协议能够有效避免冲突,提供较好的网络性能。然而,随着网络负载增加,冲突概率增大,信道利用率可能会显著下降。

在这里插入图片描述

CSMA-CD 协议

CSMA-CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测)是一种应用于有线局域网(如以太网)的介质访问控制(Medium Access Control, MAC)协议,主要用于解决多个设备共享同一物理传输介质(如同轴电缆、双绞线)时的数据传输冲突问题。CSMA-CD协议的工作原理和主要特征如下:

工作原理
  1. 载波侦听:在发送数据前,节点先监听(侦听)信道是否空闲。如果信道处于空闲状态(没有其他节点正在发送数据),节点才开始发送数据。
  2. 发送数据:一旦节点确定信道空闲,便开始发送数据帧。在发送过程中,节点继续监听信道,以便及时发现可能发生的冲突。
  3. 冲突检测:如果在数据发送过程中,节点检测到信道上有其他节点同时发送数据(表现为信号强度突然升高),则认为发生了冲突。冲突检测通常通过比较接收到的信号与发送信号的幅度差来实现。
  4. 冲突处理
  • 停止发送:一旦检测到冲突,节点立即停止发送当前数据帧,以减少无效的信号冲突。
  • 发送阻塞信号:为了使其他冲突节点也能迅速检测到冲突并停止发送,节点发送一个短暂的阻塞信号(jamming signal),该信号的能量足以使所有冲突节点都能检测到冲突。
  • 退避算法:所有参与冲突的节点按照一定规则(如二进制指数退避算法)等待一个随机时间后,重新尝试发送数据。退避时间的设定有助于避免冲突节点在同一时刻再次尝试发送,从而降低二次冲突的概率。
  1. 重传与超时:节点在等待随机退避时间后,重新开始载波侦听,如果信道空闲则再次发送数据。对于每个数据帧,节点设置一个最大重传次数(如16次)。若经过最大重传次数仍未成功发送,节点丢弃该帧,并向上层协议报告传输失败。此外,节点还设置一个超时计时器,防止因信道故障等原因导致数据帧无限期等待。
主要特征
  • 自适应性:CSMA-CD协议允许节点根据信道的实际使用情况动态调整其发送行为,通过载波侦听、冲突检测和退避机制,减少了冲突的发生,提高了信道利用率。
  • 适用于轻到中度负载网络:在低到中等网络负载下,CSMA-CD协议能有效避免冲突,提供良好的网络性能。随着网络负载增加,冲突概率增大,信道利用率可能下降,但通过退避算法可以一定程度上缓解这个问题。
  • 有线环境适用:CSMA-CD协议特别适用于有线网络,尤其是以太网。在有线环境下,由于电磁波传播速度极快(接近光速),冲突几乎瞬间就能被所有冲突节点检测到,使得冲突检测和管理更为有效。
  • 面向广播型网络:CSMA-CD协议适用于总线型或树形结构的广播网络,所有节点共享同一物理介质,数据帧可以被网络中的所有节点接收。

总结而言,CSMA-CD协议通过载波侦听、冲突检测、冲突处理(包括停止发送、发送阻塞信号、退避算法)等机制,为有线局域网中的多个节点提供了一种有效的共享信道、避免和管理冲突的方法。该协议在以太网等有线网络中广泛应用,对现代局域网技术的发展起到了关键作用。

CSMA-CA

CSMA-CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免)是一种应用于无线局域网(如Wi-Fi,遵循IEEE 802.11标准)的介质访问控制(Medium Access Control, MAC)协议,用于解决多个设备共享同一无线信道时的数据传输冲突问题。由于无线环境的特性(如信号衰减、多径效应、隐藏终端等问题),直接检测冲突(如CSMA-CD中的冲突检测)既困难又代价高昂。因此,CSMA-CA侧重于通过多种手段预测并避免冲突的发生,而不是检测和处理冲突。其工作原理和主要特征如下:

工作原理
  1. 载波侦听:在发送数据前,节点先监听(侦听)信道是否空闲。如果信道处于空闲状态(没有其他节点正在发送数据),节点才开始发送数据。
  2. 能量检测:除了传统的载波侦听外,节点还通过检测信道上的总能量水平来判断是否存在潜在的冲突。即使无法检测到清晰的信号,高能量水平也可能表明有其他节点正在进行传输。
  3. 发送前的交互:为减少冲突,CSMA-CA引入了额外的控制帧来协调发送。例如,使用RTS(Request To Send)/CTS(Clear To Send)握手机制:
  • 发送节点在发送数据帧前,先发送一个RTS帧,请求信道使用权。
  • 接收节点收到RTS帧后,如果信道空闲且愿意接收数据,回复一个CTS帧,授予发送节点信道使用权。
  • 其他监听到RTS或CTS的节点在此期间会暂时停止发送,避免与数据传输冲突。
  1. 帧间间隔:为防止连续帧之间发生冲突,CSMA-CA规定了帧间间隔(Interframe Space, IFS)。IFS包括短帧间间隔(Short Interframe Space, SIFS)、分布式协调功能间隔(Distributed Coordination Function Interframe Space, DIFS)和扩展帧间间隔(Extended Interframe Space, EIFS)。不同的IFS用于不同类型的帧之间,确保节点有足够的时间接收和处理控制帧,以及避免不必要的冲突。
  2. 退避算法:如果节点在发送数据前检测到信道忙或发生冲突,将按照退避算法等待一个随机时间后再次尝试发送。常用的退避算法包括二进制指数退避算法,随着重试次数增加,等待时间呈指数增长,以降低连续冲突的概率。
主要特征
  • 冲突避免为主:CSMA-CA侧重于通过预测和避免冲突,而不是检测和处理冲突。通过能量检测、RTS/CTS握手、IFS等机制,尽量减少冲突的发生。
  • 适应无线环境特性:考虑到无线环境的特殊性(如信号衰减、多径效应、隐藏终端等),CSMA-CA采用了更为复杂和灵活的冲突避免策略,以应对无线网络特有的挑战。
  • 较高的开销:相较于CSMA-CD,CSMA-CA引入了额外的控制帧(如RTS、CTS)和等待时间(如IFS),增加了网络的开销。但在高密度、高干扰的无线环境中,这些开销有助于提高网络的稳定性和吞吐量。
  • 面向点对点和广播通信:CSMA-CA不仅支持单播(点对点)通信,也支持广播和多播通信。在广播和多播场景中,通常不使用RTS/CTS握手,而是采用其他机制(如帧间间隔、帧聚合等)来减少冲突。

总结来说,CSMA-CA协议通过载波侦听、能量检测、发送前的交互(如RTS/CTS握手)、帧间间隔和退避算法等机制,为无线局域网中的多个节点提供了一种有效的共享无线信道、预测并避免冲突的方法。该协议在Wi-Fi等无线网络中广泛应用,对于保障无线网络的稳定性和效率至关重要。

CSMA-CD和CSMA-CA之间的区别

CSMA-CD(载波侦听多路访问/冲突检测)与CSMA-CA(载波侦听多路访问/冲突避免)是两种应用于不同网络环境的介质访问控制(MAC)协议,虽然它们都基于载波侦听的基本原则,但因应有线和无线网络特性的差异,在具体实现和工作方式上存在显著区别。以下是CSMA-CD与CSMA-CA之间的主要区别:

应用环境
  • CSMA-CD:专为有线局域网设计,如以太网(Ethernet),适用于总线型或环形拓扑结构,其中所有节点通过同一条共享物理介质(如双绞线、同轴电缆)进行通信。
  • CSMA-CA:专为无线局域网设计,如Wi-Fi(遵循IEEE 802.11标准),适用于星型、adhoc或mesh拓扑结构,其中节点通过无线电信号在共享的无线信道上进行通信。
冲突检测与处理
  • CSMA-CD:在发送数据的同时持续监听信道,当检测到冲突(即信号强度突然升高)时,立即停止发送,并发送一个短小的阻塞信号(jamming signal)通知其他冲突节点。随后,冲突节点按照退避算法等待随机时间后重新尝试发送。
  • CSMA-CA:由于无线环境中直接检测冲突难度较大且成本高,CSMA-CA侧重于通过预测和避免冲突。它采用能量检测、RTS/CTS握手机制、帧间间隔等手段预测冲突,并在发送前等待信道空闲。如果发生冲突,节点通过退避算法等待随机时间后重新尝试发送,但不发送阻塞信号。
控制帧与握手
  • CSMA-CD:不使用专门的控制帧或握手过程来协调发送。节点仅依据载波侦听结果决定是否发送数据。
  • CSMA-CA:使用RTS(Request To Send)和CTS(Clear To Send)等控制帧进行发送前的握手。发送节点发送RTS请求信道使用权,接收节点回应CTS确认信道可用。其他节点监听到RTS或CTS时会暂时停止发送,以避免与数据传输冲突。
开销与效率
  • CSMA-CD:由于不涉及额外的控制帧和握手过程,CSMA-CD的开销相对较小。在低到中等网络负载下,CSMA-CD能提供较高的信道利用率和传输效率。
  • CSMA-CA:由于引入了RTS/CTS握手、能量检测等机制,CSMA-CA的开销相对较大。但在高密度、高干扰的无线环境中,这些开销有助于降低冲突率,提高网络的稳定性和整体吞吐量。
适用场景
  • CSMA-CD:适用于有线局域网,尤其是对成本敏感、对延迟要求不高的场景,如办公室、家庭、学校等环境的有线网络连接。
  • CSMA-CA:适用于无线局域网,特别是在移动性强、节点分布不固定、环境干扰复杂的场景,如公共场所的Wi-Fi覆盖、智能家居、移动设备之间的无线通信等。

总结来说,CSMA-CD和CSMA-CA虽然都基于载波侦听原理,但分别针对有线和无线网络的特性进行了优化。CSMA-CD依赖直接的冲突检测和快速恢复,适用于结构相对简单的有线网络;而CSMA-CA侧重于冲突预测与避免,通过额外的控制机制适应无线环境的复杂性和不确定性。两者在开销、效率、适用场景等方面各有优势,分别在各自的网络环境中发挥着重要作用。

轮询访问

轮询访问(Polling)是一种网络通信中的介质访问控制(Medium Access Control, MAC)机制,通过中央控制器(如主站、基站、交换机等)按照预设顺序或规则逐一询问网络中的各个节点(如从站、终端设备、工作站等),询问其是否有数据需要发送。若有数据待发送,中央控制器给予发送权限,节点在获得权限后发送数据;若无数据待发送,则跳过该节点,继续询问下一个节点。轮询访问主要用于主从式网络结构或集中式控制的网络环境中,如令牌环网、点对点通信、远程监控系统等。其工作原理和特点如下:

工作原理

  1. 中央控制器主导:轮询访问中,网络通信由中央控制器全权掌控。中央控制器按照预定顺序或规则依次询问每个节点,节点只有在被询问时才有机会发送数据。
  2. 节点被动响应:网络中的节点在未被询问时处于等待状态,无法主动发起数据传输。当被中央控制器询问时,节点响应是否有数据待发送,如有则在获得发送权限后发送数据。
  3. 通信顺序与规则
  • 固定轮询:中央控制器按照预设的固定顺序询问节点,如按照节点编号从小到大或从大到小。
  • 优先级轮询:根据节点的优先级(如紧急程度、服务质量要求等)动态调整轮询顺序,优先询问高优先级节点。
  • 需求驱动轮询:中央控制器仅询问已声明有数据待发送的节点,减少无数据节点的询问次数。
  1. 数据传输过程:节点在获得发送权限后,按照规定格式发送数据至中央控制器。中央控制器接收数据,进行处理(如错误检测、协议解析等),然后可能向节点发送确认消息或响应数据。
  2. 轮询周期:一轮完整的轮询过程称为一个轮询周期。轮询周期的长短直接影响网络的响应时间和吞吐量。较短的轮询周期可以提高响应速度,但可能增加中央控制器的负担和网络开销;较长的轮询周期则可能导致响应延迟,但可能降低开销并允许节点有更长的时间准备数据。

特点

  • 集中控制:轮询访问的控制权高度集中在中央控制器,易于实现网络管理与监控,有利于保证数据传输的有序性和可靠性。
  • 低冲突:由于节点只有在被询问时才能发送数据,且一次只有一个节点发送,大大降低了数据传输冲突的概率。
  • 响应时间可预测:轮询访问的响应时间与轮询周期和节点在轮询列表中的位置有关,对于实时性要求较高的应用,可以通过合理设置轮询周期和顺序来保证响应时间。
  • 效率受网络规模影响:随着网络规模增大,轮询周期可能显著延长,导致响应时间增加、吞吐量下降。对于大规模网络,轮询访问的效率可能不如其他分布式访问控制机制(如CSMA、TDMA等)。
  • 适用于低数据流量、低延迟要求的场景:轮询访问适用于数据流量较小、实时性要求较高、节点间通信不频繁的网络环境,如工业控制系统、远程监控系统、点对点通信等。

轮询访问是一种由中央控制器主导、节点被动响应的介质访问控制机制,适用于需要集中控制、低冲突、响应时间可预测的网络环境。其优点在于易于管理、低冲突、响应时间可预测,但随着网络规模增大,效率可能会下降,更适合应用于数据流量较小、实时性要求较高的场景。

令牌传递协议

令牌传递协议(Token Passing Protocol)是一种网络通信中的介质访问控制(Medium Access Control, MAC)机制,主要用于解决多节点共享同一通信信道时如何公平、有序地进行数据传输的问题。在令牌传递网络中,一个特殊的控制标志,即“令牌”(Token),在节点间按照预定义的顺序循环传递。只有持有令牌的节点才被授权发送数据,当数据发送完成后,节点将令牌传递给下一个节点,允许其发送数据。令牌传递协议的工作原理和特点如下:

工作原理

  1. 令牌初始化与传递:网络启动时,令牌被初始化并赋予第一个节点。节点在持有令牌期间,可以发送数据。数据发送完毕后,节点将令牌传递给下一个节点。令牌在节点间按照预定义的顺序(如逻辑环、树状结构等)循环传递。
  2. 数据传输:当节点接收到令牌时,检查自身是否有数据需要发送。如果有数据,节点在持有令牌期间发送数据;如果没有数据或数据发送完毕,节点立即将令牌传递给下一个节点。在令牌传递过程中,其他节点均处于等待状态,不允许发送数据。
  3. 令牌丢失与恢复:若在令牌传递过程中发生令牌丢失(如节点故障、网络中断等),网络需要有一种机制(如超时机制、令牌请求帧等)来检测并恢复令牌传递。恢复过程可能包括重新初始化令牌、重新选举令牌持有者等。
  4. 令牌类型
  • 固定令牌传递:令牌在网络中按照固定顺序循环传递,每个节点在固定的时间间隔内有机会获得令牌。
  • 优先级令牌传递:令牌在网络中按照节点的优先级顺序传递,高优先级节点可以更快地获得令牌。在某些实现中,高优先级节点甚至可以打断当前令牌持有者的传输,立即获取令牌。
  1. 令牌环网络:令牌传递协议常用于令牌环网络(Token Ring Network),这是一种采用物理环形拓扑的局域网。在这种网络中,令牌沿着物理环路从一个节点传递到下一个节点,只有持有令牌的节点才能发送数据。

特点

  • 有序访问:令牌传递协议确保了节点访问信道的有序性,每个节点只有在持有令牌时才能发送数据,避免了数据传输冲突。
  • 公平性:所有节点都有平等的机会获得令牌并发送数据,网络资源(信道使用权)在节点间均匀分配,实现了公平性。
  • 响应时间可预测:由于节点发送数据的时机取决于令牌到达的时间,响应时间相对可预测,适用于对实时性要求较高的应用。
  • 网络效率:在轻负载情况下,令牌传递协议的效率较高,因为没有冲突检测和退避机制的开销。但在重负载或大量节点等待发送数据的情况下,令牌传递的等待时间可能较长,降低网络效率。
  • 网络恢复能力:令牌传递协议通常包含令牌丢失检测与恢复机制,能够在网络异常时恢复令牌传递,保证网络的连贯性和稳定性。

在这里插入图片描述

总结来说,令牌传递协议是一种基于令牌在节点间有序传递来控制信道访问的介质访问控制机制,具有有序、公平、响应时间可预测等优点,适用于对实时性要求较高、节点间通信有序且冲突较少的网络环境,如工业控制网络、令牌环网络等。然而,其网络效率在重负载或大量节点等待发送数据的情况下可能下降,且需要额外的机制来处理令牌丢失问题。

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

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

相关文章

JVM虚拟机(十二)ParallelGC、CMS、G1垃圾收集器的 GC 日志解析

目录 一、如何开启 GC 日志?二、GC 日志分析2.1 PSPO 日志分析2.2 ParNewCMS 日志分析2.3 G1 日志分析 三、GC 发生的原因3.1 Allocation Failure:新生代空间不足,触发 Minor GC3.2 Metadata GC Threshold:元数据(方法…

【数据结构|C语言版】算法效率和复杂度分析

前言1. 算法效率2. 大O的渐进表示法3. 时间复杂度3.1 时间复杂度概念3.2 时间复杂度计算举例 4. 空间复杂度4.1 空间复杂度的概念4.2 空间复杂度计算举例 5. 常见复杂度对比结语 ↓ 个人主页:C_GUIQU 个人专栏:【数据结构(C语言版&#xff09…

Kafka源码分析(四) - Server端-请求处理框架

系列文章目录 Kafka源码分析-目录 一. 总体结构 先给一张概览图: 服务端请求处理过程涉及到两个模块:kafka.network和kafka.server。 1.1 kafka.network 该包是kafka底层模块,提供了服务端NIO通信能力基础。 有4个核心类:…

【Django】django.core.exceptions.AppRegistryNotReady: Apps aren‘t loaded yet.

其中django后台manage.py入口程序报错,检索很多问题解决方案,这里记录下个人问题原因 1.django启动异常问题详情 django.core.exceptions.AppRegistryNotReady: Apps aren’t loaded yet. 2.问题原因 Python第三方包安装版本不一致或缺少依赖包&…

Flink窗口机制

1.窗口的概念 时间是为窗口服务的。窗口是什么?为什么会有窗口呢? (1)Flink要处理的数据,一般是从Kafka过来的流式数据,如果只是单纯地统计流的数据量,是没办法统计的。 (2&#xff…

C语言程序设计:简易版的printf函数实现

简易版的printf函数实现 功能说明 (1)使用putchar函数、va可变参完成printf函数基本功能的实现; (2)函数说明: 实现对下列数据类型的输出,并返回成功输出打印的字符个数: 整数&…

在CSDN创作了6个月,我收获了什么?文末送书~

作者主页:阿玥的小东东主页! 正在学习:python和C/C 期待大家的关注哦 目录 一次很好的机会,让我开始了CSDN之旅 首先来看看我的几位领路人 创作动力 1W粉丝 在CSDN我收获了什么? 很高的展现量 认证创作者身份 社…

【Linux】系统安全及应用

目录 一、账号安全基本措施 1.系统账号清理 2.密码安全控制 3.历史命令安全管理 4.限制su切换用户 1)将信任的用户加入到wheel组中 2)修改su的PAM认证配置文件 5.ssh远程登录输入三次密码错误则锁定用户 二、Linux中的PAM安全认证 1.su命令的…

Redis入门到通关之数据结构解析-动态字符串SDS

文章目录 Redis数据结构-动态字符串动态扩容举例二进制安全SDS优点与C语言中的字符串的区别 Redis数据结构-动态字符串 我们都知道 Redis 中保存的Key是字符串,value 往往是字符串或者字符串的集合。可见字符串是 Redis 中最常用的一种数据结构。 不过 Redis 没有…

Android Studio超级详细讲解下载、安装配置教程(建议收藏)

博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战,深受全网粉丝喜爱与支持✌有…

贪吃蛇游戏实现(VS编译环境)

贪吃蛇游戏 🥕个人主页:开敲🍉 🔥所属专栏:C语言🍓 🌼文章目录🌼 0. 前言 1. 游戏背景 2. 实现后游戏画面展示 3. 技术要求 4. Win32 API介绍 4.1 Win32 API 4.2 控制台程序 4.…

Java之类和对象

一面向对象的初步认知 1.什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想…

嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载: 链接:百度网盘 请输入提取码 提取码:4e33 3.1 ESP-IDF 简介 ESP-IDF(Espressif IoT Development Framework)是乐鑫(Espressif Systems)为 ESP 系列…

大型网站系统架构演化实例_2.使用缓存改善网站性能

1.使用缓存改善网站性能 网站访问的特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力&#xf…

【Python】自定义修改pip下载模块默认的安装路径

因为电脑下载了Anaconda提供的默认Python 3.9 以及后期下载的python3.10所以在Pychram进行项目开发时,发现一些库怎么导入都导入不了,手动install也是失败,后期在cmd里面发现python以及pip配置有点儿混乱,导致执行命令时&#xff…

碳循环、人类、遥感之间的关联

1. 碳与碳循环 碳是自然界中很常见的一种元素,它以多种形式广泛存在于大气和地壳之中。碳单质很早就被人认识和利用,碳的一系列化合物——有机物是生命的根本。 1.1 自然界中的碳 地球上最大的两个碳库是岩石圈和化石燃料,含碳量约占…

在RISC-V64架构的CV1811C开发板上应用perf工具进行多线程程序性能分析及火焰图调试

CV1811C环境编译 SDK目录结构 . ├── build // 编译目录,存放编译脚本以及各board差异化配置 ├── buildroot-2021.05 // buildroot开源工具 ├── freertos // freertos系统 ├── fsbl // fsbl启动固件,prebuilt形式存在…

Android14 - WindowManagerService之客户端Activity布局

Android14 - WindowManagerService之客户端Activity布局 一、主要角色 WMS作为一个服务端,有多种客户端与其交互的场景。我们以常见的Activity为例: Activity:在ActivityThread构建一个Activity后,会调用其attach方法,…

[docker] volume 补充 环境变量 参数

[docker] volume 补充 & 环境变量 & 参数 这里补充一下 volume 剩下的内容,以及添加参数(ARG) 和 环境变量 ENV 的内容 read only volumes ❯ docker run-p 3000:80--rm--name feedback-app-v feedback:/app/feedback-v "$(pwd):/app"-v /app/…

【C++初阶】vector使用特性 vector模拟实现

1.vector的介绍及其使用 1.1 vector的介绍 vector文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组&#…