【Linux网络编程十】网络原理之IP协议【网络层】
网络原理之IP协议【网络层】
- 1.理解IP协议
- 2.IP报文
- 2.1分片问题
- 3.路由器
- 3.1路由问题
- 4.网络划分
- 5.私有ip与公有ip
- 6.理解运营商与全球网络
- 7.NAT技术
- 7.1NAPT
1.理解IP协议
IP协议的本质工作:提供一种能将数据跨网络从A主机送到B主机的能力。
而用户需要的是能够可靠的将数据跨网络送达。所以传输层TCP协议就是为了提供可靠性策略的。
IP地址=目标网络+目标主机 这样组成的目的是构建网搭的时候,为我们将来高速定位一台主机,提供基础保证!!
因为在路由转发时,都是先找到目标网络,再从目标网络中定位到目标主机。
2.IP报文
①四位版本:指定IP协议的版本, 对于IPv4来说, 就是4
②4位首部长度:表示真正的报头长度(默认报头20字节+选项)
③16位总长度:表示整个报文的长度
④16位表示:唯一标识主机发送的报文,当IP分片时,每一个分片的标识必须一样。
⑤3位标志:第一位默认不用,第二位表示是否同意分片,1表示禁用,0表示同意,第三位,表示若ip报文进行了分片,则0表示最报文的最后一个分片,1表示不是最后一个分片。
⑥13位片偏移:表示当前分片在原始报文中处于哪个位置,是分片相对于原始IP报文开始处的偏移。
⑦8位生存时间TTL:报文到达目的地的最大报文跳数。一般是64. 每次经过一个路由, TTL-1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环
⑧八位协议:表示上层使用什么协议
⑨32位源ip地址:发送方的ip地址
⑩32位目的ip地址:接收方的ip地址
【问题1】如何将报头和有效载荷分开?
使用固定长度+自描述字段(4位首部长度与16位总长度)来分开
即先读取20字节得到报头,根据里面的4位首部长度,确定真正报头的长度,再根据16位总长度减去报头,剩下的就是有效载荷。
【问题2】ip地址与端口号
应用层的套接字是需要ip地址和端口号的,因为ip地址+端口号唯一确定一个进程。而端口号是作用于在传输层,填充Tcp报头的。而IP地址是作用于网络层,填充IP报头的。
【问题3】如何看待两台主机通信?
只需要注意的是,在我们整个通信的过程之中,只有通信主机和目标主机,客户端和服务
器双方的会使用自己的tcp,而中间的所有设备使用的时候,只会应 用到网络层。它只要把报文给我转发就行了。
2.1分片问题
实际上,在一台主机中,报文并没有通过网络层直接发送出去,而是继续交给了下一层协议(数据链路层)。
而数据链路层要求一次性不能发送过大的数据,数据大小的范围为[46,1500]字节,而最大的数据长度为1500字节,也称为MTU。这是网卡决定的,是定性的。
所以也就要求数据链路层的上层不能给我交付过大的报文。
但网络层也是一个跑腿的,它并不能决定发送多少,发送多少数据是由传输层决定的,如果传输层发送过大的数据给网络层,因为数据链路层不能接收过大的数据,这就要求网络层需要对报文进行分片,将报文分成几个小的报文。
【问题1】:怎么知道ip报文分片了?
1.ip报头里有个3位标志位,正常没有分片的报文,最后一位必为0,如果发生分片了,那么就会存在为1的报文。
2.ip报头里有个13位片偏移,正常没有分片的报文,为0,如果发生分片了,那么就不为0;
【问题2】:如何将分片组装起来?
每个分片都有自己的报头,每个报头里面的16为标识都是一样的,再根据13位片偏移来确定哪个分片是第一个,哪个分片是中间和最后的,就可以完成组装。
【问题3】:建议分片吗?为什么?
不建议网络层分片,因为一旦分片丢了,就会要求传输层重新发送报文,这样会增加报文重发概率。ip中任何一个分片丢失,都要重新发送。
【问题4】:如何避免分片?
网络层和数据链路层都是跑腿的,真正决定数据多少的是传输层也就是Tcp协议。所以倒逼Tcp进行流量控制不让它发很大的报文。
【问题5】:MTU与MSS
1.MTU是数据链路层最大能发送的数据段。因为有了MTU的存在,所以TCP的一个数据报不能无限大,要受限于MTU,TCP单个数据报的最大长度称为MSS(Max Segment Size); 大小为1460字节。
2.这也就是为什么TCP的滑动窗口中,可以发送/已发送未应答的区域里面还要再划分成一个个小区块,这一个个小区块就是MSS,不能将滑动窗口中数据全部发送出去, 而是受限于MTU,每次发送必须是MSS。
3.TCP在三次握手期间双方就会进行MSS的协商,取双方较小值作为标准。
3.路由器
1.路由器本质也是特定子网下的一台主机,不过路由器至少要有两个IP,因为路由器至少要连接两个子网。
2.路由器的ip地址一般位该子网的第一台主机。
3.路由器的功能不仅能够专访ip报文,更重要的是它能够构建子网(局域网),并且可以对子网内的ip进行管理。
4.通常手动管理ip非常麻烦,而有种技术叫做DHCP,能够自动的给子网内新增的主机结点分片ip地址,就避免了手动管理IP的不便。而一般的路由器都带有DHCP服务,所以路由器也可以看作一个DHCP服务器。
5.路由器上有LAN口和WAN口,LAN口通常连接的是局域网,LAN口一般连接的是公网。
6.子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级
替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地
址转换).
7.如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服
务器上. 这样的服务器可以在阿里云/腾讯云上进行购买
3.1路由问题
ip报文是如何从源主机发送到目的主机的呢?
是通过路由器不断的转发ip报文,这个转发的过程也称为路由。
1.当ip报文到到达路由器时,路由器会查看目的ip;将目的ip与子网掩码相与,得到目的网络。路由器就会判断该目的网络是否是它的子网,如果是,就发送给目标路由器,如果不是就发送给缺省路由器。依次反复, 一直到达目标IP地址;
2.所以路由器查询的结果无非就2种:
①路由器知道在哪,发送给具体的下一跳或者主机
②路由器不清楚,发送给默认路由器(同网段的类一个路由器)
3.那么路由器是如何判定当前这个数据包该发送到哪里呢? 这个就依靠每个节点内部维护一个路由表;
4.注意每台主机操作系统里面自己也有一个路由表,报文最初会和主机内部的路由表进行比对,目的i地址与子网掩码按位与后发现不是所在的子网,就会转发到默认路由器中。
首先理解我们对应的主机呢,是可以通过查路由表
然后判定ip报文要去的目标网络不在同一子网下直接就可以把它干到我们的家用路由器当中,家用路由器接入运营商的网络,不管你后面怎么转发它都是这样的原则。
如果找到了知道下一跳去哪里,那么就把报文直接转给下一跳路由器去,如果不清楚,把报文转给默认路由器
不断的路由,所以报文呢,就会越来越靠近目标网络。
所以路由过程的本质就是不断的查询路由表的过程。而这个过程也只是能找到目标网络在哪里,并不能具体到目标主机在哪里,要想找到目标主机,还需要MAC地址来确定。
也就是IP层是用来决策的,用来找路的,而具体的找人还需要数据链路层来执行。
4.网络划分
以前网络划分是采用固定的分类方法,即将ip地址分为5类
A类,B类,C类,D类等。
不过这种方法会造成大量IP地址被浪费掉。
例如, 申请了一个B类地址, 理论上一个子网内能允许6万5千多个主机. A类地址的子网内的主机数更多.
然而实际网络架设中, 不会存在一个子网内有这么多的情况. 因此大量的IP地址都被浪费掉了.
后来为了合理的使用IP地址,使用了子网掩码的方式来进行划分网络,称为CIDR(Classless Interdomain Routing):
1.引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;
2.子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;
3.将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;
4.网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;
5.要注意子网掩码是保存在路由器中的,因为路由器连接哪个子网它心里是清楚的,所以它也就是知道该子网的子网掩码。
我们实际使用的方法是:分类+子网划分的方法
比如我要申请一个B类IP地址,并且我有10台主机需要分配。我们只需要留给主机号四位即可,剩下的全为网络号。
也就是我先得到B类网络可是B类,网络主机号太多,我用不完,然后怎么办呢?我把我的16个主机号,拿出来12位,就放在我们的ip地址的子网掩码里,每个子网都可以用14台主机,最终,在内部这个主机号当中的12位那么一共排列组合就能排列成2到12次方个所以也就意味着我除了构建处一个网络之外,我还能构建更很多很多同样的网络。未来12位我不用就暂时保留起来,这就是网络划分。
子网掩码的划分方案呢,它其实是可以更精细的把上面
所讲的a到e类或者abcd这几类网络呢来进行更合理的使用.
虽然没有解决ip地址不足的上限,但是,它确实解决了浪费问题
5.私有ip与公有ip
一般我们接触到使用的网络都是使用的私有ip,私有ip只能用于局域网,不能用与互联网。
私有IP+公有IP=互联网。
6.理解运营商与全球网络
运营商在网络上扮演什么角色呢?
【结论】
1.全球所有人想上网那么都必须得是先由运营商的工作人员先上门给我们把网线拉进来(城里面这些住宅楼呢,它本身就在盖的时候就已经把光纤就入户了)
也就是任何一个人访问网络之前,都得先访问运营商的网络,任何才能到公网中。2.运营商给我们提供网络的基础设施建设(各种基站)
怎么理解全球网络?
IP地址在被划分的时候它会根据国家,根据省市就直接把我们的公网IP给我们划分好了,然后构建出来了一个一个的网段。
那么假设IP地址的分配上是以国家为单位的话,就可以构建根据前4位不同,来区分不同国家的网络来进行通信了。
在前4位基础上再划分4位来区分不同的省份,在前8位基础上再划分4位来区分不同的市。
其实呢,就相当可以把我们对应的A类B类地址32位的。在国家或者在省级别,我们直接给它划分好,那么国家和国家之间有国际级别的路由器好,也可以有省之间的路由器
紧接着到了比如某一个地区了可是这个地区现在ip地址是不可能再划分了光ip就有限,所以我们采用这种子网划分的方案。
我们的报文必须得在家里从我的电脑上先交到家用路由器,然后再转发给运营商路由器再由运营商路由器把报文转发到公网。
7.NAT技术
NAT技术就是能够将私网ip转换未公网ip来访问外网的技术
每经过一次路由器的转发,就会将源ip地址替换未WAN口的ip。最终就能转换为公网访问公网。
当服务器要将响应发送回去时,它就会发送给运营商路由器(公网接口)
,运营商的私网接口就会转发给家用路由器,然后发送给主机A。
NAT路由器内部是有一个自动生成的,用于地址转换的表,就比如上面的过程弄成一张表,那么回来就能安装该表反向将数据发送回去。
7.1NAPT
但是存在一个问题,如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?
这时候NAPT来解决这个问题了. 使用IP+port来建立这个关联关系
NAT路由器不仅能够替换ip地址,还可以替换端口号。
可以将不同的主机发送给NAT路由器时,不仅替换它的源ip地址,并且将端口号也改变成不同,这样就可以区分不同主机发送了。
【NAT的缺陷】
由于NAT依赖这个转换表,所以有诸多限制:
无法从NAT外部向内部服务器建立连接;
装换表的生成和销毁都需要额外开销;
通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开;
相关文章:
【Linux网络编程十】网络原理之IP协议【网络层】
网络原理之IP协议【网络层】 1.理解IP协议2.IP报文2.1分片问题 3.路由器3.1路由问题 4.网络划分5.私有ip与公有ip6.理解运营商与全球网络7.NAT技术7.1NAPT 1.理解IP协议 IP协议的本质工作:提供一种能将数据跨网络从A主机送到B主机的能力。 而用户需要的是能够可靠的…...
C++23 让 Lambda 表达式中的 () 更可选:P1102R2 提案深度解析
文章目录 一、背景与动机:Lambda 表达式中的痛点1.1 问题的根源 二、P1102R2 提案:让 () 可选2.1 提案的核心内容2.2 语法调整的细节2.3 提案的合理性 三、编译器支持:主流编译器的跟进四、对 C 编程的影响:简化语法与提升一致性4…...
国产AI新突破!全球首款无限时长电影生成模型SkyReels-V2开源:AI视频进入长镜头时代!
在 AI 技术日新月异的今天,我们再次见证了历史性的突破。 昆仑万维 SkyReels 团队于近日正式发布了全球首款支持无限时长的电影生成模型——SkyReels-V2,并免费开源。这无疑为 AI 视频领域掀开了崭新的一页,标志着 AI 视频正式迈入长镜头时代…...
如何以特殊工艺攻克超薄电路板制造难题?
一、超薄PCB的行业定义与核心挑战 超薄PCB通常指厚度低于1.0毫米的电路板,而高端产品可进一步压缩至0.4毫米甚至0.2毫米以下。这类电路板因体积小、重量轻、热传导性能优异,被广泛应用于折叠屏手机、智能穿戴设备、医疗植入器械及新能源汽车等领域。然而…...
VScode-py环境
settings.json {"git.ignoreLimitWarning": true,"code-runner.runInTerminal": true,"code-runner.executorMap": {"python": "python3"} } 第二句话保证在终端里面进行IO 第三句话保证python3的用户不会执行python关键…...
4.21 从0开始配置spark-local模式
首先准备好安装包 然后使用命令解压 使用source /etc/profile命令让环境变量生效 输入命令 spark-submit --class org.apache.spark.examples.SparkPi --master local[2] /opt/module/spark-local/examples/jars/spark-examples_2.12-3.1.1.jar 10 即在spark运行了第一个程序…...
git详解
目录 常用命令速查 一、Git 的概念与作用 二、Git 仓库(Repository) 1. 本地仓库 2. 远程仓库 三、Git 的三个核心区域 1. 工作区(Working Directory) 2. 暂存区(Staging Area / Index) 3. 版本库…...
I/O复用函数的使用——select
I/O复用函数的使用——select 目录 一、概念 二、select接口 2.1 基础概念 2.2 使用 select 函数的标准输入读取代码 2.3 基于 select 模型的多客户端 TCP 服务器实现 一、概念 i/o复用使得程序能同时监听多个文件描述符,可以提高程序性能。 之前为了让服务器能…...
LangChain与图数据库Neo4j LLMGraphTransformer融合:医疗辅助诊断、金融风控领域垂直领域、法律咨询场景问答系统的技术实践
LangChain与图数据库融合:垂直领域问答系统的技术实践 一、技术背景与核心价值 在垂直领域(如金融、医疗、法律)的问答场景中,传统RAG系统常面临实体关系推理不足和专业术语理解偏差的痛点。LangChain通过集成图数据库与知识图谱…...
Trae国际版的下载与简单使用示例(免费使用Claude,GPT4.1等多个高级模型)
文章目录 Trae的下载与使用什么是Trae重要亮点Trae的核心功能主要特点 安装指南下载步骤系统要求安装步骤 基础操作代码补全代码生成代码解释 高级功能自定义设置 总结参考资料 Trae的下载与使用 什么是Trae Trae是一款先进的AI编程助手工具,专为开发者打造。它集…...
Python 金融量化分析
文章目录 1. IPython:交互式的 Python 命令行安装常用操作IPython Notebook 2. NumPy:数据计算模块主要功能安装与导入创建 ndarrayndarray 的常用属性示例代码常用创建函数示例代码 3. NumPy 索引和切片数组运算数组索引和切片布尔型索引花式索引通用函…...
Linux:进程:进程控制
进程创建 在Linux中我们使用fork函数创建新进程: fork函数 fork函数是Linux中的一个系统调用,用于创建一个新的进程,创建的新进程是原来进程的子进程 返回值:如果子进程创建失败,返回值是-1。如果子进程创建成功&a…...
量子计算在金融领域的应用与展望
在当今数字化时代,金融行业正面临着前所未有的技术变革。量子计算作为前沿科技领域的明珠,正在逐渐从实验室走向实际应用,为金融行业带来新的机遇和挑战。本文将探讨量子计算在金融领域的应用现状、优势以及未来的发展展望。 一、量子计算简介…...
StarRocks:一款开源的高性能分析型数据仓库
StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO(基于成本优化)、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。 StarRocks 是一个 Linux 基金会开源项目,采用 Apache 2.0 许…...
NLP高频面试题(四十九)大模型RAG常见面试题解析
为什么要构建RAG系统? RAG系统通过结合信息检索和生成模型,解决了LLM在知识更新、幻觉和上下文限制等方面的挑战。它允许模型在生成响应前引用外部知识库,提高答案的准确性和相关性。 RAG与大模型微调的区别? 项目RAG系统大模型微调知识更新通过更新外部知识库实现需要重…...
【NLP 68、R-BERT】
为什么划掉你的名字,为什么不敢与你对视 —— 25.4.21 一、R-BERT:基于BERT的关系抽取模型 R-BERT(Relation BERT)是一种用于关系抽取(Relation Extraction)任务的模型,它结合了预训练语言模型…...
Java:多线程
多线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 并发和并行 并发:在同一时刻,有多个指令在单个CPU上交替执行 并行:在同一时刻,有多个指令在多个CPU上同时执行 …...
第一章:自然语言处理
目录 1.1 自然语言处理发展史 1.2 统计语言模型发展史 统计语言模型 NNLM 模型 Word2Vec 模型 ELMo 模型 BERT 模型 大语言模型 1.3 小结 自然语言处理(Natural Language Processing,NLP)是一门借助计算机技术研究人类语言的科学。虽…...
Git 大文件使用 Git-LFS 管理,推送失败
配置了.gitattributes文件后, *.jar filterlfs difflfs mergelfs -text *.so filterlfs difflfs mergelfs -text *.aar filterlfs difflfs mergelfs -text *.bin filterlfs difflfs mergelfs -text *.a filterlfs difflfs mergelfs -text 仍然推送失败 POST git-…...
[c语言日寄]免费文档生成器——Doxygen在c语言程序中的使用
【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...
RK3588上编译opencv 及基于c++实现图像的读入
参考博文: https://blog.csdn.net/qq_47432746/article/details/147203889 一、安装依赖包 sudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpe…...
C++ GPU并行计算开发实战:利用CUDA/OpenCL加速粒子系统与流体模拟
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...
Java 设计模式心法之第3篇 - 总纲:三大流派与导航地图
前两章,我们修炼了 SOLID 这套强大的“内功心法”,为构建高质量软件打下了坚实根基。现在,是时候鸟瞰整个设计模式的“武林”了!本文将为您展开一幅由 GoF 四人帮精心绘制的 23 种经典设计模式的“全景导航地图”。我们将探索这些…...
高级java每日一道面试题-2025年4月19日-微服务篇[Nacos篇]-Nacos未来的发展方向和规划有哪些?
如果有遗漏,评论区告诉我进行补充 面试官: Nacos未来的发展方向和规划有哪些? 我回答: Nacos 作为阿里巴巴开源的服务发现、配置管理和服务治理平台,其未来的发展方向和规划主要体现在以下几个关键领域: 1. 安全性与标准化 API分类精细化…...
跳过reCAPTCHA验证的技术解析与优化实践
Google的reCAPTCHA验证系统已成为保护网站安全的核心工具之一。然而,频繁的验证弹窗可能降低用户体验,甚至导致用户流失。如何在遵守平台规则的前提下,通过技术优化与用户行为管理减少验证触发率,成为我们亟需解决的难题。 但需要…...
idea使用docker插件一键部署项目
一、首先保证我们电脑上已经安装了docker docker -v查看docker版本,如果不能识别,需要先下载docker destop,在官网下载正常安装即可。 安装成功就可以使用docker 命令了 二、idea下载docker插件并配置docker参数 我是通过tcp连接docker服务…...
强化学习笔记(三)——表格型方法(蒙特卡洛、时序差分)
强化学习笔记(三)——表格型方法(蒙特卡洛、时序差分) 一、马尔可夫决策过程二、Q表格三、免模型预测1. 蒙特卡洛策略评估1) 动态规划方法和蒙特卡洛方法的差异 2. 时序差分2.1 时序差分误差2.2 时序差分方法的推广 3. 自举与采样…...
[SpringMVC]请求响应参数传递
controller前置url解决业务重名 在项目中,常常会碰到不同的业务之间的某个方法同名的情况。例如在一个文档管理系统(有着文档和发布者两个实体)中,两个实体都有着 "add" 业务。如果两个实体相关的业务url都用 "/ad…...
在C++业务类和QML之间创建一个数据桥梁
工作中经常会遇到两种业务直接按无法直接沟通,此时需要建立一个桥梁将两者进行联系起来,假设一个C业务类,有一个QML UI, 如果将BridgeClass 类通过qmlRegisterType 注册到QML中,在C中如何能够调用到BridgeClass 对象吗…...
超详细mac上用nvm安装node环境,配置npm
一、安装NVM 打开终端,运行以下命令来安装NVM: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash 然后就会出现如下代码: > Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zprofile, ~/.…...
MH2103系列coremark1.0跑分数据和优化,及基于arm2d的优化应用
CoreMark 1.0 介绍 CoreMark 是由 EEMBC(Embedded Microprocessor Benchmark Consortium)组织于 2009 年推出的一款用于衡量嵌入式系统 CPU 或 MCU 性能的标准基准测试工具。它旨在替代陈旧的 Dhrystone 标准(Dhrystone 容易受到各种libc不同…...
YOLO11改进 | 特征融合Neck篇之Lowlevel Feature Alignment机制:多尺度检测的革新性突破
## 为什么需要重新设计特征融合机制? 在目标检测领域,YOLO系列模型因其高效的实时性成为工业界和学术界的标杆。然而,随着应用场景的复杂化(如自动驾驶中的多尺度目标、无人机图像中的小物体检测),传统特征融合策略的局限性逐渐暴露:**特征对齐不足导致语义信息错位、多…...
解决方案:远程shell连不上Ubuntu服务器
服务器是可以通过VNC登录,排除了是服务器本身故障 检查服务是否在全网卡监听 sudo ss -tlnp | grep sshd确保有一行类似 LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid...,fd3))返回无结果,表明系统里并没有任…...
Flutter路由模块化管理方案
总结记录一下Flutter路由模块管理: 1、创建路由基类 abstract class BaseRouteConfig {Map<String, WidgetBuilder> get routes; } 2、创建不同模块的路由配置类 // 认证模块路由 class AuthRoutes extends BaseRouteConfig {overrideMap<String, Widg…...
Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
什么是IO Java中的I/O(输入/输出)机制基于流(Stream)的概念实现数据的传输。流将数据序列化,即按照特定顺序逐次进行读写操作。简而言之,Java程序通过I/O流与外部设备进行数据交换。 Java类库中的I/O功能十…...
TapData × 梦加速计划 | 与 AI 共舞,TapData 携 AI Ready 实时数据平台亮相加速营,企业数据基础设施现代化
在实时跃动的数据节拍中,TapData 与 AI 共舞,踏出智能未来的新一步。 4月10日,由前海产业发展集团、深圳市前海梦工场、斑马星球科创加速平台等联合发起的「梦加速计划下一位独角兽营」正式启航。 本次加速营以“打造下一位独角兽企业”为目…...
一键部署k8s之EFK日志收集系统
一、部署es 1.下载安装 #下载安装 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.2-linux-x86_64.tar.gz #解压 [rootes software]# tar xf elasticsearch-8.13.2-linux-x86_64.tar.gz #创建运行elasticsearch服务用户并修改权限 [rootes softw…...
Python常用的第三方模块【openpyxl库】读写Excel文件
openpyxl库模块是用于处理Microsoft Excel文件的第三方库,可以对Excel文件中的数据进行写入和读取。 weather.pyimport reimport requests#定义函数 def get_html():urlhttps://www.weather.com.cn/weather1d/101210101.shtml #爬虫打开浏览器上的网页resprequests.…...
加油站小程序实战教程12显示会员信息
目录 1 布局搭建1.1 搭建头像1.2 显示会员等级1.3 余额显示 最终效果 我们上一篇介绍了会员注册的功能,会员注册后再次进入页面的时候就可以根据openid加载会员信息,本篇我们介绍一下显示会员的余额 1 布局搭建 我们现在在我的页面显示的是会员未开通…...
iOS中使用AWS上传zip文件到Minio上的oss平台上
1. 集成AWS相关库(千万不要用最新的版本,否则会出现风格化虚拟路径,找不到主机名) pod AWSS3, ~> 2.10.0 pod AWSCore, ~> 2.10.0 2. 编写集成的相关代码 - (void)uploadFileToMinIO {NSString *endPoint "http://…...
PaginationInnerInterceptor使用(Mybatis-plus分页)
引言 最近在编写SQL语句时总是想着偷懒,于是在前不久学习黑马点评时学到可以使用PaginationInnerInterceptor,于是现在我也在自己的项目中进行使用了,但是使用也遇到一些问题,如果你和我的问题一样,希望我的解决办法能…...
极狐GitLab CEO 柳钢受邀出席 2025 全球机器学习技术大会
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 2025 年 4 月 18 日至 19 日,2025 全球机器学习技术大会(ML-Summit 2025)在上海隆重举行。…...
数据仓库 vs 数据湖:架构、应用场景与技术差异全解析
目录 一、概念对比:结构化 vs 全类型数据 二、技术架构对比 1. 数据仓库架构特点 2. 数据湖架构特点 三、典型应用场景 数据仓库适合: 数据湖适合: 四、数据湖仓一体:趋势还是折中? 五、总结:如何…...
【25软考网工笔记】第三章 局域网(1)CSMA/CD、二进制指数退避算法、最小帧长计算
目录 一、CSMA/CD 1. 局域网架构概述 2. 局域网的拓扑结构 3. CSMA 1)CSMA的三种监听算法 1、1-坚持型监听算法(继续监听,不等待) 2、非坚持型监听算法(后退随机事件) 3、P-坚持型监听算法 2&#…...
Harbor对接非AWS对象存储
背景说明 项目的应用完全运行在一个离线环境中,同时通过K8S的方式进行容器编排。需要自建一个harbor的镜像仓库。并且通过私有云提供的S3服务进行容器镜像的持久化存储。我踩的其中的一个坑就是S3的region名字非AWS的标准名称。运行时抱错如下: 2025-04…...
实训Day-1 漏洞攻击实战
目录 实训任务1 漏洞攻击实战一 实训任务2 漏洞攻击实战二 实训任务3 白云新闻搜索 实训任务4 手速要快 实训任务5 包罗万象 总结 今天的实训目的是为了:了解漏洞攻击的一般步骤;掌握SQL注入的基本原理;掌握XSS攻击的基本原理ÿ…...
Linux-网络基础
一.网络背景 网络的起源与20世纪中期的冷战背景密切相关。美苏争霸期间,美国国防部担心传统集中式通信系统(如电话网络)在核战争中容易被摧毁,因此急需一种去中心化、高容错的通信方式。1969年,美国国防部高级研究计划…...
算法 | 鲸鱼优化算法(WOA)原理,公式,应用,算法改进研究综述,完整matlab代码
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 鲸鱼优化算法 一、原理与公式二、应用领域三、算法改进研究四、完整MAT…...
[BJDCTF2020]EzPHP
这一道题里面的知识点实在是太多了,即使这道题是我最喜欢的RCE也有点大脑停转了,所以还是做个笔记,以后方便回忆 直接跳过打点,来到源码 <?php highlight_file(__FILE__); error_reporting(0); $file "1nD3x.php"…...
企业微信-自建应用
1. 创建自建应用 2. 配置小程序/H5入口 3. 准备 : CorpId(企业id)、 AgentID(应用id)、 CorpsecretID(应用Secret) 4. 配置企业可信IP 5. 如H5需要授权登录,那么需要配置网页授…...