当前位置: 首页 > news >正文

计算机网络之网络层

一、概述

主要任务是实现网络互连,进而实现数据包在各网络之间的传输

1.1网络引入的目的

从7层结构上看,网络层下是数据链路层

从4层结构上看,网络层下面是网络接口层

至少我们看到的网络层下面是以太网

以太网解决了什么问题?

答:以太网解决了具体网络上主机间数据传输的问题;主机之间可以以物理地址,以广播的传输方式进行数据的交换传输

网络解决问题的基本方案

1)强制要求采用一种新的统一的网络连接方式(强制的统一成一种物理地址)

2)保留现有网络,重新定义一个虚拟的新的网络连接方式;求同存异

TCP/IP协议网络解决问题的方案

1.虚拟的IP互连协议

该协议为了实现网络互连,要求对有互连需求的网络,必须在将原有的网络数据转换成IP数据报格式,然后在虚拟IP网络上进行数据的传输

2.潜在的IP协议中要给出协议的转换功能(翻译功能)

3.同样要求在虚拟的IP协议中要给出数据传输状态的报告信息

上述三个内容最后都要转换为3个具体的协议,因此IP协议不是一个协议,是一族协议;只不过这一族中IP地位最强

1.2网络扩展后可采用的数据传输方式

 面向连接的虚电路服务

  • 可靠的通信由网络来保证
  • 必须建立网络层的连接----虚电路VC(Virtual Circuit)
  • 通信双方沿着已建立的虚电路发送分组
  • 目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)。
  • 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。
  • 通信结束后,需要释放之前所建立的虚电路

无连接的数据报服务

  • 可靠通信应当由用户主机来保证
  • 不需要建立网络层连接
  • 每个分组可走不同路径
  • 每个分组的首部必须携带目的主机的完整地址
  • 这种通信方式所传送的分组可能误码、丢失、重复和失序
  • 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉
  • 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。

1.3虚拟IP互连协议引入后数据的转发流程

1.直接交付

属于同一个虚拟逻辑网络和同一个现实物理网络上主机或主机接口之间数据的转发,只要解决目的地址IP地址对应的物理地址,就简单了,就利用物理地址直接在物理网络上进行传输了

属于同一个广播域(局域网)内的交付,可以利用ARP协议协议直接找到目的主机IP地址对应的物理地址,从而完成数据的交付

ARP怎么工作的,工作流程,解决的问题:IP->物理地址,数据链路层封装,

A,B是一家的,属于直接交付范围,怎么界定,通俗的老说就是姓氏相同 

2.间接交付

属于不同网络内的数据传输,因此无法直接找到目的地址主机的
MAC地址,只能将数据交付到网络出口路由器,因此,此时ARP协议并不是去寻找目的地址的MAC地址,而是寻找本网络出口路由器物理地址

A和C通信,隔着千山万水,借助第三方(邮筒),怎样把数据交付出去----中间路由器的接口和A属于同一个局域网,以广播的形式发给路由器,到网络层把真正的目的地提取出来了,在进行封装,交到C(MAC)

A-》C通信,一跳一跳的,路由器的作用就是传送数据(跳到网络层---数据真实的传输方向)换一个包装,向目的地传递,网络中传递数据,是一跳一跳的进行传输数据(传输数据的物理地址改变)大体方向不变,朝着目的地址走

ARP地址解析协议

在虚拟网络上的主机也必须有唯一的标识

虚拟统一网络的引入,为每一个在网络中的主机又提出了一个标识问题,在IP网络中就称为IP地址;也就是说在虚拟互连网络中每个接入主机必须有一个唯一的虚拟IP地址;这个是逻辑地址,与物理网络位置无关

虚拟网络是在现实物理网络上进行抽象总结抽象形成的,而现实网络上每台接入网络的主机都有一个固有的物理地址

两个地址之间的关系是什么,两个地址如何进行相互的转换

1)协议作用

应用进程看到的网络是统一的IP网络,因此它所描述的进程之间数据的传输是在统一一致的IP网络上进行传输;而这个统一的IP网络是在不同的现实物理网络上进行抽象的,所以虚拟网络间数据的传输必须要经过现实的物理地址才能完成真正的传输,就必须有个地址能完成两种地址之间的转换

封装成以太数据帧

 2)协议工作原理

A->B发送消息时,首先去查找自己的内存ARP表格,若找到对应的MAC地址则直接进行封装,转到介质上进行传输,否则,就封装一个数据链路层上的广播帧,去询问对应的IP的MAC地址

根据发送的性质:该协议只能解决同一个广播域(局域网)内,逻辑IP地址到物理MAC地址的转换问题

3)协议存在缺陷

协议本身工作是开放性的工作方式,缺乏验证机制 

1.4  IPv4地址

IPv4地址就是因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符

分类编址

 

  • A类地址网络号第1位固定为0,网络号后面部分不能全0,也不能全1,所以网络号范围是1~126
  • B类地址网络号前2位固定为10,网络号后面部分可以全取0或1,所以网络号范围是128.0~191.255
  • C类地址网络号前3位固定为110,网络后后面部分可以全取0或1,所以网络号范围是192.0.0~223.255.255
  • D类地址为多播地址,IP地址为224.0.0.0~239.255.255.255

 

 划分子网的IPv4地址

为什么需要划分子网?

比如一个单位有300台主机,此时需要申请一个B类网络地址,很容易得知,分配出去300个IP地址后,申请得到的B类网络还剩下很多IP地址。
当单位扩大规模,需要再添加两个子网的时,又要为这两个子网分别申请B类地址,这会花费一些不必要的支出,实际上子网1申请到的B类地址还有很多没用到,我们希望能够将这些剩余地址应用到其他子网中(节约地址)

如何实现子网划分?

32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号

  • 子网掩码使用连续的比特1来对应网络号和子网号(子网号来自原先的一部分主机号)
  • 子网掩码使用连续的比特0来对应主机号
  • 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算【即掩码是1的部分】就可得到IPv4地址所在子网的网络地址

 无分类编址的IPv4地址

为什么需要?

划分子网在一定程度上缓解了因特网发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁

 

路由聚合

如路由器A上连接同一网络的多台主机,路由器B与A相连。若A将所有主机的具体IP地址都报给B,则路由器B中会增加多项路由条目。可实际上B向A中任意一个主机转发数据的时都是走同一个端口,因此我们可以将这些网络的共同前缀提取出来成为新的网络号,同时将剩余主机号置0放入路由器B中

如:A连接了172.1.4.0/25和172.1.7.0/24,则提取公共前缀聚合后变为172.1.4.0/22

IPV4地址的应用规划

对于一个给定的IP地址,我们又进行了内部的划分的重新分配,这样分配就称为内部子网的划分

权利对主机地址部分进行重新的组合,来表示内部使用方式的分配

定长掩码划分方式

对于一个给定IP地址,我们有权对主机地址部分进行重新的组合,来表示内部使用方式的分配

变长掩码划分方式

1.5IP数据报发送转发过程 

1.IP网络虚拟互连网络的互连设备-----路由器

路由器的作用:

1)工作在网络层上,意味着它能识别网络层上的数据传输格式

2)路由器按网络层上数据传输地址,进行有目的的数据转发

3)路由器有针对性的数据转发依赖于路由器中的路由表

2.IP网络中路由器转发分组的算法

特定 默认 一般的网络路由

同一个网络之间的主机可以直接通信,不同网络之间的主机通信需要路由器中转 

源主机如何判断目的主机是否和自己在同一个网络中?

将自身的IP地址与子网掩码相与得到自身的网络号1,再将目的IP地址与自身子网掩码相与得到网络号2。若两个网络号相等,则说明处在同一个网络 

主机如何知道应该把IP数据报交给哪个路由器进行转发呢?

通过设置默认网关。所谓默认网关,即当路由表中查不到数据时会将数据发往的路由器端口IP地址 

 静态路由配置

静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表

  • 这种人工配置方式简单、开销小。但不能及时适应网络状态的变化。一般只在小规模网络中采用
  • 可能由于:①配置错误 ②聚合了不存在的网络 ③网络故障 而出现路由环路错误
  • 默认路由为:0.0.0.0/0 。其作用是当路由表不知道往哪里转发时,就会往默认路由指定的下一跳位置转发,根据网络号最长匹配原理,默认路由网络号长度为0,因此一定是最后一个被匹配的条目
  • 特定主机路由:具体主机IP/32。网络号前缀长度32保证了这是第一个被匹配的静态条目

 如何防止错误路由导致IP数据报永久兜圈?

  1. IP数据报首部设置生存时间TTL字段
    • IP数据报进入路由器后,TTL字段的值减1若TTL的值不等于0,则被路由器转发,否则被丢弃
  2. 对于聚合后或由于网络故障而不存在的路由条目设置黑洞路由
    • 所谓黑洞路由,即路由器应该丢弃的路由

1.6 路由选择协议

因特网所采用的的路由选择协议主要特点

  • 自适应:动态路由选择,能较好地适应网络状态的变化
  • 分布式:路由器之间交换路由信息
  • 分层次:将整个因特网划分为许多较小的自治系统AS

路由信息协议RIP

基于距离向量的路由选择协议(应用层是UDP)   RIP协议(路由信息协议) 

动态的形成路由器上路由表的内容,作为数据包转发的依据

距离:是指去某一个网络所经过路由器的个数(跳数);一个路由器直接相连的网络距离为1;距离为16表示网络不可达1

工作原理:

1)通过与相邻路由器进行信息交互,完成AS内部路由的形成

2)相邻路由器之间相互交换彼此的全部路由表信息

3)固定时间进行一次交换20s-30s

RIP算法的工作流程:

基于最短距离来形成路由

  • RIP包含以下三个要点
    • 仅和相邻路由器交换信息
    • 交换的是各自路由表的信息
    • 周期性交换信息

RIP存在的问题

存在"坏消息传播很慢"的问题,又称为路由环路(两个路由器相互学习错误路由,造成循环)或距离无穷计数问题,这是距离向量算法的一个固有问题,可以采取多种措施减少出现该问题的概率或减小该问题带来的危害

  • 限制最大路径距离为15(16表示不可达)
  • 当路由表发生变化时就立即发送更新报文(即"触发更新"),而不是周期性发送
  • 让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口反方向传送(即**“水平分割”“毒性反转”**)

开放最短路径优先OSPF

简单来说就是得到一个带权有向图,以当前路由器为起点,通过迪杰斯特拉算法得到到达某个点的最短路径

基于链路状态的路由选择协议(网络层 IP)  OSPF协议(开放最短路径优先算法形成的路由

OSPF协议:基于链路状态的路由协议、

链路状态:又只链路成本,就是数据在这条链路上传输所花费的时延,安全,费用等等信息所构成的

链路状态就是综合参数来形成路由协议

工作原理:(是网络层的协议)

(1)每个路由器将自己的状态数据摘要以洪范的方式向所有路由器进行转发

(2)所有路由器最终会获取到每个路由器的邻接关系和链路权重(即全网的网络拓扑结构)

(3)每个路由器以自己为根节点,采用迪杰斯特拉算法计算一个最小生成树,到达每个路由器

(4)路由稳定后,只有链路状态发生改变时,才将改变的路由状态发给所有路由器以便重新计算路由

边界网关协议BGP

尽力寻找一条能够到达目的网络且比较好的路由(不兜圈子),而并非找最佳路由

内部网关协议IGP(如路由信息协议RIP或最短路径优先OSPF)

  • 设法使分组在一个自治系统内尽可能有效地从源网络传输到目的网络
  • 无需考虑自治系统外部其他方面的策略

外部网关协议EGP(如边界网关协议BGP)

  • 在不同自治系统内,度量路由的"代价"(距离,宽带,费用等)可能不同。因此,对于自治系统之间的路由选择,使用"代价"作为度量来寻找最佳路由是不行的
    • 比如A系统路由选择度量是距离,B系统是带宽……那么A到系统E的路由怎样走最好呢?由于没有统一度量,所以不能直接得到最佳路由
  • 自治系统之间的路由选择必须考虑相关策略(政治、经济、安全等)
    • 如中国的数据报尽量要绕开美国的自治系统

 1.7IPv4数据报首部格式

  • 版本

    4比特,表示IP协议版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本为号为4(IPv4)

  • 首部长度

    4比特,表示IP数据报首部长度。该字段取值以4字节为单位

    最小十进制取值为5,表示IP数据报首部只有20字节4字节单位,所以取值5对应20字节】固定部分

    最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分

  • 总长度

    16比特,表示IP数据报的总长度【首部+数据载荷】,最大取值为十进制65535以字节为单位

  • 可选字段

    长度从140个字节不等。用来支持排错、测量及安全等措施

    可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用

  • 填充字段

    确保首部长度为4字节长度的整数倍,使用全0进行填充

1.8网际控制报文ICMP 

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP

  • 主机或路由器使用ICMP来发送差错报告报文和询问报文
  • ICMP报文被封装在IP数据报中发送

回答报文类型

终点不可达

当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络位置、目的主机未知等13种错误 

源点抑制

当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报发送速率放慢 

时间超过

当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间TTL字段值减1。若结果不为0,则将该IP数据报转发出去;若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文

当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文

 参数问题

当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文

改变路由(重定向)

路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)

如主机1的默认路由是R1,信息经过R1时,R1发现最佳路由不是自己,而是R2,所以通过ICMP告知主机1

1.9虚拟专用网VPN

利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。
虚拟专用网中各主机所分配的地址应该是本机构可自由分配的专用地址 

 1.10网络地址转换NAT

NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源【为了节省IPv4地址】

由于绝大多数的网络应用都是使用运输层协议TCPUDP来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。

这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP地址一起进行转换的技术叫作网络地址与端口号转换NAPT

 

相关文章:

计算机网络之网络层

一、概述 主要任务是实现网络互连,进而实现数据包在各网络之间的传输 1.1网络引入的目的 从7层结构上看,网络层下是数据链路层 从4层结构上看,网络层下面是网络接口层 至少我们看到的网络层下面是以太网 以太网解决了什么问题? 答…...

【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析模拟实现

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…...

浅谈电力设备智能无线温度检测系统

安科瑞 华楠 摘要:在长期工作中,由于设备基础变化、温湿度变化、严重超负荷运行、触点氧化等原因造成的电力设备压接不紧,触头接触部分发生改变。终导致接触电阻增大,造成巨大的风险隐患。本系统将通过无线测温的方式&#xff0c…...

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二) mp4媒体流数据 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchroniz…...

LeetCode [简单] 283. 移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 快慢指针&…...

深信服实验学习笔记——nmap常用命令

文章目录 1. 主机存活探测2. 常见端口扫描、服务版本探测、服务器版本识别3. 全端口&#xff08;TCP/UDP&#xff09;扫描4. 最详细的端口扫描5. 三种TCP扫描方式 1. 主机存活探测 nmap -sP <靶机IP>-sP代表 2. 常见端口扫描、服务版本探测、服务器版本识别 推荐加上-v参…...

面试:Kubernetes相关问题

文章目录 Kubernetes的工作流程可以分为以下几个步骤&#xff1a;简述Kubernetes中的Deployment、StatefulSet、DaemonSet的区别在Kubernetes中&#xff0c;如何进行存储管理在Kubernetes中&#xff0c;如何实现滚动升级和回滚在Kubernetes中&#xff0c;如何进行日志和监控的管…...

Go 本地搭建playground

搭建go playground 的步骤 1、安装docker 如果你使用的Ubuntu&#xff0c;docker的安装步骤可以参见这里&#xff0c;这是我之前写的在Ubuntu18.04下安装fabric&#xff0c;其中有docker的安装步骤&#xff0c;这里就不再赘述了。 CentOS下安装docker的&#xff0c;可以参见…...

Mybatis-plus常见标签

1.< 代表小于号&#xff08;<&#xff09;2.> 代表大于号&#xff08;>&#xff09;3.&le; 代表小于或等于符号&#xff08;≤&#xff09;4.&ge; 代表大于或等于符号&#xff08;≥&#xff09;5.< 代表<6.> 代表>7.ne; 代表不等于 <>8…...

一致性 Hash 算法 Hash 环发生偏移怎么解决

本篇是对文章《一文彻底读懂一致性哈希算法》的重写&#xff0c;图文并茂&#xff0c;篇幅较长&#xff0c;欢迎阅读完提供宝贵的建议&#xff0c;一起提升文章质量。如果感觉不错不要忘记点赞、关注、转发哦。原文链接&#xff1a; 《一文彻底读懂一致性Hash 算法》 通过阅读本…...

Javaweb之Vue组件库Element的详细解析

4 Vue组件库Element 4.1 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM&#xff0c;我们之前学习的vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架&#xff0c;主要用…...

IBM X3650M4安装ESXI6.5卡在/lsl_mr3.v00

环境&#xff1a;IBM X3650M4服务器双盘配置raid1&#xff0c;通过rufus制作启动U盘&#xff0c;安装VMware Vsphere 5.5系统 问题&#xff1a;卡在/lsi_mr3.v00界面无法往下运行&#xff08;两台配置一样的机器遇到同样的问题&#xff09; 解决方案&#xff1a; 直接在U盘根…...

【Python3】【力扣题】338. 比特位计数

【力扣题】题目描述&#xff1a; 题解&#xff1a;从0到n的整数&#xff0c;逐一统计二进制中1的个数&#xff0c;记录在一个新列表中。 【Python3】代码&#xff1a; 1、解题思路&#xff1a;Python函数。 知识点&#xff1a;bin(...)&#xff1a;转为二进制字符串&#xff…...

Lubuntu 23.10用户可使用LXQt 1.4桌面

导读在众多 Lubuntu 用户的要求下&#xff0c;Lubuntu 开发人员决定将 LXQt 1.4 桌面环境向后移植到最新的 Lubuntu 23.10 &#xff08;Mantic Minotaur&#xff09; 版本。 是的&#xff0c;您没看错&#xff0c;您现在可以使用官方的 Lubuntu Backports PPA&#xff08;个人软…...

语音识别入门——常用软件及python运用

工具以及使用到的库 ffmpegsoxaudacitypydubscipylibrosapyAudioAnalysisplotly 本文分为两个部分&#xff1a; P1&#xff1a;如何使用ffmpeg和sox处理音频文件 P2&#xff1a;如何编程处理音频文件并执行基本处理 P1 处理语音数据——命令行方式 格式转换 ffmpeg -i video…...

maven 将Jar包安装到本地仓库

window系统&#xff1a; 注意事项&#xff1a;在windows中&#xff0c;使用mvn指令将jar安装到本地仓库时&#xff0c;一定要将相关资源使用“"”包裹上&#xff0c;不然会报下面的错&#xff1a; mvn install:install-file "-DfileD:\BaiduNetdiskDownload\qianzixi…...

Django ORM查询之聚合函数、聚合查询(aggregate)、分组查询(annotate)

django 版本 3.2 python 3.6.8 一、聚合函数 常见的五个聚合函数&#xff1a; Avg (Average) : 平均值Max (Maximum) : 最大值Min (Minimum) : 最小值Sum (Summary) : 求和Count : 个数 导入语句&#xff1a; from django.db.models import Avg, Max, Min, Sum, Count, Q, …...

构建个性化预约服务:预约上门服务系统源码解读与实战

随着社会的发展&#xff0c;预约上门服务系统在满足用户需求、提升服务效率方面发挥着越来越重要的作用。在本文中&#xff0c;我们将深入研究预约上门服务系统的源码&#xff0c;通过实际的技术代码示例&#xff0c;揭示系统内部的关键机制&#xff0c;以及如何在实际项目中应…...

『RabbitMQ』入门指南(安装,配置,应用)

前言 RabbitMQ 是在 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09; 协议标准基础上完整的&#xff0c;可复用的企业消息系统。它遵循 Mozilla Public License 开源协议&#xff0c;采用 Erlang 实现的工业级的消息队列(MQ)服务器&#xff0c;建立在 Erlang …...

2311skia,01渲染架构

一,渲染层级 从渲染流程上分,Skia可分为如下三个层级: 1,指令层:SkPicture,SkDeferredCanvas->SkCanvas 这一层决定要绘图的操作,绘图操作的预变换矩阵,当前裁剪区域,在哪些层上绘图,层的生成与合并. 2,解析层:SkBitmapDevice->SkDraw->SkScan,SkDraw1Glyph::Proc 这…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...