网络(三) 协议
目录
1. IP协议;
2. 以太网协议;
3. DNS协议, ICMP协议, NAT技术.
1. IP协议:
1.1 介绍:
网际互连协议, 网络层是进行数据真正传输的一层, 进行数据从一个主机传输到另一个主机. 网络层可以将数据主机进行传送, 那么传输层保证数据可靠性, 一起就是TCP/IP协议.
路径选择: 确认目的主机之后, 就要找到最短路径将数据给主机. 这里是不是和图数据结构很类似, 找到最短路径. 找寻的时候和路由器来确认目的主机的位置.
主机和路由器: 主机配有IP地址,但是不进行路由控制的设备. 路由器: 既配有IP地址,又能进行路由控制.
1.2 IP协议格式:
版本号: IP协议的版本; 首部长度: 报文长度, 总长度: 报头+有效载荷.
16位标识: 唯一的标识主机发送的报文,如果数据在IP层进行了分片,那么每一个分片对应的id都是相同的。
3位标志位段: 第一位: 保留, 第二位: 禁止分片, 第三位: 更多分片.
13位片偏移:分片相对于原始数据开始处的偏移.
8位协议: 协议类型;
16位首部检验和:使用CRC进行校验,来鉴别数据报的首部是否损坏,但不检验数据部分。
socket里需要IP和port就是给网络层ip使用, 进行路由转接工作的. 端口号是给tcp和udp使用的.
1.3 分片和组装:
数据链路层解决问题, MTU: IP交给MAC帧的报文不能超过某个值,这个值就叫做最大传输单元, 一般是1500字节. 如果超过1500字节就需要进行分片, 再交给mac帧进行传输.
到达对端网络层就需要先组装再进行给传输层传送.
一般是不会进行分片的, 会增加丢包的概率, 数据在路由器中也可能进行分片,
数据的分片和组装完全是由IP协议自己完成的,传输层和链路层不必关心也不需要关心。
如果一个数据包是4500字节, 那么就是采用分片, 分成4个数据片进行发送. 到达对端主机后还有16位标识, 标识一个分片完的数据是一个ip协议出去的. 3位标志和13位片偏移标识分片组合需要的偏移量(离第一个片段的位置), 1480 / 8 = 185.
组装的过程:
IP报头里面有源ip地址, 可以区分不同主机的数据, 16位标识表示来自哪个数据分片进行分片出来的.通过这两个就可以把数据进行组装.
第一个分片的片偏移一定是0, 最后一个分片报文的标志位一定是0, 以及片偏移是按照字节数/ 8进行的, 按照以上规则在进行组装.
分片丢包:
如果第一个分片报文丢了, 那么接收不到片偏移为0的报文, 最后一个分片报文丢了标志位为0的就找不到, 以及其他丢了就找不到片偏移为特殊值的报文.
为啥不建议分片?
因为数据必须进行组装全部之后才可以确认接收到了, 会大大降低传输效率, 增加丢包可能性的, 而且进行数据重传只能全部传递. 最好是一次交给ip协议的报文不要太大, 在1460字节之内(除去报文长度),
1.4 网段划分:
IP地址是由网络号和主机号组成的, 网络号: 保证相连的两个网段具有不同的标识,
主机号: 同一个网络中, 拥有同一个网络号, 但是主机号一定不一样.
找主机, 先查找对应的网段号, 然后进对应网段, 查找对应的主机号,
1.5 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。
计算方式: 2^7 = 128为A类地址, 2^16 = 65536个就是B类; C类就是16,842,752个.
那么必定会有大量的IP被浪费就使用到子网掩码, IP地址和子网掩码进行按位与就可以的得到网络号. 对应就是和255.255.255.0进行按位与.
特殊IP地址:
全0就是该子网的网络号, 全1就是该子网的广播地址, 127.*就是本地回环地址.本地环回原理: 其实是数据贯穿网络协议栈, 但是不会到网络中以及网卡中.自顶向下进行解包和封装一次, 来测试本地释放正常. 首先会放在IP输入队列中然后判断是否为本地IP和广播IP,
不是就向下交付, 是的话就进行重新放到输入IP队列中.
IP地址不够:
2^32就是大概就是43亿个IP地址, 但是远远不够, 可以使用子网划分以外还可以使用IPV6, 2^64就有数非常大的. 其次使用NAT技术(不同子网存在相同的主机号), 后面具体说.
私网IP和公网IP:
私网IP: 不连接到网络中, 公网IP是可以访问到网络的.
数据是如何发送到服务器的?
LAN口: 连接本地的网络接口, WAN口: 连接互联网的网络接口.
为什么私网IP不能出现在公网当中?
因为私网IP无法标识主机的唯一性, 而且私网IP可以解决IP地址不足的问题, 但是一个网络中的主机无法标识.
1.6 路由:
路由器在查找目的ip的时候进行一跳跳的就是源mac地址到目的mac地址的过程.
路由器在查找路由表时候就给出下一跳到哪里去. route指令就可以进行查询.
相对应还有路由表生成算法.
2. 以太网协议:
2.1 介绍:
是数据链路层协议, 将数据转到到下一跳主机实际是属于局域网通信范畴的,而这实际就是链路层需要解决的问题.
以太网: 最普遍的一种局域网技术.
令牌环网: 无线LAN/WAN, 虽然采用的局域网技术不一样, 但是在网络协议栈中屏蔽底层差异, 发送的时候进行封装对应的局域网技术报头, 然后在向上交付时候去掉报头加上其他局域网报头, 然后再根据网络协议栈进行向上进行交付.
2.2 以太网原理:
以太网不是一种具体的网络而是一种技术标志, 数据链路层还包含了物理层的内容, 必须使用双绞线, 以及网络的拓扑结构.
令牌环网络:
逻辑上是环形拓扑结构, 可以避免数据碰撞, 因为只有拿到令牌的主机才可以发送数据.
2.3 以太网协议的格式:
类型只有IP协议, ARP协议和RARP协议, CRC是校验和.
例子: 主机A找到主机B, 帧协议的类型为0800.
如果主机A收到MAC帧之后就会进行CRC校验, 失败找到发送数据碰撞, 然后就重新发送.
如果主机B收到mac帧之后进行crc验证, 发现mac帧和主机一样就会向上进行交付.
在局域网中收到其他收到mac帧之后进行crc验证不对就丢弃了.
2.4 MAC地址和MTU:
MAC地址: 出厂就设置好啦, 无法修改, 具有唯一性.
MTU: 最大传输单位, 标识数据链路层一次最多发送的数据. 一般是1500字节, 超过就要在ip层进行分片, 然后就是MAC最少数据就是46字节.
2.5 MTU的影响:
(1) 对IP协议的影响:
会导致如果大于1500字节就会进行分片, 然后到达对端主机就会进行组装.
(2) 对UDP协议的影响:
因为IP报文和udp报文一起是20+8 = 28; 那么超过1500-28 = 1472字节就会进行分片. 会增加udp报文丢失的概率.
(3) 对TCP的影响:
增加TCP丢包的概率, 一般降低重传的次数, 会MSS和MTU的最小值进行设置传送大小.
2.6 ARP协议:
(1) 认识:
由IP地址推出MAC地址, 因为在局域网的路由器找到主机就需要mac帧.
(2) ARP协议格式:
路由器先构建ARP协议请求, op置为1(arp请求), 2是arp应答. 硬件类型字段设置为1, 因为是以太网协议, 协议类型设置为0800,因为路由器是要根据主机B的IP地址来获取主机B的MAC地址, 硬件地址长度和协议地址长度分别设置为6和4,因为MAC地址的长度是48位,IP地址的长度是32位。发送端以太网地址和发送端IP地址,对应就是路由器D的MAC地址和IP地址, 因此将目的以太网地址的二进制序列设置为全1,表示在局域网中进行广播.
arp请求:
arp应答:
arp向下还要包装成mac帧才可以进行发送.
(3) RARP协议:
通过MAC地址找到IP地址.
3. DNS协议:
DNS: 域名系统, 将域名转化成IP地址的应用层协议. 一级域名: .com .net .org .eng等;
二级域名: 一般是公司名.
DNS协议的原理:
在浏览器中输入url, 然后进行域名解析, 首先会在浏览器的DNS缓存查询对应域名, 有就完成解析; 没有到操作系统中的DNS缓存, 还是没有就到本地的hosts文件, 一直到下层进行查询.
3.2 ICMP协议:
Internet控制报文协议, ICMP协议是属于IP协议的上层协议.
作用:
确认IP包是否成功到达目标地址, 通知在发送过程中IP包丢弃的原因. 例如主机B关机了,
很久主机A得不到响应, 就是使用ICMP协议来看看是啥原因.
3.3 NAT技术:
网络地址转换技术, 解决IP地址不足的主要手段,并且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机. 在局域网中将全局IP转化成私有IP, 路由器的话就相反.
造成一种局域网中相同IP的私有IP不会冲突, 出了局域网就改变公网IP即可. 其中使用NATP来进行公网IP和私网IP的转换.
NAT技术也有缺点: 就是无法从NAT外部向内部服务器建立连接,因为外部无法知道内部的私网IP,也就无法主动与内部服务器建立连接。转换表的生成和销毁都需要额外开销。通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开。
3.4 正反向代理:
正向代理: 客户端和服务器之间的代理服务器, 客户端访问代理服务器, 由代理服务器去访问服务器. 可以加快访问资源, 如果大量访问同一个资源就放在代理服务器中就无需总是访问外网.
反向代理: 对于客户端而言,反向代理服务器就相当于目标服务器,用户不需要知道目标服务器的地址,用户只需要访问反向代理服务器就可以获得目标服务器提供的服务. 可以起到负载均衡的作用.
相关文章:
网络(三) 协议
目录 1. IP协议; 2. 以太网协议; 3. DNS协议, ICMP协议, NAT技术. 1. IP协议: 1.1 介绍: 网际互连协议, 网络层是进行数据真正传输的一层, 进行数据从一个主机传输到另一个主机. 网络层可以将数据主机进行传送, 那么传输层保证数据可靠性, 一起就是TCP/IP协议. 路径选择: 确…...
【mptcp】ubuntu18.04和MT7981搭建mptcp测试环境操作说明
目录 安装ubuntu18.04,可以使用虚拟机安装... 2 点击安装VMware Tool 2 更新ubuntu18.04源... 4 安装ifconfig指令工具包... 5 安装vim工具包... 5...
递归的本质
字节面试题叠罗汉,很遗憾没想出来,看了答案挺巧妙的,但是居然是个案例题。。。 复习一下递归的本质 正面解决问题 利用子问题来解决 可以通过规约推导的,基本可以用递归解决! 在写这道算法题时,我想规…...
如何使用tmux !
在tmux的界面按住shift,就可以和普通linux界面一样!!!!!!!! 单击右键可以复制粘贴,滚动鼠标可以上下翻页!!!!…...
【Vim Masterclass 笔记25】S10L45:Vim 多窗口的常用操作方法及相关注意事项
文章目录 S10L45 Working with Multiple Windows1 水平分割窗口2 在水平分割的新窗口中显示其它文件内容3 垂直分割窗口4 窗口的关闭5 在同一窗口水平拆分出多个窗口6 关闭其余窗口7 让四个文件呈田字形排列8 光标在多窗口中的定位9 调节子窗口的尺寸大小10 变换子窗口的位置11…...
C语言练习(16)
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第10天早上想再吃时,见只剩一个桃子了…...
【0x0012】HCI_Delete_Stored_Link_Key命令详解
目录 一、命令参数 二、命令格式及参数 2.1. HCI_Delete_Stored_Link_Key 命令格式 2.2. BD_ADDR 2.3. Delete_All 三、生成事件及参数 3.1. HCI_Command_Complete事件 3.2. Status 3.3. Num_Keys_Deleted 四、命令执行流程 4.1. 命令发送阶段 4.2. 控制器处理阶段…...
学习ASP.NET Core的身份认证(基于JwtBearer的身份认证10)
基于Cookie传递token的主要思路是通过用户身份验证后,将生成的token保存到Response.Cookies返回客户端,后续客户端访问服务接口时会自动携带Cookie到服务端以便验证身份。之前一直搞不清楚的是服务端程序如何从Cookie读取token进行认证(一般都…...
应用层协议 HTTP 讲解实战:从0实现HTTP 服务器
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 HTTP 协议 🦋 认识 URL🦋 urlencode 和 urldecode 二:🔥 HTTP 协议请求与响应格式 🦋 HTTP 请求…...
Linux权限管理:从用户切换到文件权限
在Linux系统中,权限管理是确保系统安全和资源合理分配的核心机制。它通过用户和用户组的管理、文件权限的设置以及特殊权限的使用,实现了对系统资源的精细控制。 一、用户切换:su 和 sudo 1. 用户切换命令 su su(switch user&a…...
PyQt5超详细教程终篇
PyQt5超详细教程 前言 接: [【Python篇】PyQt5 超详细教程——由入门到精通(序篇)](【Python篇】PyQt5 超详细教程——由入门到精通(序篇)-CSDN博客) 建议把代码复制到pycahrm等IDE上面看实际效果,方便理…...
Alibaba Spring Cloud 四 Seata 的核心组件:TC
Seata 的 Transaction Coordinator (TC) 是分布式事务架构中的核心组件之一,它负责管理全局事务的生命周期,包括事务的创建、状态维护以及协调各分支事务的提交和回滚。以下是有关 TC 的详细解析及其配置和使用方法: 1. TC 的核心功能 全局事…...
机器学习-线性回归(简单回归、多元回归)
这一篇文章,我们主要来理解一下,什么是线性回归中的简单回归和多元回归,顺便掌握一下特征向量的概念。 一、简单回归 简单回归是线性回归的一种最基本形式,它用于研究**一个自变量(输入)与一个因变量&…...
Java如何向http/https接口发出请求
用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一个工具类 import javax.net.ssl.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Outpu…...
three.js+WebGL踩坑经验合集(1):THREE.Line无故消失的元凶
在项目开发过程中,笔者两次遇到同事的一个提问,我场景中的Line在相机旋转到某些角度或者移动到某些位置的时候会无故消失。由于业务场景复杂,所以这两位同事都是先花费了大量时间排查业务问题,然后才找我求助。这个问题抽象出来的…...
【ROS】RViz2源码分析(四):初始化、启动
【ROS】郭老二博文之:ROS目录 1、简述 RViz2在main函数中,首先注册日志处理函数; 将 RCLCPP_DEBUG 等日志记录函数,通过 rviz_common::set_logging_handlers() 注册到 rviz_common 中。然后,创建界面类 rviz_common::VisualizerApp,并执行初始化 vapp.init(argc, argv)…...
【MySQL】 库的操作
欢迎拜访:雾里看山-CSDN博客 本篇主题:【MySQL】 库的操作 发布时间:2025.1.23 隶属专栏:MySQL 目录 库的创建语法使用 编码规则认识编码集查看数据库默认的编码集和校验集查看数据库支持的编码集和校验集指定编码创建数据库验证不…...
豆包MarsCode 蛇年编程大作战 | 高效开发“蛇年运势预测系统”
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 豆包MarsCode 蛇年编程大作战 | 🐍 蛇年运势预测 在线体验地址:蛇年…...
新能源汽车充电桩选型以及安装应用
摘要:随着当前经济的不断发展,国家的科技也有了飞速的进步,传统的燃油汽车已经不能适应当前社会的发展,不仅对能源造成巨大的消耗,还对环境造成了污染,当前一种新型的交通运输工具正在占领汽车市场。在环境问题和能源问题愈发严重的当今社会,节能减排已经成为全世界的共同课题,…...
docker Ubuntu实战
目录 Ubuntu系统环境说明 一、如何安装docker 二、发布.netcore应用到docker中 三、查看docker信息 Ubuntu系统环境说明 cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.5 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.5 LTS (…...
w-form-select.vue(自定义下拉框组件)(与后端字段直接相关性)
文章目录 1、w-form-select.vue 组件中每个属性的含义2、实例3、源代码 1、w-form-select.vue 组件中每个属性的含义 好的,我们来详细解释 w-form-select.vue 组件中每个属性的含义,并用表格列出它们是否与后端字段直接相关: 属性解释表格&…...
深入探索 Nginx 的高级用法:解锁 Web 服务器的强大潜能
在当下互联网技术飞速发展的浪潮中,Nginx 凭借其轻量级、高性能的特性,在 Web 服务器和反向代理服务器领域脱颖而出,成为众多开发者和运维工程师的得力工具。它不仅能高效处理静态资源,在负载均衡、反向代理等方面也表现出色。然而…...
iOS开发设计模式篇第二篇MVVM设计模式
目录 一、什么是MVVM 二、MVVM 的主要特点 三、MVVM 的架构图 四、MVVM 与其他模式的对比 五、如何在iOS中实现MVVM 1.Model 2.ViewModel 3.View (ViewController) 4.双向绑定 5.文中完整的代码地址 六、MVVM 的优缺点 1.优点 2.缺点 七、MVVM 的应用场景 八、结…...
kettle与Springboot的集成方法,完整支持大数据组件
目录 概要整体架构流程技术名词解释技术细节小结 概要 在现代数据处理和ETL(提取、转换、加载)流程中,Kettle(Pentaho Data Integration, PDI)作为一种强大的开源ETL工具,被广泛应用于各种数据处理场景。…...
详解:TCP/IP五层(四层)协议模型
一.五层(四层)模型 1.概念 TCP/IP协议模型分为五层:物理层、数据链路层、网络层、传输层和应用层。这五层每一层都依赖于其下一层给它提供的网络去实现需求。 1)物理层:这是最基本的一层,也是最接近硬件…...
(七)Mapbox GL JS 表达式初识
以下是关于如何在 Mapbox GL JS 中使用表达式的详细讲解和代码示例。 文章目录 什么是 Mapbox GL JS 表达式?使用场景步骤1. 初始化地图2. 解释表达式 总结 什么是 Mapbox GL JS 表达式? Mapbox GL JS 表达式是一种灵活的样式语言,允许你在 …...
阿里巴巴开发规范手册MySQL
1、MySQL 数据库 1.1、建表规约 1) 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 注…...
SpringCloud微服务Gateway网关简单集成Sentinel
Sentinel是阿里巴巴开源的一款面向分布式服务架构的轻量级流量控制、熔断降级组件。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助保护服务的稳定性。 官方文档:https://sentinelguard.io/zh-cn/docs/introduction.html …...
Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到
Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到 这次在windows的WSL2中遇到了一个非常奇怪的错误,就是 CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find BLAS (missing: BLAS_LIBRAR…...
私有IP、VLAN和VPC,分别适合哪些场景你知道吗?
当我们在云中构建应用程序,尤其是使用了第三方云服务商的服务并且我们无法完全掌控后端的每部分时,安全性可能是最需要关注的地方。但这是一项充满挑战的工作,因为保护应用程序的方法实在是太多了!为了改善安全性,开发…...
【学术会议论文投稿】深度解码:机器学习与深度学习的界限与交融
目录 一、定义与起源:历史长河中的两条轨迹 二、原理差异:从浅层到深层的跨越 三、代码解析:实战中的机器学习与深度学习 机器学习示例:线性回归 深度学习示例:卷积神经网络(CNN) 四、应用差异:各自领…...
一位前端小白的2024总结
目录 简要 一、迷茫点的解决 (1)前端领域该怎么学? (2)旧技术还需要学吗? (3)我该学些什么? 二、折磨点的解决 (1)学技术成果回报太慢怎么…...
状态模式——C++实现
目录 1. 状态模式简介 2. 代码示例 3. 单例状态对象 4. 状态模式与策略模式的辨析 1. 状态模式简介 状态模式是一种行为型模式。 状态模式的定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 通俗的说就是一个对象…...
C# 控制打印机:从入门到实践
在开发一些涉及打印功能的应用程序时,使用 C# 控制打印机是一项很实用的技能。这篇文章就来详细介绍下如何在 C# 中实现对打印机的控制。 一、准备工作 安装相关库:在 C# 中操作打印机,我们可以借助System.Drawing.Printing命名空间&#x…...
【一个按钮一个LED】用STM32F030单片机实现苹果充电器的定时装置
文章目录 前言一、要实现的功能1、循环定时2、倒计时3、指示灯提示4、使用场景二、实现方法1、使用方法2、电路设计三、程序代码和成品1.定时中断子程序2.键值处理3.主函数总结前言 笔者前几年买苹果手机、IPAD配的适配器是A1443型号,这种5V1A,USB-A口、小功率的适配器,苹果…...
ansible自动化运维实战--script、unarchive和shell模块(6)
文章目录 一、script模块1.1、功能1.2、常用参数1.3、举例 二、unarchive模块2.1、功能2.2、常用参数2.3、举例 三、shell模块3.1、功能3.2、常用参数3.3、举例 一、script模块 1.1、功能 Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件,其提供了一…...
LLM大模型实践18-评估(上)——存在一个简单的正确答案
准备数据 products_and_category { "电脑和笔记本": [ "TechPro 超极本", "BlueWave 游戏本", "PowerLite Convertible", "TechPro Desktop", "BlueWave Chromebook" ], "智能手机和配件": [ "…...
力扣-数组-704 二分查找
解析 经典二分,重点在于左闭右闭区间约定好后,根据定义更新边界 代码 class Solution { public:int search(vector<int>& nums, int target) {int left 0, right nums.size() - 1;while(left < right){int mid (left right) / 2;if(…...
K8S 快速实战
K8S 核心架构原理: 我们已经知道了 K8S 的核心功能:自动化运维管理多个容器化程序。那么 K8S 怎么做到的呢?这里,我们从宏观架构上来学习 K8S 的设计思想。首先看下图: K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责核心的调度、管理和运维,Slave…...
C#集合操作优化:高效实现批量添加与删除
在C#中,对集合进行批量操作(如批量添加或删除元素)通常涉及使用集合类型提供的方法和特性,以及可能的循环或LINQ查询来高效地处理大量数据。以下是一些常见的方法和技巧: 批量添加元素 使用集合的AddRange方法&#x…...
Unity|小游戏复刻|见缝插针1(C#)
准备 创建Scenes场景,Scripts脚本,Prefabs预制体文件夹 修改背景颜色 选中Main Camera 找到背景 选择颜色,一种白中透黄的颜色 创建小球 将文件夹里的Circle拖入层级里 选中Circle,位置为左右居中,偏上&…...
【Redis】持久化机制
目录 前言: RDB 触发RDB持久化方法有俩种: 1.手动触发 2.自动触发 RDB文件的优缺点: AOF: AOF工作机制:编辑 编辑重写机制: 前言: Redis是一个内存数据库,将数据存储在内存中&…...
AWScurl笔记
摘要 AWScurl是一款专为与AWS服务交互设计的命令行工具,它模拟了curl的功能并添加了AWS签名版本4的支持。这一特性使得用户能够安全有效地执行带有AWS签名的请求,极大地提升了与AWS服务交互时的安全性和有效性。 GitHub - okigan/awscurl: curl-like acc…...
5_高并发内存池项目内存优化、页号与Span映射关系使用基数树优化及测试性能与malloc、free比较
申请/释放 内存大小申请方式释放方式x≤256KB(32页)向ThreadCache申请释放给ThreadCache32页<x≤128页向PageCache申请释放给PageCachex>128页向堆申请释放给堆 一、解决大于256KB的大块内存申请 (一)申请大于256…...
深入剖析C++中cin的原理、应用与进阶实践
一、引言 1.1 研究背景与目的 在 C 编程领域,cin 作为标准输入流对象,扮演着举足轻重的角色,是实现程序与用户交互的关键工具。它允许程序从标准输入设备(通常是键盘)读取数据,并将其存储到程序变量中&am…...
我国的金融组织体系,还有各大金融机构的分类,金融行业的组织
中国金融组织体系介绍 中国金融组织体系是一个复杂而多层次的系统,涵盖了各种类型的金融机构和监管机构。以下是关于中国金融组织体系的详细介绍,包括一行三会等金融监管机构,各大金融机构的分类、涉及的银行以及行业组织。 (一…...
十三、数据的输入与输出(4)
数据的输出 write.table()函数 write.table()函数的基本格式如下所示。 write.table(x, file "", quote TRUE, sep "", eol "\n", na "NA", dec ".", row.names TRUE, c…...
基于Java Web的网上房屋租售网站
内容摘要 本毕业设计题目为《基于Java Web的网上房屋租售网站》,是在信息化时代下充分利用互联网对传统房屋租售方式进行创新,在互联网上进行房屋租售突破了传统方式的局限性。对于房屋租售的当事人都提供了极大的便利。本稳针对了实际用户需求…...
【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作
数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [,column] ...)] VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配…...
问题修复记录:Linux docker 部署 dify,无法调用宿主机本地服务
使用docker compose启动Dify后,在其中配置本地xinfrence中的模型,报错: get xinference model extra parameter failed, url: http://127.0.0.1:9997/v1/models/bge-m3, error: HTTPConnectionPool(host=‘127.0.0.1’, port=9997): Max retries exceeded with url: /v1/mo…...