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

 

思维导图:

 3.3.1 局域网的数据链路层

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

#### 简介
- 广播信道支持一对多通信。
- 局域网技术在20世纪70年代末兴起,现在在计算机网络中占有主导地位。

#### 3.3.1 局域网的数据链路层
**局域网的特点:**
1. 网络由一个单位所有,地理范围和站点数量有限。
2. 起初局域网在数据传输速度、延迟和误码率上优于广域网。
3. 光纤技术的广泛使用使广域网也有高数据传输速度和低误码率。

**局域网的主要优势:**
1. 支持广播功能,便于资源共享。
2. 系统可扩展性高,设备位置灵活。
3. 高可靠性、可用性和生存性。

**局域网的分类:**
- 图3-13展示了局域网的三种主要拓扑:星形网、环形网和总线网。

**局域网的传输媒体:**
- 双绞线是最常用的,可支持从10 Mbit/s到10 Gbit/s的传输。
- 高数据传输率可能需要使用光纤。

**局域网技术涵盖范围:**
- 局域网技术跨越了数据链路层和物理层。

**共享信道的考虑点:**
- 如何有效共享通信资源。

**共享信道的技术方法:**
1. 静态划分信道(如频分复用、时分复用等)。
2. 动态媒体接入控制(多点接入):
   - 随机接入:随机发送信息,可能导致碰撞。
   - 受控接入:受到控制,如令牌环和轮询。

**重点:**
- 以太网已发展到每秒吉比特,因此“传统以太网”通常指的是10 Mbit/s速率的以太网。

---

### 笔记概括:
- 广播信道支持一对多通信,局域网正是这种通信方式的代表。
- 局域网在20世纪70年代末发展起来,目前在计算机网络中非常重要。
- 局域网的主要优点包括:广播功能、系统的可扩展性和高可靠性。
- 局域网可分为星形网、环形网和总线网等不同的拓扑结构。
- 双绞线和光纤是局域网常用的传输媒体。
- 共享信道技术包括静态划分信道和动态媒体接入控制。
- 以太网的数据传输速度已发展到每秒吉比特。

 1.以太网的标准

**笔记:以太网的两个标准**

1. **以太网的起源与发展**
    - 1975年:由施乐(Xerox)公司的Palo Alto研究中心(PARC)研制,基带总线局域网,数据率为2.94 Mbit/s。
    - 1976年:Metcalfe和Boggs发表以太网里程碑论文。
    - 1980年:DEC、英特尔、施乐公司提出了10 Mbit/s以太网规约的第一个版本DIX V1。
    - 1982年:修订为DIX Ethernet V2,成为第一个局域网产品的规约。

2. **IEEE 802委员会与802.3标准**
    - 1983年:IEEE 802.3工作组制定第一个IEEE以太网标准,数据率为10 Mbit/s。
    - DIX Ethernet V2与IEEE 802.3的区别非常小,经常被认为是同一个。
    - 注:IEEE 802委员会专门制定局域网和城域网标准。

3. **IEEE 802.3与“以太网”**
    - 许多人简称802.3局域网为“以太网”,但严格来说,以太网指的是DIX Ethernet V2标准。

4. **数据链路层的子层划分**
    - 数据链路层拆分为两个子层:逻辑链路控制(LLC)和媒体接入控制(MAC)。
    - MAC负责与传输媒体有关的内容,LLC则与传输媒体无关。
    - 图3-14展示了局域网对LLC子层的透明性。

5. **20世纪90年代的局域网市场**
    - 以太网在市场上取得了垄断地位,几乎成为局域网的代名词。
    - TCP/IP体系经常使用的局域网只有DIX Ethernet V2,不是IEEE 802.3。
    - 逻辑链路控制子层LLC(IEEE 802.2标准)的作用已经消失。

总结:本节介绍了以太网的起源、发展历程、以及它与IEEE 802.3的关系。描述了数据链路层的划分,并讲述了以太网在局域网市场的垄断地位和其与TCP/IP的关联。

 2.适配器的作用

**2. 适配器的作用笔记**

---

**定义与背景:**
- 适配器,也称通信适配器,早期称作网络接口卡(NIC)或简称为“网卡”。
- 起初是插入主机箱内的网络接口板,或在笔记本电脑中的PCMCIA卡。
- 现在大多数计算机主板已经集成了适配器,因此称呼更为“适配器”。

**功能与构成:**
- 适配器配备处理器和存储器(包含RAM和ROM)。
- 实现数据串行传输与并行传输之间的转换:适配器与局域网间通过电缆或双绞线进行串行传输,与计算机通过I/O总线进行并行传输。
- 数据缓存:由于网络数据率与计算机总线数据率不同,适配器需要具备数据缓存功能。
- 需安装设备驱动程序于操作系统中,以管理适配器并指示数据传输与存储。
- 能够实现以太网协议。

**操作与特点:**
- 适配器可以独立于计算机CPU进行发送与接收帧的任务。
- 有差错的帧将被直接丢弃;正确的帧会通过中断通知计算机。
- 适配器收到IP数据报后,会将其组装成帧并发送到局域网。

**结构:**
- 适配器包含数据链路层与物理层的功能。
- 当前芯片集成度高,难以按功能层次严格区分。

**地址:**
- 硬件地址位于适配器的ROM中。
- IP地址(软件地址)存储在计算机内。

**图解理解:**
- 图3-15显示了计算机通过适配器与局域网的通信过程。
  - 并行通信:计算机与适配器之间。
  - 串行通信:适配器与局域网之间。

---

3.3.2 CSMA/CD协议 

**笔记: 3.3.2 CSMA/CD协议**

1. **以太网背景**
    - 初始以太网:连接多个计算机到一个总线上,基于“无源电缆线最可靠”的理念。
    - 总线特性:广播通信方式。但为实现一对一通信,每台计算机的适配器具有唯一地址。
    
2. **以太网通信特性**
    - **无连接工作方式**:直接发送数据,不需建立连接。
    - **不可靠交付**:帧错误则直接丢弃,由高层决定是否重传。

3. **总线占用与冲突**
    - 总线资源在一时间内只能被一台计算机使用。
    - 以太网用简单随机接入和协议来减少冲突。
    
4. **CSMA/CD协议解读**
    - 全称:载波监听多点接入/碰撞检测 (Carrier Sense Multiple Access with Collision Detection)。
    - 功能:如果检测到通信路径上没有其他计算机在通信,即可发送数据。如果检测到冲突,则停止并等待随机时间后重新尝试。
    - 比喻:如同一个无主持人的讨论会。

5. **曼彻斯特编码**
    - 背景:二进制基带数字信号在连续的1或0出现时,无法提取位同步信号。
    - 曼彻斯特编码:每个码元分为两个间隔,保证在每个码元中间有一次电压转换。
    - 优势:方便接收端提取位同步信号。
    - 劣势:频带宽度是原始信号的两倍。
  
总结:CSMA/CD协议是以太网用来管理数据访问和冲突检测的关键机制,确保了网络上的顺畅通信。配合曼彻斯特编码,使得数据传输更为稳定。

 要点:

### CSMA/CD 协议要点笔记

1. **定义**:
   - CSMA/CD 协议是为总线型网络设计的,多点接入说明有多台计算机连接在一条总线上。

2. **关键组件**:
   - 载波监听 (Carrier Sense): 
     - 检测总线上是否有其他计算机正在发送。
     - 发送前和发送中都要持续监听信道。
     - 监听的目的是获取发送权或及时发现碰撞。
   - 碰撞检测 (Collision Detection): 
     - 边发送数据边检测信号电压的变化。
     - 若信号电压变化幅度超过阈值,表明有碰撞。
     - 两台机器同时发送会导致数据失真,所以要立即停止发送。

3. **碰撞发生原因**:
   - 虽然发送前进行了载波监听,但由于电磁波在总线上有一定的传播时延,可能会出现多台机器几乎同时开始发送数据的情况,导致碰撞。

4. **争用期 (Contention Period)**:
   - 从发送数据到知道是否碰撞的时间称为争用期,也叫做碰撞窗口。
   - 对于以太网,这个时间最长为总线的端到端往返时间(2r)。

5. **碰撞后的处理**:
   - 使用截断二进制指数退避算法决定重传时间。
   - 基本退避时间是争用期2r,为51.2μs。
   - 从离散整数集合中随机取数来决定重传的时间。
   - 重传次数超过限定值则丢弃数据帧并报告。

6. **其他要点**:
   - 使用CSMA/CD协议的网络不能进行全双工通信,只能进行半双工通信。
   - 以太网的一个特点是发送的不确定性,不能保证数据帧在某段时间内一定能发送出去。

**以太网的CSMA/CD协议笔记**

1. **退避算法**:
   - 当发生碰撞时,适配器等待一个随机的时间再重新发送。
   - k为退避的次数,初始值设为k=1,随机数r从整数{0,1}中选择。若再次发生碰撞,k=2,r从{0,1,2,3}选择,以此类推。
   - 连续多次的冲突表示可能有多站在争用信道,退避算法使得随着重传次数,平均推迟时间增加,这减少了碰撞概率,提高了系统稳定性。

2. **适配器的特点**:
   - 适配器每发送新帧时执行一次CSMA/CD算法。
   - 适配器对以前的碰撞没有记忆功能。

3. **帧的长度与冲突**:
   - 最短帧长为64字节(512 bit)。
   - 若发送数据小于此值,则需加填充字节。
   - 对于10 Mbit/s的以太网,发送512 bit需时51.2μs,也即所说的争用期。
   - 如果在争用期内没有冲突,后续数据发送不会冲突。反之,冲突会发生在前64字节内。

4. **端到端的时延**:
   - 信号在以太网上传播1km需要5 μs。
   - 以太网最大的端到端时延必须小于争用期的一半,即25.6μs,这等于最大端到端长度约为5km。
   
5. **强化碰撞**:
   - 当发送数据的站检测到冲突,除了停止发送外,还要继续发送32或48比特的人为干扰信号,以便让所有用户知道发生了碰撞。
   - 对于10 Mbit/s的以太网,发送32或48比特只需3.2或4.8μs。

6. **CSMA/CD协议步骤**:
   1. **准备发送**:适配器从网络层获得分组,加上首部和尾部,组成以太网帧,并放入缓存。
   2. **检测信道**:若信道忙则等待,若空闲并且保持96比特时间的空闲,则发送帧。
   3. **发送与监听**:
      - 发送成功:若在争用期内未检测到冲突,此帧可以成功发送。
      - 发送失败:若在争用期内检测到冲突,停止发送并发送人为干扰信号,然后执行指数退避算法。

7. **以太网的其他规定**:
   - 每发送完一帧,需要暂时保留已发送的帧。如在争用期内检测到冲突,需要在推迟一段时间后再重传这个帧。

总结:此笔记概括了以太网中的CSMA/CD协议和相关的碰撞检测、退避算法等关键概念和过程。

**3.3.3 使用集线器的星形拓扑**

- **历史与发展**
  - 以太网从使用粗同轴电缆发展到细同轴电缆,再到双绞线。
  - 采用了星形拓扑,其核心是高可靠性设备:集线器 (Hub)。
  - 星形以太网10BASE-T的标准802.3i在1990年由IEEE制定。
    - “10”代表10Mbit/s的数据率
    - BASE表示基带信号
    - T代表双绞线。
  - 双绞线以太网比大量机械接头的无源电缆更可靠。
  - 粗缆和细缆以太网已经消失。

- **关键组件**
  - 站点、集线器、RJ-45插头、两对双绞线。
  - 10BASE-T以太网通信距离限制在100m。
  - 双绞线绞合度精确,减少失真,减少电磁波辐射和干扰。
  - 多对双绞线电缆使用复杂的绞合方法。

- **集线器特点**
  1. 表面上是星形网络,但逻辑上仍是总线网络,使用CSMA/CD协议。
  2. 一个集线器有8至16个接口,每个接口通过RJ-45插头与一台计算机的适配器相连。
  3. 集线器工作在物理层,仅转发比特。若有碰撞,所有接口接收的帧都会出错。
  4. 采用专门芯片实现串音回波抵消,每个比特在转发前都要进行再生整形并重新定时。

- **集线器的可靠性与特性**
  - 堆叠式集线器由4~8个集线器堆叠使用。
  - 若有适配器故障,集线器可以断开与其的连接,保证网络正常运行。
  - 机箱式智能集线器模块化,支持热插拔。
  - 集线器上的指示灯显示网络故障情况,便于管理。
  - 注意: 集线器的接口(或称端口)与运输层的软件端口不同。

- **其他标准**
  - IEEE 802.3还有一个标准:10BASE-F系列,其中F代表光纤,主要用于集线器间的远程连接。

此结构整理了原文的主要内容,使其更为简洁和系统化。帮助读者更容易捕捉核心信息。

 3.3.4 以太网的信道利用率

笔记:

**1. 信道利用率简介**
- 在一个10 Mbit/s以太网中,如果有10个站同时工作,每个站的平均数据发送速率并不简单地等于总数据率的1/10。
- 发生碰撞的情况会导致信道资源的浪费,从而降低总的信道利用率,使其无法达到100%。

**2. 碰撞和信道利用率**
- 图3-21显示了以太网的信道占用情况。发生碰撞会导致信道资源的浪费。
- 争用期是连续发生的,直到一个站成功发送帧。
- 发送帧需要的时间T是帧长(bit)除以发送速率(10 Mbit/s)。

**3. 信道的占用时间**
- 成功发送一个帧需要的信道占用时间是T₀+r,其中r是以太网单程端到端的传播时延。
- 发送站在传输媒体的一端,传输到另一端所需的时间是t。
- 要允许其他站发送数据,以太网的媒体必须完全进入空闲状态,这需要经过时间T₀+t。

**4. 提高信道利用率的方法**
- 要提高以太网的信道利用率,必须减小与Tσ之比。
- 以太网定义了参数a,是以太网单程端到端时延r与帧的发送时间T之比:a=ξ。
- 参数a越小,表示能够更快速地检测到碰撞并停止发送,从而降低信道资源的浪费。
- 当数据率固定,以太网的连线长度受到限制,同时以太网的帧长也不能太短,否则会增大a的值。

**5. 理想化的情况**
- 在理想情况下,以太网的站点发送数据不会发生碰撞。
- 发送帧占用线路的时间是T₀+r,而帧本身的发送时间是Tj。
- 计算极限信道利用率Smx时,我们看到只有当参数a远小于1时,才能获得较高的极限信道利用率。

**6. 实际应用中的信道利用率**
- 在实际应用中,当以太网的利用率达到30%时,网络就已经处于重载状态。
- 高的网络利用率意味着有很多的网络容量被碰撞消耗。

对不起,是我的疏忽。以下是关于你提供内容中的公式的笔记:

**公式及其含义:**

**1. 参数a的定义**

**2. 极限信道利用率的计算**

这个公式表明了信道利用率与参数\( a \)之间的关系:只有当参数\( a \)远小于1时,以太网才能得到较高的信道利用率。

**3. 关于参数a的重要性**

这些公式有助于我们理解以太网的信道利用率,并为网络设计提供了有用的指导。

总结:以太网的信道利用率受到多个因素的影响,包括信道的碰撞、信道占用时间、以及信道的参数a。为了提高信道利用率,需要减小参数a的值,并避免网络的过度利用。

 3.3.5 以太网的MAC层

#### 1. MAC层的硬件地址

**定义**:在局域网中,硬件地址被称为物理地址或MAC地址(这是因为此地址在MAC帧中使用)。

**标识与地址**:标识系统在所有计算机系统设计中是核心问题。而地址是识别系统的关键标识符。常引用的定义是:“名字指明我们要找的资源,地址告诉我们资源在哪里,路由告诉我们如何到达那里。”尽管这种定义简单,但有时可能不够准确。

**局域网地址的特性**:
- MAC地址是固定在适配器的ROM中的地址。
- 如果更换适配器,则MAC地址会改变。
- 虽然计算机的地理位置可能改变,但只要适配器不变,MAC地址就保持不变。

这些特点表明,MAC地址不能指示主机的物理位置。MAC地址更像是每个站点的“名字”或标识符。虽然这种48位二进制的地址与我们熟知的计算机名字截然不同,但通常还是被称为“地址”。

**多适配器的主机**:如果一个主机或路由器有多个适配器,那么它会有多个MAC地址。

**地址标准的问题**:在决定局域网地址的标准时,最初考虑的是用16位来表示地址。但考虑到局域网的快速发展和全球通信需求,IEEE802标准推荐使用6字节(48位)或2字节(16位)的地址。目前,局域网适配器实际上都使用6字节的MAC地址。

**全球地址的管理**:IEEE的注册管理机构RA负责分配地址的前3个字节。而地址的后3个字节由制造商自行指派。

**其他细节**:
- IEEE规定的地址字段的第一个字节的最低位是IG位。根据这个位,地址可以是单个站的地址或多播地址。
- 局域网的6字节地址是一种平面地址,适配器根据完整的48位地址决定是否接收或丢弃MAC帧。

**注**:一些术语和词汇可能在不同的文献或标准中有稍微不同的解释或使用方式。例如,关于“标识”和“标志”的使用与翻译的说明。

### 总结

MAC地址是局域网中每个设备的唯一标识符,固定在设备的ROM中。这个地址有全球的唯一性,并被用于正确地传递数据到目标设备。尽管名称上称之为“地址”,但它并不能指示设备的物理位置。

**网络地址位标准与适配器的特性**

---

**1. 地址位标准**
  
- 在计算机网络中,地址位的标注有两种主流方法:
  - **最低位在最左边**:按照这种记法,每一个字节的最低位被放在最左边,被视为“第一位”。IEEE 802.3标准采用了这种记法。
  - **最高位在最左边**:这种记法中,每一个字节的最高位被放在最左边,被视为“第一位”。
  
  在发送数据的时候,这两种记法都是按照整个字节的顺序进行发送,但差异在于发送单个字节内部的位的顺序。

---

**2. G/L位与地址管理**

- IEEE为了应对部分组织或个人不想购买OUI的情况,设立了G/L位(Globa/Local)来指示地址是全球性的还是局部性的。
  - G/L位为0:代表全球管理,保证全球唯一地址。这些OUI是由IEEE分配的。
  - G/L位为1:代表局部管理,允许用户自行分配地址。
  
---

**3. MAC地址的容量**

- 全球性管理的地址可以使用46位来表示,这提供了2^46个可能的地址,超过70万亿,足够满足大量设备的需求。到2020年,MAC地址的耗尽并不是一个主要担忧。

---

**4. 路由器与适配器的关系**

- 当路由器连接到局域网,适配器的硬件地址标志着路由器的某个接口。一个路由器连接多个网络需要多个适配器和硬件地址。

---

**5. 适配器的过滤功能**

- 适配器对网络中的MAC帧进行过滤,检查其目标地址是否与自己相符。
  - **单播帧**:地址与适配器地址相同。
  - **广播帧**:发送到整个局域网的所有站点。
  - **多播帧**:发送给局域网上的部分站点。

---

**6. 混杂模式**

- 混杂模式允许适配器捕获所有在网络中传输的帧,而不仅仅是目标地址与自己匹配的帧。这常被网络管理员用来分析网络流量,但也可能被黑客利用来“窃听”网络通信。
  
---

**结论**:在网络通信中,地址位的标准和适配器的工作模式都是关键的要素。正确地理解它们有助于更好地管理和维护网络环境。

**2. 以太网V2 MAC帧格式**

以太网中的MAC帧是传输数据的基本单位。对于以太网V2格式,MAC帧结构如下:

**2.1 结构组成**

1. **目的地址** (6字节): 用于标示帧的目标接收者。
2. **源地址** (6字节): 标示帧的发送者。
3. **类型** (2字节): 标志上层使用的协议。例如,0x0800表示IP数据报。
4. **数据** (46~1500字节): 携带上层协议的信息。
5. **FCS** (4字节): 帧检验序列,用于错误检查。

此外,传输时真实传送的还包括8字节的前导码,包括7字节的前同步码和1字节的帧开始定界符。

**2.2 特点与功能**

- **曼彻斯特编码**:以太网采用曼彻斯特编码,使得每一个码元中都有一个电压转换,帮助接收端确定帧的结束位置。
  
- **填充字段**:当数据字段小于46字节时,以太网会添加填充字段,确保MAC帧长度不小于64字节。

- **位同步**:前同步码帮助接收端的适配器调整其时钟频率与发送端同步,实现位同步。

- **无需帧结束定界符**:以太网不需要帧结束定界符,各帧之间有一定间隙。

**2.3 无效MAC帧**

无效的MAC帧情况如下:

1. 帧长度不是整数个字节。
2. FCS检查出错。
3. 数据字段长度不在46~1500字节之间。

对于这些无效帧,以太网简单地丢弃并不重传。

**2.4 与IEEE 802.3的比较**

IEEE 802.3和以太网V2的MAC帧在两个方面有所不同:

1. 第三个字段是“长度/类型”。只有当该字段值小于0x0600时才表示“长度”,否则表示“类型”。
2. 当“长度/类型”字段值小于0x0600时,数据字段中包含LLC帧。

现在,市场上主要是以太网V2的MAC帧,但经常也被称为IEEE 802.3标准的MAC帧。

**结论**:了解以太网V2的MAC帧格式,以及其与IEEE 802.3的不同,对于网络工程师来说是非常重要的。这为以太网的日常操作和维护提供了基础知识。

 

 

 

 

 

 

 

 

 

 

 总结:

**重点**:

1. **MAC帧格式**:理解以太网V2的MAC帧格式是核心内容,尤其是各个字段的功能和意义。
   
2. **曼彻斯特编码**:为了在没有时钟信号的信道上进行同步,曼彻斯特编码提供了一个每个码元中间都有一个电压转换的特性,帮助接收端确定位的边界。
   
3. **前同步码与帧开始定界符**:理解这两个部分的作用,尤其是它们在传输前如何帮助实现位同步。

4. **有效与无效的MAC帧**:知道何时MAC帧被视为无效,以及如何处理这些帧。

5. **与IEEE 802.3的区别**:了解两者的异同,特别是在“长度/类型”字段上。

**难点**:

1. **曼彻斯特编码**:它的工作原理和为何它可以实现位同步可能是一些学生难以理解的地方。

2. **数据字段的填充与剥离**:当数据字段少于46字节时,需要填充,并在接收端去除填充。如何进行这一过程,以及如何确定数据长度和填充长度是关键。

**易错点**:

1. **MAC帧的长度计算**:很容易误解数据字段的长度与整个MAC帧的长度之间的关系。

2. **“长度/类型”字段的误读**:在IEEE 802.3中,这个字段可以代表长度或类型,取决于它的值。

**技巧**:

1. **图解法**:对于MAC帧的结构和工作原理,画出结构图并标注各字段可以更好地理解其内部结构。

2. **比较法**:通过对比以太网V2的MAC帧与IEEE 802.3的区别,可以更清晰地了解两者的特点。

3. **实际操作**:如果可能的话,实际设置和检查MAC帧,查看其结构,进行编码和解码可以加深理解。

总之,理解以太网MAC帧的内部结构和工作原理,能够明白数据在局域网中如何传输和处理。为此,要反复阅读相关内容,进行实际操作,并多做相关的习题和实验。

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

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

相关文章

9-AJAX-上-原理详解

一、定义 1、什么是Ajax Ajax:即异步 JavaScript 和XML。Ajax是一种用于创建快速动态网页的技术。通过在后台与进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的…

FairGuard游戏加固无缝兼容 Android 14 正式版

北京时间10月4日,谷歌公司在“Made by Google 2023”硬件发布会上公开了新版安卓操作系统—— Android 14 正式版。 为保证产品的加固效果并提供更优质的服务,FairGuard游戏加固团队第一时间组织人员进行了相关测试。 据测试,FairGuard游戏…

架构师选择题--计算机网络

架构师选择题--计算机网络 22年考题21年考题20年考题19年真题2017考题 22年考题 d http:80 https:httpssl :443 b b pop3是邮件接收协议:110 SMTP是邮件发送协议:25 http:80 A 网络隔离:防火墙(逻辑)&…

聊聊JDK19特性之虚拟线程 | 京东云技术团队

1.前言 在读《深入理解JVM虚拟机》这本书前两章的时候整理了JDK从1.0到最新版本发展史,其中记录了JDK这么多年来演进过程中的一些趣闻及引人注目的一些特性,在调研JDK19新增特性的时候了解到了虚拟线程这个概念,于是对虚拟线程进行学习整理内…

APK大小缩小65%,内存减少70%:如何优化Android App

APK大小缩小65%,内存减少70%:如何优化Android App 我们一直在努力为我们的Android应用程序构建MVP产品。在开发MVP产品后,我们发现需要进行应用程序优化以提高性能。经过分析,我们发现了以下可以改进的应用…

提取log文件中的数据,画图

要提取的log格式如下: 代码如下: import reimport matplotlib.pyplot as plt import numpy as npimport argparse from os import path from re import searchclass DataExtractor(object): DataExtrator class def __init__(self, infile, keyword, out…

Docker基本操作【一篇学会项目部署】

文章目录 一、Docker简介二、Docker安装三、配置镜像加速四、Docker部署五、Docker基础操作1. 常见命令2. 操作演示3. 数据卷①nginx的html目录挂载②分析匿名数据卷③MySQL的本地目录挂载 4. 自定义镜像①Dockerfile②构建镜像 5. 网络①常见命令②自定义网络 六、DockerCompo…

乐优商城(二)搭建后台前端

1. 搭建后台管理前端 1.1 导入已有资源 找到已经准备好的 leyou-manage-web 压缩文件,这就是后台管理的前端项目 解压 leyou-manage-web 文件到项目中,注意与 leyou 文件同级 1.2 安装依赖 在 IDEA 中打开 leyou-manage-web 工程 2.打开 Teminal&…

2023年中国医学影像信息系统市场规模、竞争格局及行业趋势分析[图]

医学影像信息系统简称PACS,与临床信息系统、放射学信息系统、医院信息系统、实验室信息系统同属医院信息系统。医学影像信息系统是处理各种医学影像信息的采集、存储、报告、输出、管理、查询的计算机应用程序。主要包括:预约管理、数据接收、影像处理、…

如何开始学习量子机器学习

一、关于量子计算 这是我关于量子机器学习(QML)的第二篇文章,这是第一篇,关于为什么你应该开始学习QML。 开始研究量子机器学习很困难,因为我不知道我需要了解多少量子力学和计算知识。我在101年上大学时上了量子力学2…

腾讯云短信验证登录

提前准备工作 1.已 注册腾讯云 账号,并完成 企业实名认证。 2.已 购买 短信套餐包。 3.准备短信签名归属方资质证明文件 4.已获取短信应用的 SDKAppID。 主要获取这几个参数 secretId(秘钥id) secretKey(秘钥key) SmsSdkAppId(appId) TemplateId(短信模板i…

Android:自定义原生TimePickerDialog样式

效果图&#xff1a; 目标效果图&#xff1a; 原生效果&#xff1a; 实现&#xff1a; 首先是Dialog样式&#xff1a; <style name"TimePickerDialogStyle" parent"style/Theme.AppCompat.DayNight.Dialog.Alert"><item name"android:time…

Nosql redis高可用和持久化

Nosql redis高可用和持久化 1、redis高可用2、redis持久化2.1redis持久化2.2Redis 持久化方法2.3RDB 持久化2.3.1RDB持久化工作原理2.3.2触发条件2.3.3其他自动触发机制2.3.4执行流程2.3.5启动时加载 2.4AOF 持久化2.4.1AOF持久化原理2.4.2开启AOF2.4.3执行流程2.4.4文件重写的…

css怎么实现文字描边

有时&#xff0c;我们会遇到UI稿有文字描边的效果&#xff0c;比如下图的效果。 一、给需要描边的文字加一个id选择器 例如&#xff1a; 二、css写法&#xff1a; number,{//这个是实现文字描边的关键&#xff0c;也就是‘空心文字’&#xff0c;这个是定义文字字符的描边的宽…

对比纯软开与嵌入式硬件开发谁更好呢?

对比纯软开与嵌入式硬件开发谁更好呢&#xff1f; 你的纠结和犹豫是理解的&#xff0c;职业选择确实是一个重要的决策。我明白你在嵌入式和软件开发之间犹豫不决的原因。让我给你提供一些建议&#xff0c;帮助你做出更明智的决定。最近很多小伙伴找我&#xff0c;说想要一些嵌入…

1600*A. Maze(DFS)

Problem - 377A - Codeforces 解析&#xff1a; 对于正向思考比较复杂的题目&#xff0c;我们可以反向思考。 由于最后剩余的 “ . ” 必须相连&#xff0c;所以我们将所有 “ . ” 全部换成 “ X ”&#xff0c;然后从其中DFS一个联通的“ X ”反向换成 “ . ”即可。 #incl…

配资炒股优质平台排名:十大排名和评估!

随着互联网的发展&#xff0c;配资炒股平台已经成为了越来越多投资者的选择&#xff0c;但是市场上的配资炒股平台各不相同&#xff0c;投资者如何选择一家优质的平台呢&#xff1f;这时候&#xff0c;配资炒股优质平台排名就显得尤为重要。 配资炒股优质平台排名的作用&#…

HTML5开发实例-3D全景(ThreeJs全景Demo) 详解(图)

前言 在现在市面上很多全景H5的环境下,要实现全景的方式有很多,可以用css3直接构建也可以用基于threeJs的库来实现,还有很多别的制作全景的软件使用 本教学适用于未开发过3D全景的工程狮 如果觉得内容太无聊可以直接跳到最后 下载代码 理论 整个3D全景所用的相关理论就…

将 Ordinals 与比特币智能合约集成:第 3 部分

基于 Ordinals 的 BSV-20 同质化代币 之前&#xff0c;我们展示了如何将比特币智能合约与 Ordinals 集成&#xff0c;Ordinals 可以被视为链上的 NFT。 在本文中&#xff0c;我们将展示如何将它们与同质化代币&#xff08;即 BSV-20 代币&#xff09;集成。 我们仍然以拍卖为例…

dubbo3+zookeeper/nacos+dubbo-admin

工程结构&#xff1a; 版本信息&#xff1a; jdk版本&#xff1a;1.8 springboot-parent版本&#xff1a;2.6.6springboot版本&#xff1a;2.6.6 dubbo-spring-boot-starter版本&#xff1a;3.0.7dubbo版本&#xff1a;3.0.7 dubbo-registry-zookeeper版本&#xff1a;3.0.7c…