『 Linux 』网络层 - IP协议 (二)
文章目录
- 路由
- NAT技术
- 分片与组装
- 分片的组装
- IP协议分片的短板
路由
通常情况路由器具备了一个非常重要的功能,即构建子网;
同时路由器需要实现跨网络通信,说明路由器必须存在两个或以上的IP地址,通常在路由器中可以看到几个接口,分别是一个WAN
口和几个LAN
口;
WAN
口IP被称为公网IP,LAN
口IP被称为私网IP;
其中WAN
口对应的IP地址是作为上一层子网,如运营商子网中的其中一个子网IP,而通常一个LAN
口则代表一个子网,对于LAN
口IP而言,该IP将作为该子网中的第一台设备IP;
或者在一些情况下,多个LAN
口可以共享同一个子网;
通常路由器在自己作为子网的第一台设备时对应的LAN
口IP将作为该子网的网关IP,即子网内所有设备访问其他网络时的第一道"门";
而路由的过程实际上就是以一跳一跳(Hop by Hop)的方式,在复杂的网络结构中找出一条通往终点的路线;
所谓"一跳"就是数据链路层中的一个区间,具体在以太网中指源MAC地址到目的MAC地址之间的帧传输区间;
在网络中的主机中,无论是电脑还是路由器设备,都有路由功能,同时也都内置了一个路由表;
其中路由表的字段如下:
-
Destination
表示网络或主机的目标地址;
路由器查看数据包的目的IP地址并与路由表中的
Destination
字段进行匹配以决定数据包应当发送到哪里;这个字段可以是特定的网络地址或主机地址,或是以标示默认路由的
0.0.0.0
(代表任何地址)或是default
; -
Geteway
表示下一跳(Next hop)的IP地址;
在某些配置中,当目标网络是直接连接的,网关字段可能显示
geteway
或是IP0.0.0.0
,代表数据包直接通过制定接口发出而不需要通过中间网关;这是路由器发送数据包到下一个网络所应通过的设备或接口的IP地址;
如果目标是直接连接的,那么它可以是路由器自己的接口IP地址;
-
Genmask
(子网掩码)子网掩码定义了
Destination
字段中网络的范围,确定了哪些IP地址属于同一个网络;例如
255.255.255.0
表示该网络中有256个IP地址(/24
),所有以相同前三个八位组开始的IP地址属于这个网络; -
Flags
(标志)U
表示接口是活跃的;G
表示数据包需要通过另一个路由器(网关)来到达目的地;H
表示条目是针对特定主机而不是网络的;D
表示通过路由协议动态学习到的条目;M
表示被修改的路由条目,特别是在重新计算路由表时;!
表示拒绝路由到特定地址或网络; -
Metric
(度量)表示到达目标网络的成本或举例,可以基于跳数(hop count),宽带,延迟等因素;
较低的度量值通常表示更优的路径;
在选择到某个目的地的路由时,路由器会选择度量值最低的路径;
-
Ref
(引用)这个字段通常表示当前活跃连接或进程数目引用了这条路由;
很少被直接显示,但如果有,它可以视为一种诊断工具;
-
Use
(使用)指示通过这条路由路径传输的数据包数量;
这是一个统计数据,表示使用该路由的频率;
-
Iface
(接口)指示这条路由使用的出口接口,即数据包将通过哪个物理或逻辑接口发送出去;
通常是一个网络接口名,如
eth0
,wlan0
,Interface 1
等;
在Windows中可以在命令行中通过route print
命令查看对应的路由表;
在Linux中可以使用route
命令来查看路由表;
当一个数据包到来时,主机会对数据包进行解包并查看IP报头中的目的IP地址,并通过目的IP地址与Genmask
子网掩码进行&
按位与操作,通过按位与后的结果与该行条目中的Destination
字段进行匹配,如果结果与该字段不匹配则继续计算下一行条目,若是匹配则将该报文重新封装并向Destination
所指向的IP进行下一跳;
如果路由表中所有的Destination
字段都不匹配则通过0.0.0.0
或是default
以默认网关进行下一跳;
通过这种跳一跳的方式将一个IP数据包由源IP发送到目标IP;
NAT技术
网络地址转换(Network Address Translation,NAT)是一种用于在网络中重写源IP地址或目的IP地址的技术,通常在网络边缘设备如路由器上进行实现;
最初设计用于缓解IPv4地址耗尽的问题;
在使用NAT技术时IP报文报头中的源IP地址与目的IP地址将会在到达一个路由器时进行重写;
以该图为例;
当路由器同时充当为NAT设备时将会对IP报文的报头内的源IP和目的IP进行更改;
通常分为两种情况:
- 报文的发送
- 报文的回程
路由器启用NAT功能时,对应的NAT功能都将生成一个属于自己的表,即NAT表或是连接表;
通常报文的发送时报文每经过一个路由器上的NAT功能时路由器将会将IP报文中的源IP修改为该路由器的公网IP,并记录源私网IP和新公网IP和端口的映射关系;
NAT表的记录主要是方便对端在进行报文返程的时候可以通过NAT表中的映射关系使得报文能够正确返回源发送端;
当报文进行返程时进入第一个路由器的NAT功能时将查询NAT表中的映射关系并将目的IP修改为改路由器对应的私网IP,最终将报文交回原发送端;
分片与组装
在网络协议栈中,在网络层中的数据,如IP数据包并不是直接通过网络层发出,而是一样的贯穿协议栈将数据包交给下一层协议,这一层即为数据链路层;
而通常情况下,数据链路层所发生的数据帧不能太大,如果数据帧太大则可能会加重数据在网络中的存活时间从而与网络中的其他数据产生碰撞;
当网络健康状态差的时候,数据链路层将进行一些碰撞避免相关的策略从而减少数据碰撞的发生;
由此看出,数据帧只要过大都会直接或者间接影响到网络的健康状态;
所以为了避免这些问题的发生,通常由网络层交付给数据链路层的数据报都不能太大;
当网络层IP协议将要把一个较大的IP报文交付给下层时,IP需要对该报文进行分片操作;
- “谁分片,谁组装”
分片操作由IP协议提供,对应的组装操作也将是由IP协议提供,即网络层;
在IP报文的内容中存在几个对应的字段用于分片与组装操作;
-
16
位标识这个标识通常用来标示不同的IP报文;
通常情况下每个IP数据包的
16
位标识是不同的,但相同IP数据包的几个不同分片其对应的该字段是相同的;同一个IP数据包的不同分片在抵达对端后需要对IP数据包的分片进行组装;
但组装的前提是将几个分片进行聚拢,通过相同的该字段可以使得同一个IP数据包的不同分片能够聚在一起从而进行下一步的组装;
-
3
位标志这个标志包含以下几个子字段:
-
第一位
第一位通常是未使用的,暂未赋予该字段的意义;
-
第二位
DF
(Don’t Fragment) - 不分片标志;如果这个位被设置为
1
则路由器不能分片这个数据包,如果数据包的大小超过了某个链路的MTU
(最大传输单元),这个数据包将会被丢弃,并返回一个ICMP错误消息给发送方; -
第三位
MF
(More Fragments) - 更多分片标志;当一个IP数据包被分片后,除了最后一个分片外,所有分片的这个位置都会被设置为
1
,表示还有其他分片,以及该分片并不是最后一个分片;最后一个分片的该字段将被设为
0
,表示这是最后一个片段;
-
-
13
位片偏移这个字段是
13
位长度的,表示当前分片在原始数据包中的相对位置;具体来说,它表示该分片相对于原始数据包开始处的字节偏移,以
8byte
位单位(即偏移量 = 片偏移字段*8
);这种设计是因为IP分片的大小必须是
8byte
的整数倍,所以此偏移量可以更节省空间的表示出整个数据包中的字节位置;
假设IP需要发送4500 byte
大小的数据,但由于该数据超过了数据链路层限制的大小,对应的IP协议需要对该数据包进行分片;
对应的分片结构如下:
以该图为例,在进行分片时,IP数据包的第一个分片将保留IP报头进行分片,对应的第一个分片的三位标志为001
表示这个数据包可以被分片,且该分片并不是最后一个分片,片偏移为0
表示该分片为数据包分片中的第一个分片;
其次后续的分片需要为分片后的数据增加报头,所以在进行分片时需要保留对应的报头大小;
因为在数据链路层中不关心上层的数据与报头的分隔,数据链路层协议将会把上层所发的所有内容,无论报头报文都当做自己的有效载荷进行封装;
最后一个分片的三位标志为000
,且片偏移不为0
,因此该分片表示分片中的最后一个分片;
分片的组装
对端在接受到IP数据包的分片后需要对分片进行组装;
首先组装前需要判断所接收到的IP数据包是否为完整的数据包还是IP数据包中的分片;
通常需要判断这几个条件:
-
接收到的几个数据包
16
位标识字段是否一致若是接收方接收到了几个IP数据包所对应的
16
位标识字段相同,则判断该数据包可能为分片;并且将多个该字段相同的数据包聚集在一起存放;
-
3
位标志字段情况是否允许被分片以及是否有更多分片标识该字段用来判断所接收到的IP数据包是否是被允许分片的;
若是判断该字段为允许被分片则该IP数据包可能为分片中的其中一个;
同时若是该字段允许被分片且该字段的最后一个子字段被标识为
1
,则表示该IP数据包为分片中的其中一个; -
片偏移字段是否为
0
若是片偏移字段不为
0
则表示该IP数据包一定为分片中的其中一个;
这几个条件在组装过程中缺一不可;
通常需要判断四种情况:
-
不为分片
当接收方接收到的几个IP数据包中其
16
位标识字段是唯一,且该IP数据包的3
位标志中被设置了不可分片标识则表示该数据包不为分片;或者所接收到的IP数据包
16
位标识字段唯一且3
位标志位中更多分片字段设为0
,同时片偏移量也为0
同样表示该IP数据包不为分片; -
第一个分片
当所接收的IP数据包的
3
位标志中更多分片为1
,同时片偏移为0
时则表示该IP数据包为相同16
位标识字段IP数据包分片中的第一个分片; -
中间分片
当所接收到的IP数据包中的
3
位标志中更多分片被设置为1
且片偏移不为0
则表示该IP数据包为相同16
位标识字段IP数据包分片中的中间分片; -
最后一个分片
当所接收到的IP数据包中
3
位标志中更多分片被设置为0
,且片偏移不为0
则表示该IP数据包为相同16
位标识字段IP数据包分片中的最后一个分片;
在分片的聚合过后根据片偏移来对数据进行排序,随后去掉分片中的IP报头对数据进行组装;
IP协议分片的短板
通常情况下在网络协议栈中是不太支持IP协议对数据进行分片的;
主要的原因是IP协议若是对一个IP数据包进行分片后交由数据链路层进行传输,若是分片在传输过程中出现丢失问题则将要把该IP数据包的所有分片,即整个完整的IP数据包进行重新传输;
这样会延长数据在网络中的存活时间,对应的一个IP数据包的传输时间将变得更长,可能更加影响网络中其他主机的网络通信;
因此为了避免IP层因分片导致的各种问题,经常需要避免IP进行分片,为了避免IP分片,上层协议,如TCP协议才指定了一些列的策略,如流量控制,滑动窗口,慢启动等;
相关文章:
『 Linux 』网络层 - IP协议 (二)
文章目录 路由NAT技术分片与组装分片的组装IP协议分片的短板 路由 通常情况路由器具备了一个非常重要的功能,即构建子网; 同时路由器需要实现跨网络通信,说明路由器必须存在两个或以上的IP地址,通常在路由器中可以看到几个接口,分别是一个WAN口和几个LAN口; WAN口IP被称为公网I…...
Linux开发者的CI/CD(11)jenkins变量
文章目录 1. **环境变量 (Environment Variables)**常见的环境变量:示例:2. **构建参数 (Build Parameters)**常见的构建参数类型:示例:3 **在 `stages` 块内定义局部变量**示例:使用 `script` 步骤定义局部变量4 变量引用陷阱在 Jenkins 中,变量是自动化流程中非常重要的…...
Python和R荧光分光光度法
🌵Python片段 Python在处理荧光分光光度法数据方面非常强大,得益于其丰富的数据处理和可视化库,可以轻松实现从数据读取到分析的完整流程。荧光分光光度法用于测量物质在激发光照射下发出的荧光强度,常用于定量分析和特性研究。 …...
理解clickhouse 里的分区和分片键区别
文章目录 分片分区两分片,0副本的cluster 分片 CREATE TABLE logs_distributed AS logs_local ENGINE Distributed(cluster_name, -- 集群名称database_name, -- 数据库名称logs_local, -- 本地表名cityHash64(user_id) -- 分片键…...
【数据结构笔记】习题
渐进分析 【2010-THU-Mid】f(n) O(g(n)),当且仅当g(n) Ω(f(n))。(√) 【2010-THU-Mid】若f(n) O(n^2)且g(n) O(n),则以下结论正确的是(AD) A. f(n) g(n) O(n^2) B. f(n) / g(n) O(n) C. g(n) O(f(…...
非交换几何与黎曼ζ函数:数学中的一场革命性对话
非交换几何与黎曼ζ函数:数学中的一场革命性对话 非交换几何(Noncommutative Geometry, NCG)是数学的一个分支领域,它将经典的几何概念扩展到非交换代数的框架中。非交换代数是一种结合代数,其中乘积不是交换性的&…...
【c++】模板详解(2)
🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C 目录 前言 一、非类型模板参数 二、模板的特化 1. 概念 2. 场景举例 3. 函数模板的特化 4. 类模板的特化 全特化 偏特化 1. 部分特化 2. 对参数的…...
DICOM图像处理:深入解析DICOM彩色图像中的Planar配置及其对像素数据解析处理的实现
引言 在DICOM(Digital Imaging and Communications in Medicine)标准中,彩色图像的存储与显示涉及多个关键属性,其中**Planar Configuration(平面配置)**属性(标签 (0028,0006))尤为重要。当遇到彩色DICOM图像在浏览时被错误地分割为9张小图,而实际应显示为一…...
【青牛科技】D3308 一块带有 ALC 的双通道前置放大器。它适用于立体声收录机和盒式录音机。
概述: D3308 是一块带有 ALC 的双通道前置放大器。它适用于立体声收录机和盒式录音机。采用 SIP9、SOP14 的封装形式封装。 主要特点: 带内置 ALC 回路的双通道均衡放大器。 低噪声: VNI1.0V(典型值)。 开环…...
goframe开发一个企业网站 MongoDB 完整工具包18
1. MongoDB 工具包完整实现 (mongodb.go) package mongodbimport ("context""fmt""time""github.com/gogf/gf/v2/frame/g""go.mongodb.org/mongo-driver/mongo""go.mongodb.org/mongo-driver/mongo/options" )va…...
自动驾驶3D目标检测综述(四)
前三篇分别介绍了前四章的内容: 第一篇(介绍、摘要和背景):自动驾驶3D目标检测综述(一)_3d 目标检测-CSDN博客 第二篇(第三章 基于激光雷达的3D目标检测):自动驾驶3D目…...
远程控制软件:探究云计算和人工智能的融合
在数字化时代,远程控制工具已成为我们工作与生活的重要部分。用户能够通过网络远程操作和管理另一台计算机,极大地提升了工作效率和便捷性。随着人工智能(AI)和云计算技术的飞速发展,远程控制工具也迎来了新的发展机遇…...
3ds Max2024软件详细安装教程+中文安装包(永久使用)
[名称]:3ds Max2024 [大小]:5.07GB [语言]:简体中文 [安装环境]:Win11/Win10 软件介绍 3DS Max是一款三维建模和渲染软件,可以创造宏伟的游戏世界,布置精彩绝伦的场景以实现设计可视化,并打造身临其境的虚拟现实 (VR) ...在广告…...
深入解析 Spring MVC:架构、组件与最佳实践
文章目录 1. **DispatcherServlet**2. **HandlerMapping**3. **HandlerAdapter**4. **Controller**5. **ModelAndView**6. **ViewResolver**7. **View** 工作流程配置方式XML 配置Java 配置 最佳实践示例项目项目目录结构控制器 (HelloWorldController.java)服务层 (HelloWorld…...
专题二十三_动态规划_回文串系列问题_算法专题详细总结
目录 动态规划 回文串系列问题 1. 回⽂⼦串(medium) 解析: 解决回文串问题,这里提供三个思路: 1.中心扩展法:n^2 / 1 2.马拉车算法:n / n 3.动态规划算法:n^2 / n^2 1.状态表…...
Linux操作系统学习---初识环境变量
目录 编辑 环境变量的概念: 小插曲:main函数的第一、二个参数 获取环境变量信息: 1.main函数的第三个参数 2.查看单个环境变量 3.c语言库函数getenv() 和环境变量相关的操作指令: 1.export---导出环境变量: 2.unse…...
通过map文件了解堆栈分配(STM32、MDK5)--避免堆栈溢出
在最近的一个项目的开发中,每当调用到一个函数,程序就直接跑飞。debug跟进去看不出什么逻辑错误,但发现函数内局部变量声明之后,全局变量的值被清零,后来查看局部变量地址已经超出栈的范围,于是确定是栈溢出。如果不稍微了解一下堆栈,在开发过程中可能碰到各种奇怪的错误…...
设计模式——状态模式
定义 状态模式(State Pattern)是一种行为设计模式。它允许一个对象在其内部状态改变时改变它的行为。对象看起来好像修改了它的类,从直观上看,就像是对象根据自身的状态来动态地切换行为方式。 结构组成 环境(Conte…...
没有技术背景考软考高级选什么科目呀?
没有技术背景的外行小白特别推荐考取 信息系统项目管理师 ,也就是软考高项! 软考高项是软考高级资格考试中相对最容易的一门,同时也是报考人数最多的一门。 为什么选择软考高项呢? 以我自己的经历为例。 刚进入职场时…...
大语言模型---梯度的简单介绍;梯度的定义;梯度计算的方法
1. 梯度介绍 如果我们在一座山上(一个山的坡度有很多,陡峭的,平缓的),想要从山顶下山。而梯度就像告诉我们如何沿着最陡的下坡路线走,以尽快到达山脚(最低点)。 2. 梯度的定义 梯度…...
【R语言管理】Pycharm配置R语言及使用Anaconda管理R语言虚拟环境
目录 使用Anaconda创建R语言虚拟环境1. 安装Anaconda2. 创建R语言虚拟环境 Pycharm配置R语言1. 安装Pycharm2. R Language for IntelliJ插件 参考 使用Anaconda创建R语言虚拟环境 1. 安装Anaconda Anaconda的安装可参见另一博客-【Python环境管理工具】Anaconda安装及使用教程…...
蓝桥杯每日真题 - 第24天
题目:(货物摆放) 题目描述(12届 C&C B组D题) 解题思路: 这道题的核心是求因数以及枚举验证。具体步骤如下: 因数分解: 通过逐一尝试小于等于的数,找到 n 的所有因数…...
mac 如何查看 export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node 是否正确
在 macOS 上,如果你想查看环境变量 NVM_NODEJS_ORG_MIRROR 是否已正确设置为 https://npm.taobao.org/mirrors/node,你可以按照以下步骤进行检查: 1. 检查当前环境变量值 打开终端并运行以下命令来查看 NVM_NODEJS_ORG_MIRROR 环境变量的当…...
Android 单元测试的各种环境问题记录
报错记录 failed to configure packages targetSdkVersion failed to configure com.demo.test.SettingsActivityTest.testOnCreate_withNullSavedInstanceState: Package targetSdkVersion34 > maxSdkVersion32 java.lang.IllegalArgumentException: failed to configure …...
选择使用whisper.cpp进行语音转文字
需要将一些wav格式的语音文件转成文字(ASR,STT),接到这个任务后,首先上网搜索有没有现成免费的工具或服务可以使用。常用的关键字如“语音转文字 免费 在线”。 搜到的很多野鸡网站,都可以免注册免费提供短…...
推荐一款网络调试工具:常用网络调试工具2024秋季版(1.1.5.41115)
常用网络调试工具2024秋季版(1.1.5.41115) 此应用程序支持TCP/IP Server、TCP/IP Client、UDP/IP数据收发、文本模式发送与接收、HEX模式发送与接收、报文模式,数据模式,数据管理功能,数据导出至EXCEL报表、存贮于数据库。具体功能如下&#…...
无锁编程–C语言
原文地址:无锁编程–C语言 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 锁带来的开销是比较大的,对于高并发处理的数据,使用一些原子操作函数,可以有效避免上锁的开销。 GCC内置了一些原子操作…...
C/C++绘制爱心
系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/…...
架构师思维中的人、产品和技术
架构思维主要是一种以产品和业务为驱动的顶层解决问题的思维,需要同时考虑产品、人和技术3重关系,思维点需要同时落在三维体系中。虽然架构师很多时候做的工作其实只是分和合,即所谓的系统分拆及重新组合,但综合能力要求很高,需要同时具备思维的高度和深度,在思维抽象的同…...
数学知识1
人工智能的四要素是算法、算力、数据和场景,之所以能够智能,离不开长期发展的数学原理,人工智能背后强有力的支撑便是数学、物理等基础学科,本篇笔者浅谈、分享一下个人详学习人工智能的一个前期知识储备阶段对数学方面的积累&…...
git: 修改gitlab仓库提交地址
git: 修改gitlab仓库提交地址 右键git bash here 1、进入到项目my-project所在位置 2、查看当前项目远程仓库地址 3、修改远程仓库地址 4、再次查看新的远程仓库地址以确认修改成功 cd /my-project git remote -v # 查看当前远程仓库地址 git remote set-url origin 新的Gi…...
mac 安装node提示 nvm install v14.21.3 failed可能存在问题
如果你在 macOS 上使用 nvm(Node Version Manager)安装 Node.js 版本 v14.21.3 时遇到安装失败的问题,可以按照以下步骤进行排查和解决: 1. 确认 nvm 安装是否正确 首先,确认你的 nvm 是否正确安装,并且能…...
MySQL基础知识大总结
一,介绍 数据库是什么,我们在学习其他编程语言的时候会使用数组呀,链表,二叉树等等一些数据结构来存储我们的数据,但是大家有没有发现我们一旦关闭程序,所有的数据都没有了,这在发行的软件来看是…...
取石子游戏
取石子游戏 💐The Begin💐点点关注,收藏不迷路💐 Alice 和 Bob 在玩一个古老的游戏。现在有若干堆石子,Alice 和 Bob 轮流取,每次可以 选择其中某一堆的石子中取出任意颗石子,但不能不取&#x…...
对象的大小
文章目录 一、对象大小 一、对象大小 对象是类实例化出来的,让我们分析一下类对象中哪些成员呢? 类实例化出的每个对象,每个都有独立的数据空间,所以对象中肯定包含 成员变量,那么成员函数是否包含呢? 首…...
基于Boost库的搜索引擎
本专栏内容为:项目专栏 💓博主csdn个人主页:小小unicorn ⏩专栏分类:基于Boots的搜索引擎 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学习编程知识…...
springMVC 全局异常统一处理
全局异常处理⽅式⼀: 1、配置简单异常处理器 配置 SimpleMappingExceptionResolver 对象: <!-- 配置全局异常统⼀处理的 Bean (简单异常处理器) --> <bean class"org.springframework.web.servlet.handler.SimpleMappingExceptionReso…...
Java面试之多线程并发篇
前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说一说自己对于 synchronized 关键字的了解?说说自己是怎么使用 synchronized 关键字?什么是线程安全?Vector是一个线程安全类吗?…...
我的创作之路:机缘、收获、日常与未来的憧憬
目录 前言机缘收获 日常成就一个优化后的二分查找实现 憧憬 前言 每个人的成长旅程都有它独特的轨迹,而我的这段技术创作之路,则源于一次再普通不过的项目分享。 机缘 一切的开始其实是偶然。在一次项目中,我遇到了一个棘手的问题…...
将服务器上的服务映射到本地使用
使用 win R ,输入CMD打开命令行。 ssh -CNg -L 6666:127.0.0.1:8888 rooti-1.gpushare.com -p 53310 从右到左介绍: 53310:服务器的端口号。 i-1.gpushare.com:主机。 8888:服务器上服务所在的端口。 6666&…...
【C++动态规划 子集状态压缩】2002. 两个回文子序列长度的最大乘积|1869
本文涉及知识点 C动态规划 位运算、状态压缩、枚举子集汇总 LeetCode2002. 两个回文子序列长度的最大乘积 给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 。两个子序列在原字符串中如果没有任何相同下标的字符&…...
SQL注入--理论--堆叠注入
什么是堆叠注入? 在SQL语句操作的时候,每个语句都是以分号;标志结尾的。 在我们注入的过程中,通过使用多个分号同时进行多个SQL语句的注入,就是堆叠注入。 例如: ?inject1;handler 1919810931114514 open;handler 1…...
CSS —— 子绝父相
相对定位:占位;不脱标 绝对定位:不占位;脱标 希望子元素相对于父元素定位,又不希望父元素脱标(父元素占位) 子级是 绝对定位,不会占有位置, 可以放到父盒子里面的任何一…...
蓝桥杯不知道叫什么题目
小蓝有一个整数,初始值为1,他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如,如果整…...
IDEA如何快速地重写方法,如equals、toString等
前言 大家好,我是小徐啊。我们在使用IDEA的时候,有时候是需要重写equals和toString等方法的。这在IDEA中已经很方便的给我们准备好了快速的操作了。今天就来讲解一下。 如何重写 首先,打开要重写方法的文件,让鼠标定位到这个文…...
使用ENSP实现默认路由
一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为2.2.2.1/24 ip address 2.2.2.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为1.…...
打造智能扩容新纪元:Kubernetes Custom Metrics深度解析
自定义指标:Kubernetes Auto Scaling的革命 1. 引言 1.1 Kubernetes与Auto Scaling Kubernetes作为当今容器编排的事实标准,提供了强大的自动化能力,其中Auto Scaling(自动扩缩容)是其核心特性之一。Auto Scaling允许Kubernetes集群根据当前负载动态调整资源,以应对不…...
网络安全工具软件 BlackICE
网络安全工具软件BlackICE的使用和设置说明简介(转) BlackICE 在九九年获得了PC Magazine的技术卓越大奖,专家对它的评语是:“对于没有防火墙的家庭用户来说,BlackICE是一道不可缺少的防线;而对于企业网络,它又增加…...
深入解析分布式优化算法及其Python实现
目录 深入解析分布式优化算法及其Python实现第一部分:分布式优化算法的背景与原理1.1 什么是分布式优化算法?1.2 分布式优化算法的分类1.3 应用场景1.4 分布式优化的关键挑战第二部分:分布式优化算法的通用Python实现2.1 基本组件的实现第三部分:案例1 - 基于梯度下降的分布…...
互联网直播/点播EasyDSS视频推拉流平台视频点播有哪些技术特点?
在数字化时代,视频点播应用已经成为我们生活中不可或缺的一部分。监控技术与视频点播的结合正悄然改变着我们获取和享受媒体内容的方式。这一变革不仅体现在技术层面的进步,更深刻地影响了我们。 EasyDSS视频直播点播平台是一款高性能流媒体服务软件。E…...