IP 协议
IP协议
- 一、介绍
- 1、IP协议
- 2、IPv4
- 3、IPv6
- 二、主要功能
- 三、协议格式
- 1、示意图
- 2、说明
- 四、网段划分
- 1、介绍
- 2、目的
- 3、方法
- 4、步骤
- 五、基于类别的IP地址分配方式
- 1、示意图
- 2、范围
- 六、CIDR
- 1、介绍
- 2、组成
- 3、优点
- 4、示意图
- 七、子网掩码
- 1、介绍
- 2、功能
- 3、表示方法
- 4、CIDR表示法
- 5、原理
- 6、示例
- 八、特殊IP地址
- 1、介绍
- 2、常见的特殊IP地址及其用途
- (1)网络号
- (2)广播地址
- (3)环回地址
- 3、loop back设备
- 九、私有IP和公网IP
- 1、私有IP地址
- (1)定义
- (2)地址范围
- (3)特点
- 2、公网IP地址
- (1)定义
- (2)特点
- 3、区别
- 十、路由器
- 1、定义与功能
- 2、示意图
- 3、说明
- 4、工作原理
- 5、示意图
一、介绍
1、IP协议
- 全称网际互连协议(Internet Protocol),是TCP/IP体系中的网络层协议。IPv4和IPv6是IP协议的两种版本。
2、IPv4
- 地址长度:32位二进制数。
- 表示法:通常呈现为4个由点(.)分隔的十进制整数,每个整数的取值范围为0到255。例如,192.168.1.1。
- 地址空间:IPv4的地址空间有限,只能提供约42亿(2^32)个唯一地址。
3、IPv6
- 地址长度:128位二进制数。
- 表示法:通常呈现为8组由冒号(:)分隔的十六进制整数,每组整数的取值范围为0到FFFF。例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334。此外,IPv6地址还支持缩写形式,如省略前导零和用双冒号(::)表示连续的0组。
- 地址空间:IPv6的地址空间极大,理论上可以提供约3402的39次方(2^128-1,去除全0地址)个唯一地址。
二、主要功能
- 寻址:IP协议通过IP地址来唯一标识网络上的每一台设备,确保数据能够准确地发送到目标主机。
- 路由选择:IP协议负责选择数据从源主机到目标主机的最佳路径,这通常涉及多个路由器的协作。
- 数据分割与组装:当数据报文的长度超过网络层所允许的最大传输单元(MTU)时,IP协议会将其分割成较小的数据包进行传输,并在目的端重新组装成原始数据。
三、协议格式
1、示意图
2、说明
- 版本号:4位,指定IP协议的版本(IPv4/IPv6)。
- 首部长度(header length):4位,IP头部的长度是多少个32bit,也就是 length * 4 的字节数,4bit表示最大的数字是15,因此IP头部最大长度是60字节。
- 服务类型:8位,包括3位优先权字段(已弃用)、4位TOS字段和1位保留字段。其中,TOS字段分别表示最小延时、最大吞吐量、最高可靠性和最小成本,这四者相互冲突,只能选择一个。
- 总长度:16位,表示IP报文(IP报头+有效载荷)的总长度。
- 标识:16位,唯一标识主机发送的报文。如果数据在IP层进行了分片,那么每一个分片对应的标识都是相同的。
- 标志字段:3位,分别是保留字段、禁止分片和更多分片标志。第二位为1时,表示禁止对数据报进行分片。如果数据报的大小超过了网络的最大传输单元(MTU),则IP模块会丢弃该数据报,而不是尝试对其进行分片。第三位为1表示有更多分片,为0表示无更多分片的状态。
- 片偏移:13位,表示分片相对于原始数据开始处的偏移量。即当前分片在原报文中处在哪个位置,实际偏移的字节数是这个值乘以8。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍,否则报文就不连续了。但在实际中并不建议分片,因为分片后,每一个分片都需要携带到报头。并且,IP中任何一个分片丢失,都需要重新发送。
- 生存时间(TTL):8位,表示数据报到达目的地的最大报文跳数。每经过一个路由器,TTL值减1,直到减为0时仍未到达,则丢弃该数据报,防止路由循环。
- 协议:8位,表示上层协议的类型。
- 首部检验和:16位,使用CRC进行校验,鉴别数据报的首部是否损坏。
- 源IP地址和目的IP地址:各32位,分别表示发送端和接收端所对应的IP地址。
- 选项字段:可选,不定长。最多40字节,用于支持某些特殊功能。
四、网段划分
1、介绍
- 网段划分是网络管理中至关重要的一环,它涉及将IP地址空间划分为不同的子网,以便更有效地管理和分配IP地址。
- 网段划分操作会将IP地址分为两个部分,即网络号和主机号。网络号用于保证相互连接的两个网段具有不同的标识。主机号用于标识该网段中的特定主机,因为在同一网段内,主机之间具有相同的网络号。所以,需要有不同的主机号进行区分。
2、目的
- 提高网络性能:通过划分子网,可以减少网络中的广播流量,从而提高网络的传输效率。
- 实现网络隔离:子网划分可以将不同部门或不同功能的设备划分到不同的子网中,实现网络资源的隔离和访问控制。
- 提高网络安全性:通过子网划分,可以限制不同子网之间的通信,从而增强网络的安全性。
3、方法
- 均等划分:将IP地址空间均等地划分为多个子网,每个子网具有相同数量的主机地址。
- 不均等划分:根据网络的需求,将IP地址空间不均等地划分为多个子网,每个子网具有不同数量的主机地址。
4、步骤
- 确定子网数目和主机数目:根据网络需求和设备数量,确定需要划分的子网数目和每个子网中的主机数目。
- 计算子网掩码:根据子网数目和主机数目,计算出合适的子网掩码。子网掩码的长度决定了网络地址和主机地址的划分方式。
- 划分子网:使用计算出的子网掩码对IP地址空间进行划分,得到多个子网。
- 分配IP地址:将划分好的子网分配给不同的设备或部门,并确保每个设备都有一个唯一的IP地址。
五、基于类别的IP地址分配方式
1、示意图
2、范围
类别 | IP地址范围 |
---|---|
A类 | 0.0.0.0~127.255.255.255 |
B类 | 128.0.0.0~191.255.255.255 |
C类 | 192.0.0.0~223.255.255.255 |
D类 | 224.0.0.0~239.255.255.255 |
E类 | 240.0.0.0~247.255.255.255 |
六、CIDR
1、介绍
- CIDR(无类别域间路由,Classless Inter-Domain Routing)是一种用于给互联网上的大量设备分配IP地址的方法。
- CIDR通过结合IP地址和前缀长度来定义IP地址块,从而更有效地利用可用的IP地址空间。这种方法取代了传统的基于类别的IP地址分配方式(如A类、B类和C类地址),提供了更高的灵活性和效率。
2、组成
- CIDR表示法由两部分组成,分别为IP地址和斜杠(/)后面的数字(称为前缀长度)。
- 前缀长度表示IP地址中固定(即网络部分)的位数。例如,IP地址192.168.1.0/24表示这个地址块的前24位是网络部分,而剩下的8位(对于一个标准的IPv4地址来说)是主机部分,可用于分配给网络中的设备。
3、优点
- 提高IP地址利用率:CIDR允许更灵活地创建不同大小的地址块,从而减少了IP地址的浪费。
- 简化路由表:由于CIDR允许聚合多个连续的IP地址块为一个更大的块,因此可以减小路由器的路由表大小,提高路由效率。
- 支持IPv6:CIDR的概念也适用于IPv6地址,尽管IPv6地址空间如此之大,以至于地址耗尽的问题在可预见的未来不太可能发生。
4、示意图
七、子网掩码
1、介绍
- 子网掩码(Subnet Mask)又叫网络掩码、地址掩码,用于将IP地址划分为网络部分和主机部分,即指明一个IP地址的哪些位标识的是主机所在的子网,哪些位标识的是主机的位掩码。它与IP地址一起使用,通过逻辑运算将IP地址划分为网络标识(Net.ID)和主机标识(Host.ID)。
2、功能
- 屏蔽IP地址:子网掩码能够屏蔽IP地址的一部分,从而区分网络标识和主机标识,并说明该IP地址是在局域网上还是在广域网上。
- 提高IP地址分配效率:子网掩码可以将A、B、C三类地址划分为若干子网,显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的问题。
- 帮助网络设备识别:子网掩码帮助网络设备识别同一网络中的其他设备,并确定数据包的路由路径。通过比较两个设备的网络地址,网络设备可以确定它们是否在同一个子网中。
3、表示方法
- 子网掩码是一个32位的数字,通常表示为四个十进制数,每个数值范围在0到255之间,用点分隔。例如,常见的子网掩码有255.255.255.0和255.255.0.0。
- 在二进制形式中,子网掩码由一系列连续的1和0组成,1表示网络部分,0表示主机部分。例如,255.255.255.0在二进制形式中是11111111.11111111.11111111.00000000。
4、CIDR表示法
- CIDR(无类别域间路由)(参见上方),是一种更灵活的IP地址和子网掩码表示方法,用斜线加数字(如/24)来表示子网掩码中“1”的个数,简化了子网掩码的写法。例如,192.168.1.1/24的子网掩码也可以表示为255.255.255.0。
5、原理
- 子网掩码的工作原理是通过与IP地址进行按位与运算来确定网络地址。将32位的子网掩码与IP地址进行二进制形式的按位逻辑与运算,得到的便是网络地址。
- 通过子网掩码,网络设备可以确定任意IP地址是否属于同一子网,从而进行正确的路由和通信。
6、示例
八、特殊IP地址
1、介绍
- 特殊的IP地址是指在IP地址空间中具有特定用途或含义的地址。这些地址通常不用于分配给常规的网络设备,而是用于描述网络边界、路由协议、协议转换等特定功能。
2、常见的特殊IP地址及其用途
(1)网络号
- IP地址为0.0.0.0,代表“本网络上的本主机”,代表这个局域网。
- 在DHCP申请过程中,设备启动时但还不知道自己的IP地址时会用到。它只能用作源IP地址,不能用作目的地址。
- 当主机向DHCP服务器请求IP地址时,可能会使用0.0.0.0作为源地址,并向255.255.255.255(本网广播地址)发送请求。
(2)广播地址
- 广播地址分为全向广播和定向广播。
- 全向广播(如255.255.255.255)是在整个网络内广播信息。代表“本网广播”,用于向本网络上所有主机广播信息。尽管这个地址在理论上可以广播到整个互联网,但实际上由于网络上的路由器会阻止这种类型的分组被转发出去,因此它仅限于本地网段。
- 定向广播(如192.168.1.255)是在特定网段内广播信息,路由器会将其转发到指定的网络。
(3)环回地址
- IP地址为127.0.0.1,称为“回环地址”或“环回地址”,用于网络连通性测试,本机环回(loop back)测试。
- 当ping127.0.0.1时,实际上是在测试本机网卡是否正常工作以及TCP/IP模块是否安装正确。
3、loop back设备
九、私有IP和公网IP
1、私有IP地址
(1)定义
- 私有IP地址是指在私有网络中使用的IP地址,这些地址仅在私有网络内部使用,不能在公共网络(如互联网)上路由。
(2)地址范围
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
(3)特点
- 提供安全的通信,因为私有IP地址在公网上无法识别。
- 内部IP地址必须通过NAT(网络地址转换)转换成公网上可用的IP地址,才能实现与外部公网的通信。
- 私有IP地址由局域网的管理员自行分配,不需要申请,且可以在同一局域网内重复使用。
2、公网IP地址
(1)定义
- 公网IP地址,全称为公共网络IP地址,是指可以在互联网上被直接访问的IP地址。
(2)特点
- 公网IP在互联网上是全球唯一的标识符,用于标记设备或服务器。
- 允许设备在互联网上进行通信,实现远程访问、文件传输、在线服务等功能。
- 任何具有公网IP的设备都可以被互联网上的其他设备直接访问,无需通过任何代理或中转设备。
3、区别
类别 | 私有IP地址 | 公网IP地址 |
---|---|---|
使用范围 | 用于局域网内部 | 可以在全球范围内访问 |
访问性 | 不能直接访问互联网 | 可以直接被互联网上的其他设备访问 |
分配方式 | 由局域网的管理员自行分配 | 需要向ISP申请并审批 |
安全性 | 相对更安全 | 容易受到外部攻击,需要更多的安全防护措施 |
费用 | 通常是免费的 | 需要支付一定的费用 |
十、路由器
1、定义与功能
- 路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用。它能够将数据包通过一个个网络传送至目的地,这个过程称为路由。
- 具体来说,路由器会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。它具有判断网络地址和选择IP路径的功能,能在多网络互联环境中建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网。
- 路由器一般是一个子网中的第一台设备,一般他的IP地址都是网络号.1。路由器不仅仅只有IP报文转发的功能,还有构建子网(局域网)的功能。
2、示意图
3、说明
- 一个路由器可以配置两个IP地址,分别是WAN口IP和LAN口IP(子网IP)。
- 路由器LAN口连接的主机,都从属于当前这个路由器的子网中。不同路由器中的子网IP其实都是一样的(通常都是192.168.1.1)。其中子网内的主机IP地址不能重复,但是子网之间的IP地址可以重复。
- 每一个家用路由器,其实又作为运营商路由器的子网中的一个节点。这样的运营商路由器可能会有很多级,最外层的运营商路由器,WAN口IP就是一个公网IP。
- 子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WAN口IP),这样逐级替换,最终数据包中的IP地址成为一个公网IP。这种技术称为NAT(Network Address Translation,网络地址转换)。
4、工作原理
- 路由器的工作原理是根据路由表项为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包传送到目的主机。
- 若路由表中存在到目的IP所在网段的路由,则根据对应路由条目的出接口和下一跳地址,从路由器的接口转发至下一跳;若不存在到目的IP所在网段的路由,但存在默认路由,则直接交由默认路由转发,否则直接丢弃该数据包。
- 路由器收到IP报文后,会将该报文内的目的IP地址和路由器的路由表中对应条目的子网掩码做与运算得到网络号,如果与该条目的网络地址不符,且路由表内有多条条目,则会对剩余条目继续进行上述操作。
- 如果IP地址和对应条目的子网掩码做与运算后得到符合且对应的目的网络地址,则从对应的发送接口发送出去(直接发送给目标主机)。因为该网络号是与该发送接口直接相连的网络,所以,可以直接发到目的主机而不需要经路由器转发。
- 如果要发送的数据包的目的地址依次与路由表前几项条目进行对比后都不匹配。如果不存在缺省路由(默认路由),则丢弃;否则,按缺省路由条目,从对应的发送接口发送出去,发往下一跳路由器,再由下一跳路由器根据它的路由表决定下一跳地址。
5、示意图
本文到这里就结束了,如有错误或者不清楚的地方欢迎评论或者私信
创作不易,如果觉得博主写得不错,请点赞、收藏加关注支持一下💕💕💕
相关文章:
IP 协议
IP协议 一、介绍1、IP协议2、IPv43、IPv6 二、主要功能三、协议格式1、示意图2、说明 四、网段划分1、介绍2、目的3、方法4、步骤 五、基于类别的IP地址分配方式1、示意图2、范围 六、CIDR1、介绍2、组成3、优点4、示意图 七、子网掩码1、介绍2、功能3、表示方法4、CIDR表示法5…...
【Docker】创建Docker并部署Web站点
要在服务器上创建Docker容器,并在其中部署站点,你可以按照以下步骤操作。我们将以Flask应用为例来说明如何完成这一过程。 1. 准备工作 确保你的服务器已经安装了Docker。如果没有,请根据官方文档安装: Docker 安装指南 2. 创…...
【C语言的奥秘9】数据类型总结
一、数据类型的介绍 数据类型是按被定义变量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。 基本数据类…...
EasyExcel注解使用
上接《Springboot下导入导出excel》,本篇详细介绍 EasyExcel 注解使用。 1. ExcelProperty value:指定写入的列头,如果不指定则使用成员变量的名字作为列头;如果要设置复杂的头,可以为value指定多个值orderÿ…...
什么是多模态和模态
文章目录 前言一、定义1. 模态 (Modal)2. 非模态 (Non-modal) 二、GUI中1. 模态(Modal)对话框2. 非模态(Modeless)对话框 三、模态 vs 非模态 的对比四、何时使用模态和非模态对话框?五、Qt 中 exec() 与 show() 的区别…...
【系统架构设计师】真题论文: 论NoSQL数据库技术及其应用(包括解题思路和素材)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2018年 试题4)解题思路论文素材参考真题题目(2018年 试题4) 随着互联网 web2.0 网站的兴起,传统关系数据库在应对 web2.0 网站,特别是超大规模和高并发的 web2.0 纯动态 SNS 网站上已经显得力不从心…...
TCP/IP 协议图--计算机网络体系结构分层
计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”...
【Android】Intent类详解
目录 引言 一、Intent的定义 二、Intent的用途 三、Intent的七大属性 四、Intent的种类 4.1 显式Intent 4.2 隐式Intent 五、代码示例 5.1 activity_intent.xml 5.2 IntentActivity.java 5.3 AndroidManifest.xml 5.4 实现效果 结语 引言 Intent在Android开发…...
【LeetCode刷题之路】64.最小路径和 (动态规划入门)
LeetCode刷题记录 🌐 我的博客主页:iiiiiankor🎯 如果你觉得我的内容对你有帮助,不妨点个赞👍、留个评论✍,或者收藏⭐,让我们一起进步!📝 专栏系列:LeetCode…...
Facebook:筑牢隐私安全堡垒,守护社交净土
在全球社交媒体平台中,Facebook一直是风靡全球的佼佼者。然而,随着数字化信息的迅速膨胀,用户隐私保护的重要性日益凸显。面对用户对数据安全性的高度重视,Facebook致力于通过一系列措施来确保隐私保护,守护每位用户的…...
MongoDB 索引类型详解
MongoDB 索引类型详解 在 MongoDB 中,索引是提高查询效率、优化数据库性能的重要手段。MongoDB 支持多种类型的索引,每种索引类型适用于不同的查询需求和场景。本文将详细介绍 MongoDB 中几种常见的索引类型、示例及其限制。 1. 单字段索引(…...
国家信息中心单志广:智慧城市转型中的数据要素价值释放
今日,由中国电信集团主办的2024数字科技生态大会数据要素合作论坛在广州市举办。国家发改委国家信息中心信息化和产业发展部主任单志广在论坛发展主旨演讲:智慧城市转型中的数据要素价值释放,主要包括发展新形势、数据新要素、数据新产权、数…...
底层逻辑之:欧拉-拉格朗日方程(Euler-Lagrange equations)变分法(Calculus of Variations)的核心思想
0前言: 0.1 17世纪的泛函(Functional)分析与变分法(Calculus of Variations) 在17世纪,数学家们开始遇到一些需要处理函数集合的问题,这些问题涉及到函数的极值、曲线的长度、曲面的面积等。这…...
2024-12-03OpenCV图片处理基础
OpenCV图片处理基础 OpenCV的视频教学:https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV摄像头读取 OpenCV使用摄像头读取图片帧,点击S保存当前帧到指定文件夹,点击Q关闭窗口,点击其他按钮打印按钮的值 要实现这个功能&…...
【汇编语言】标志寄存器(二) —— 标志位驱动的计算:ADC、SBB 和 CMP 的巧妙应用
前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优…...
Java刷题训练第一期
个人主页:手握风云 专栏:Java刷题训练营 1. 字符转ASCII码 问题描述:BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,输入一个字符,输出该字符相应的ASCII码。 输入描述…...
【leetcode100】矩阵置零
1、题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 2、初始思路 2…...
【MySQL 进阶之路】SQL 优化
6.SQL 性能分析笔记 在现代数据库的高并发环境下,SQL 查询优化成为提升系统性能和响应速度的关键。本文将总结常见的 SQL 优化策略,包括插入优化、主键设计、排序优化、GROUP BY 优化等,帮助你在面对大规模数据时,做到高效查询和…...
本地部署开源趣味艺术画板Paint Board结合内网穿透跨网络多设备在线绘画
文章目录 前言1.关于Paint Board2.本地部署paint-board3.使用Paint Board4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Paint Board公网地址 前言 大家好,是不是每次想要在电脑上画画时,都被那些笨重的专业绘图软件搞得头大如斗呢?…...
位图(bitmap)和布隆过滤器(bloom_filter)
1.位图-Bitmap 1.1问题引入 :给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中? 40亿个无符号整数大约16G的大小,用map或者set显然是无法支持海量数据的存储。那么我们能否不存储数…...
如何使用JDBC向数据库中插入日期数据???
在学习JDBC 的过程中很多小明有疑问在IDEA编辑器是如何插入一个日期类型的数据的,此篇一些方法希望可以帮助到你。 示例: import java.text.ParseException; import java.text.SimpleDateFormat; import java.sql.Date; import java.util.Scanner;publi…...
电子系统设计实验4 信号发生电路设计实验
一、实验目的 1. 掌握正弦信号发生器的设计方法。 2. 掌握方波发生器的设计方法。 二、实验内容及结果 1. 实验内容 设计一用于RFID读卡器测试的幅移键控发生器(ASK),其结构如图4-1所示。正弦振荡器输出频率为150kHz,幅度为3V…...
【Docker】Linux与Windows系统安装Docker+Docker上简单安装MySQL
一、Windows安装Docker 由于我在许多平台搜索Windows下安装Docker的方法,都提到了Win10家庭版无法直接安装Docker。个人电脑就是Win10家庭版,本着实践出真知的想法,个人在本机Win10家庭版实验结果为需要采用下述传统手动安装的办法ÿ…...
linux更新镜像源
镜像源地址 1 阿里云 http://mirrors.aliyun.com/ubuntu/ 2 网易源 http://mirrors.163.com/ubuntu/ 3 浙大源 http://mirrors.zju.edu.cn/ubuntu 4 中科大源 http://mirrors.ustc.edu.cn/ubuntu/ 5 清华源 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ 更新镜像源 此处…...
HarmonyOS 5.0应用开发——UIAbility生命周期
【高心星出品】 文章目录 UIAbility组件创建AbilityUIAbility的生命周期Create状态WindowStageCreate状态Foreground和Background状态WindowStageWillDestroy状态Destroy状态 UIAbility组件 UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。 UIAbility组…...
【Linux】C语言实现简易的Linux shell命令行解释器
我们要实现自己的简易的shel,先了解一下shell运行原理。 1. shell运行原理 shell从用户读入字符串"ls"。shell建立一个子进程,在子进程中运行ls程序并等待进程结束。 然后shell读取新的一行输入,建立一个新的子进程,在…...
构建个人大模型问答助手(基于Streamlit +gpt-4o/o1-mini):全面解析与实现
在当今人工智能迅猛发展的时代,构建一个个人化的大模型问答助手不仅能够提高工作效率,还能为日常生活带来便利。本篇博客将详细解析如何使用Python和Streamlit框架,结合OpenAI的API,搭建一个类似于ChatGPT的问答系统。我们将分步骤…...
10.请求拦截和响应拦截
文章目录 前言前景回顾拦截器应用请求拦截器响应拦截器测试响应拦截器原理 总结 前言 优秀的设计总是少不了丰富的扩展点, 比如spring可以自动装配, aop扩展, web模块也有拦截器, 甚至对servlet的过滤器都有封装; 再比如netty、doubbo等等都支持在数据流入流出都允许用户自定义…...
github使用SSH进行克隆仓库
SSH 密钥拉取git 查询密钥是否存在 s -al ~/.ssh这个文件夹下 known_hosts 就是存在的密钥文件 创建密钥文件 ssh-keygen -t rsa -b 4096 -C "testtt.com"-t rsa 是 rsa 算法加密 -b 是指定密钥的长度(以位为单位)。 -C 是用于给密钥添加注…...
如何成长为一名工程技术经理
https://medium.com/srivatsan-sridharan/how-to-grow-as-an-engineering-manager-687cad0bcac7 作为一名工程技术经理,你可能已经积累了丰富的团队管理经验,并展示了出色的项目管理、优先级管理和员工指导能力。然而,尽管如此,你…...
前端热门面试题目(四五六七)
1. 使用 import 时,Webpack 如何处理 node_modules 中的依赖? 依赖解析: Webpack 遇到 import 时,利用 resolve 配置查找依赖。如果是第三方依赖(node_modules),Webpack 会优先查找其主入口&…...
三、使用 Maven:命令行环境
文章目录 1. 第一节 实验一:根据坐标创建 Maven 工程1.1 Maven 核心概念:坐标1.2 实验操作1.3 Maven核心概念:POM1.4 Maven核心概念:约定的目录结构 2. 实验二:在 Maven 工程中编写代码2.1 主体程序2.2 测试程序 3. 执…...
深度学习在网络管理中的应用:智能化的新时代
网络管理在现代信息技术中占据着举足轻重的地位。随着网络规模的扩大和复杂性的增加,传统的网络管理手段已经无法满足日益增长的需求。深度学习作为人工智能的一个重要分支,通过其强大的数据处理和模式识别能力,为网络管理带来了新的契机。本…...
微信小程序日期格式化报错: iOS 下无法正常使用,iOS 只支持 “yyyy/MM/dd“、“yyyy/MM/dd HH:mm:ss“、“yyyy-
微信小程序日期格式化报错 报错内容解决办法 报错内容 at formatDate (http://127.0.0.1:10118/appservice-hotreload/pages/index/index.js?1;:103:18) new Date(“2024-11-27 15:05:23”) 在部分 iOS 下无法正常使用,iOS 只支持 “yyyy/MM/dd”、“yyyy/MM/dd H…...
第K大数求解方案
思想:利用快速排序的思想,从数组S中随机找出一个元素X,把数组分为两部分Sa和Sb。Sa中的元素大于等于X,Sb中元素小于X。这时有两种情况: 1. Sa中元素的个数小于k,则Sb中的第k-|Sa|个元素即为第k大数…...
【AI系统】MobileFormer
MobileFormer 在本文中,将介绍一种新的网络-MobileFormer,它实现了 Transformer 全局特征与 CNN 局部特征的融合,在较低的成本内,创造一个高效的网络。通过本节,让大家去了解如何将 CNN 与 Transformer 更好的结合起来…...
《重生之我学VTK》-- 基本介绍与相关概念
目录 简介 可视化模型 示例(圆锥体) VTK官方用户手册(中文C版)附末尾,有需要的直接划到末尾 简介 VTK(Visualization Toolkit)是一个开源的、跨平台的软件系统,主要用于三维计算机图…...
HTML笔记()蜘蛛纸牌之卡牌拖拽
效果 代码 <!DOCTYPE html> <html><head><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #2b2b2b;position: relative;}.card{/*设置卡牌的外观*/width: 150px;height: 200px;background-…...
记一次跑前端老项目的问题
记一次跑前端老项目的问题 一、前言二、过程1、下载依赖2、启动项目3、打包 一、前言 在一次跑前端老项目的时候,遇到了一些坑,这里记录一下。 二、过程 1、下载依赖 使用 npm install下载很久,然后给我报了个错 core-js2.6.12: core-js…...
041_Compare_Matrix_Squre_Sum_in_MATLAB中矩阵平方和的比较
矩阵平方和的计算 矩阵平方和的定义 矩阵平方和的定义是对矩阵中的每一个元素进行平方,然后求和。 对于一个矩阵 A A A,其平方和定义为: sum ∑ i 1 m ∑ j 1 n A ( i , j ) 2 \text{sum} \sum_{i1}^{m}\sum_{j1}^{n} A(i,j)^2 sumi1∑…...
vue3中 axios 发送请求 刷新token 封装axios
service.js 页面 import axios from axios // 创建axios实例 const instance axios.create({baseURL: http://gcm-test.jhzhkj.cn:8600/h5card/,timeout: 5000, // 请求超时时间headers: {get: {Content-Type: application/x-www-form-urlencoded},post: {Content-Type: appl…...
vue+mars3d叠加展示arcgis动态服务
数据格式:使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…...
PostgreSQL 中进行数据导入和导出
在数据库管理中,数据的导入和导出是非常常见的操作。特别是在 PostgreSQL 中,提供了多种工具和方法来实现数据的有效管理。无论是备份数据,还是将数据迁移到其他数据库,或是进行数据分析,掌握数据导入和导出的技巧都是…...
Stable Audio Open模型部署教程:用AI打造独家节拍,让声音焕发新活力!
Stable Audio Open 是一个开源的文本到音频模型,允许用户从简单的文本提示中生成长达 47 秒的高质量音频数据。该模型非常适合创建鼓点、乐器即兴演奏、环境声音、拟音录音和其他用于音乐制作和声音设计的音频样本。用户还可以根据他们的自定义音频数据微调模型&…...
python更新程序并部署服务器服务
本地客户端程序 import json import hashlib import os import shutil import requests from pathlib import Pathclass AutoUpdater:def __init__(self, config_path"http://【XXXIP地址】/update_config"):self.config_path config_pathself.config Nonewith op…...
Nmap 扫描技巧:自定义端口、扫描速度与并行化设置
Nmap 扫描技巧:自定义端口、扫描速度与并行化设置 在进行网络安全扫描时,Nmap 是一个非常强大的工具。除了默认扫描 1000 个端口外,你还可以根据需要自定义扫描的端口、调整扫描速度以及优化扫描并行化。今天,我们就来介绍如何通…...
从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型
从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型 前言一、盒子模型的组成margin(外边距):border(边框):padding(内边距):conten…...
Linux命令行下载工具
1. curl 1.1. 介绍 curl是一个功能强大的命令行工具,用于在各种网络协议下传输数据。它支持多种协议,包括但不限于 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、SMTP、POP3、IMAP 等,这使得它在网络数据交互场景中有广泛的应用。curl可以模拟浏览器…...
Navicat 连接 SQL Server 详尽指南
Navicat 是一款功能强大的数据库管理工具,它提供了直观的图形界面,使用户能够轻松地管理和操作各种类型的数据库,包括 SQL Server。本文将详尽介绍如何使用 Navicat 连接到 SQL Server 数据库,包括安装设置、连接配置、常见问题排…...
黑马JavaWeb-day06、07、08(SQL部分) _
文章目录 MYSQL概述数据模型SQL简介SQL分类 DDL数据库操作表操作 DML增(INSERT)改(UPDATE)删(DELETE) DQL基本查询条件查询(where)分组查询(group by)排序查询…...