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

EPS原理笔记

EPS

UE(user equipment),移动用户设备
LTE(Long Term Evolution),无线接入网部分,E-UTRAN
EPC(system Architecture Evolution、Evoloed Packet Core),核心网部分,主要包括MME、S-GW、P-GW、HSS,连接Internet等外部PDN(Packet Data Network)

3GPP定义

3GPP接入是指遵循3GPP制定的协议标准,通过如gNB等基站接入5G核心网。相对地,Non-3GPP接入则是指通过非3GPP定义的网络接入5G核心网,例如通过WiFi等非3GPP网络‌

S-GW和P-GW功能

S-GW作为接入锚点,进行接入侧信令和数据的处理,完成大量切换信令处理;P-GW作为业务锚点,完成业务处理

EPC网元介绍

EPC网元有MME、S-GW、P-GW、HSS、PCRF

MME(mobility management entity),控制面的移动性管理,包括用户上下文、移动状态;分匹配用户临时身份标识。作用:NAS(Non-Access Straturn)信令、漫游、3GPP接入网间切换,CN节点间的信令交互、鉴权、P-GW和S-GW的选择。

S-GW(service gateway)是3GPP内不同接入网络间的用户面锚点,屏蔽了3GPP内部不同接入网络的接口、上下行传输级别标记

P-GW(packet data network gateway),上下行速率执行、上下行计费、IP地址分配、包过滤、APN-AMBR(Aggregate Maximum Bit Rate)上下行速率执行、GBR(Guaranteed Bit Rate)的下行速率执行、上下行传输级别标记,DHCPv4、DHCPv6

HSS(home subscriber server),归属用户服务器,存储用户业务相关数据,EPC用户注册、鉴权、下载用户数据至MME;非3GPP用户注册、鉴权以及下载数据到AAA;漫游限制

PCRF(policy control and charging rule function)策略和计费控制的规则制定,终结Rx和Gx接口

UE接入Intenet流程

用户在MME注册成功,MME会给用户选择P-GW和S-GW并分配资源,PDN给UE分配IP地址,一切准备就绪后,MME给UE发送accpet

UE使用核心网(EPC)分配的ip地址和提供的服务接入Intenet

典型语言业务:EPC信令、IMS信令、SS7信令、Data(VoIP)

漫游,核心网元是MME

漫游Home Routed(通过归属地网络接入Intenet)
在归属地接入PDN(Packet Data Network),提供外部网络接入功能,保证漫游和非漫游场景下用户得到计费、业务、PCC(Policy and Charging Control)策略获取的一致性

漫游Local Breakout(通过本地拜访网络接入Intenet)
在访问地接入PDN,节省与归属地传输的带宽,

IP分配方式

IP分配方式有三种:PGW上配置的地址池、DHCP、3A服务器分配

PDN连接

关键网元:

PDN:UE要接入的目的网络

ip address(es):给UE分配IPv4/IPv6双栈地址

P-GW:UE到所选网络的业务锚点

APN(Access Point Name):用于标识目的PDN,PGW据此来选择目的PDN

PDN连接是分配了IPv4和IPv6的UE和特定PDN之间的逻辑链接,UE到PDN是端到端的连接,UE可以同时有多个PDN连接(比如网络的Intenet连接和语言业务的IMS连接)

有三种类型的PDN连接:IPv4、IPv6、IPv4/IPv6双栈类型

EPS承载(bearer)

**默认承载:**PDN连接附着的时候就会被创建,在PDN连接的生命周期一直保持在线(只针对S5/S8),一般作用与不需要特别对待和处理的用户浏览,比如说Web浏览。

**专有承载:**已经有PDN连接,根据需要激活,默认承载不能满足,将尝试建立一个专有承载。

TFT(Traffic Flow Template ):被UE、SGW和PGW来区分不同的承载。PGW会基于(分配给EPS的TFT里的)下行包过滤器,来把下行数据包路由到不同的EPS承载

EPS承载:UE和PGW之间一个或多个SDF(servide data flow服务数据流)的逻辑聚合体,如果多个SDF需要不同承载级别的Qos处理,则需要给每个SDF设置不同的EPS承载

不同Qos属性需要不同的EPS承载,每个EPS关联一个TFT(流量模板),TFT里包含针对承载的数据包过滤器

TFTs用于区分上下行数据包过滤器

EPS bearer ID用于标识一个用户不同承载上下文

移动性原理

当UE从一个注册区移动到另一个注册区,则发起位置区域更新过程

在2G/3G里,注册区 = 路由区(RA,在PS里),位置区(LA,在CS里)

在EPS里,注册区=跟踪区(TA)

  • 在3GPP系统内的移动性
    • 基于X2接口的切换流程
    • 基于S1接口的切换流程(不存在X2)
    • 跟踪去更新流程
  • 在E-UTRAN和HRPD(high rate packet data)之间的移动
    • 预先注册
    • 切换
  • 在3GPP和non-3GPP系统之间的移动
    • 采用移动IP机制

EPC中的标识

IMSI

IMSI(International Mobile Subscriber Identity)永久用户标识,USIM卡被赋予一个唯一的IMSI,是一个E.164号码

IMSI = MCC + MNC + MSIN

  • MCC号 (Mobile Country Code)
  • MNC号(Mobile Network Code)
  • 一个MSIN号 (mobile subscriber identity)组成

MCC和MNC用于唯一标识运营商网络,在HSS被签约

GUTI

GUTI(Globally Unique Temporary ID)临时用户标识,用于EPC给用户提供唯一的临时用户标识

由MME分配,存储在UE和MME里,用于UE和网络进行信令交互时,用GUTI标识用户,避免在无限端口传输IMSI而泄露用户数据

S-TMSI

S-TMSI临时用户标识,为了提高无线信令传输而对GUTI的简化表示

TAI

TAI(Tracking Area Identity)跟踪区标识,LTE产生新位置区(跟踪区),一个新的TAI被用来标识一个跟踪区(TA),由运营商来规划TAI

TAI = MCC + MNC + TAC(Tracking Area Code)

TA列表

TA列表(tacking Area List)是EPS中位置管理的基本单位,使用TA列表的目的是防止UE频繁发起跟踪区更新(TAU)流程

APN

APN(Access Point Name) = APN-IN + APN-OI,用于UE请求连接到所选的外部网络,APN-IN由运营商签发

安全功能

鉴权方式:2G-3G-EPC鉴权方式为单向鉴权、双向鉴权、双向鉴权

2G3G4G
鉴权方式单向鉴权双向鉴权双向鉴权
安全向量三元组(Rand,Sres,Kc)五元组(Rand,Xres,CK,IK,AUTN)全新EPS安全向量(RAND,AUTN,XRES,Kasme)。实现UTMS鉴权向量与EPS及鉴权向量的隔离
完整性约束保护
兼容SIM-兼容不兼容
层次化安全架构对NAS(non access service非接入)层和AS分别保护,同时对两层的密钥也分级管理,也分别进行算法协商
NAS指的是eNodeB和MME之间
AS指的是UE和eNodeB之间

UE和MME之间执行NAS信令加密和完整性保护

UE和eNodeB执行RRC信令加密和完整性保护,还有UP加密

EPS鉴权四元组 :

RAND:Random Challenge,随机数

AUTN:Authentication Token,鉴权令牌,提供信息给UE,UE可用此对网络鉴权

XRES:Expected Response,期望的回复,用于和UE产生的RES进行比较,以此达到鉴权的效果

Kasme:Ciphering key,密钥

EPS鉴权向量由MME向HSS请求获取,随后鉴权过程中,MME向USIM发送RAND和AUTN,USIM可以选择返回RES或者拒绝鉴权

鉴权流程

在这里插入图片描述

鉴权的目的是MEE问HSS索要EPS鉴权向量(RAND、AUTN、XRES、KASME),用此对用户进行鉴权

  1. MME发送==Authentication Data Request(IMSI,SNI,TYPE)==给HSS
  2. HSS收到后,通过==Authentication Response(RAND、AUTN、XRES、KASME)==将鉴权向量返回给MME
  3. MME收到鉴权向量之后,向UE发送==User Authentication Request(RAND、AUTN)==消息,对用户进行鉴权,包含了RAND和AUTN两个参数
  4. UE收到MME请求后,先验证AUTN是否可接受,UE通过比对自己计算的XMAC和接收到的MAC(通过AUTN携带)来对网络进行认证,不一致则认为是非法的。一致则继续计算RES,然后将此RES通过==USER Authentication Response(RES)==发送给MME
  5. MME比对RES和XRES,一致则鉴权通过

Qos覆盖范围

EPS系统仅仅覆盖在EPS里的流量Qos需求,也就是UE到PGW之间的范围

在这里插入图片描述

以Internet接入为例,一个UE会话范围包括两部分,在EPS里的会话和Internet上的会话,

EPS承载的Qos

在这里插入图片描述

EPS承载在UE和PGW之间建立

EPS承载 = 无线承载+ S1承载 + S5/S8承载

业务流和承载都是关联和映射到响应的TFT(包过滤器),而TFT在无线侧和RB-ID关联,在核心网侧和TEID关联

UE关联上行流和TFT,PGW关联下行流和TFT

承载的Qos参数

在GPRS/UMTS系统中,3GPP定义了4类业务和13中Qos参数,每个PDP上下文被赋予一种业务级别和对应的Qos属性,这个设计被证实太过复杂,很多Qos参数在实际中并没有被使用

在EPS系统里,Qos参数大大简化,每个EPS承载仅关联两个参数,一个QCI和一个ARP

QCI:QoS Class Identifier,一个数值,用于标识QoS类别,不同值对应不同Qos属性,取值范围是1~9, QCI取值1~4是专门用于GBR业务,其余是Non-GBR业务。QCI决定了在一定承载上的IP数据包应该收到怎么样的用户平面处理

对于不同的业务,可以将承载分为GBR承载和non-GBR承载(保证比特率/非保证比特率

  • GBR承载意味着要预留一定的带宽,不管自己用不用。GBR承载可以使用GBR和MBR来控制带宽(GBR保证比特率的最小带宽,MBR最大允许带 宽)
  • non-GBR承载,可以使用AMBR来控制带宽(AMBR聚合最大带宽,分为UE-AMBR手机支持,APN-AMBR PDN定义最大带宽),不用分配固定带宽,这样无法保证承载上能携带多少流量,虽然没有MBR,但运营商可以使用AMBR来进行带宽控制

ARP:Allocation and Retention Priority,承载建立和维护的优先级,包括三部分:

  • 优先级(Priority):承载建立和保持的优先级,数字越小优先级越高
  • 抢占能力(Pre-emption Capability):是否能够抢占其他承载资源
  • 抢占易感性(Pre-emption Vulnerability):是否容易被其他承载抢占

AMBR-最大聚合比特率:

  • APN-AMBR(uplink & downlink):一个APN的所有PDN连接的所有Non-GBR承载所有提供的聚合比特速率,有PGW执行
  • UE-AMBR(uplink & downlink):定义一个UE所有的Non-GBR承载上的所能提供的聚合比特速率,有eNodeB执行

Qos的签约

在GPRS/UTRAN系统里(EPS系统前),Qos是在HLR里签约

有EPS后,在HSS和PCRF里签约Qos(HSS默认承载,PCRF专有承载)

  • HSS签约用户附着到网络时所建立的默认承载的Qos
  • PCRF签约专有承载的Qos,如果默认承载的Qos不能满足当前业务,UE会请求专有承载,由PGW基于PCRF授予Qos参数决定分配的专有承载的Qos,所以不需要经过HSS

PCC

提供给运营商进行业务Qos和计费控制的高级工具

在无线网络,对于包的传输,不同的业务由不同固定Qos需求,网络一般同时存在不同用户的许多不同的业务流,那么确保业务共存和为业务提供相应的传输通道就尤为重要,

PCC允许集中控制来确保业务会话进行,意味着在由网络测替代终端来控制带宽,同时,PCC提供业务级别的计费控制方法,极大的有助于内容计费

在这里插入图片描述

  • AF(Application Function):与动态PCC应用和业务交互
  • SPR(Subscription Profile Repository):存储用户签约信息,如用户的签约策略和其他数据
  • OCS(Online Charging System):在线计费系统,就是预付费的信息管理系统
  • OFCS(Offline Charging System):离线计费系统,接受来自PCEF的计费事件,并产生话单,然后把话单传输到计费中心
  • PCRF(The Policy Charging Rules Funcation):实现PCC的策略控制功能,通过Rx接口接受会话信息,通过Gx接口接受来自接入网络的信息。
  • PCEF(The Policy And Charging Enforcement Function):执行来自于PCRF的策略
  • BBEFR(The Bearer Binding and Event Reporting Function):承载绑定和事件上报实体

PCRF的功能

PCRF提供向PCEF针对业务流的数据监测、门控、Qos和基于流的计费等网络控制

门控控制

  • 阻塞还是放行某些业务的IP分组
  • PCRF是做门控决策,PCEF是执行决策

Qos控制

  • Qos控制允许PCRF向PCEF提供针对IP流的Qos授权
  • PCEF实现速率的强制执行,确保业务会话没有超过所授权的Qos级别

基于流的计费

  • 计费方式:在线/离线

  • 计费特性:Flat rate / hot-billing / normal

  • 内容计费:Flow ID(cbbid)

MME的选择

eNodeB选择MME:eNodeB需要基于负载均衡去选择MME,有一个MME Pool

MME选择MME:利用DNS解析功能,然后基于TAI(Tracking Area Identity,TAI = MCC + MNC + TAC)选择一个MME;在Attach/TAU流程里,利用DNS解析功能来基于GUTI选择MME

SGW的选择

选择一个合适的SGW来给UE提供服务

基于网络拓扑,选择要减少SGW改变的可能性、同时考虑负载均衡,当DNS返回包含权重值的IP地址时,MME根据SGW的负载均衡情况选择SGW,然后建立承载,以此达到SGW的负载均衡效果

PGW的选择

  1. 根据APN(Access Point Name,PGW据此选择PDN)所对应的P-GW
  2. 在Attach/PDN连接建立流程中,利用DNS解析功能基于APN来选择PGW

EPS里的接口(3GPP Access)

下面这张图描述了EPS里的接口以及EPS与3GPP接入(如GPRS或WCDMA)之间的接口

在这里插入图片描述

GTP(GPRS隧道协议)

GTP的基本功能是提供网络节点之间承载隧道的建立。由于其简单和易拓展,进一步被用来传输(移动性过程中不同核心网移动管理节点之间的)用户的移动性管理和会话管理。在EPC系统中,用户会话管理进一步演进,因此GTP也随之进行版本迭代

GTP分成:

  • GTP-C:GTPv0、GTPv1、GTPv2(仅用于EPS)
  • GTP-U:GTPv0、GTPv1

功能:

  • 移动性管理
  • 隧道管理
  • 特别业务功能
  • 系统维护

基于GTP的接口——控制面

仅在EPS里

S10:MME之间的控制面接口,用于传递MME重定位和MME之间的消息

S11:MME和SGW,支持移动性管理和承载管理程序

S5/S8:SGW与PGW之间,S5是用户面隧道和隧道管理功能;S8是用户漫游的时候,VPLMN(拜访地)的SGW与HPLMN(归属地)的PGW的参考点

和2G/3G互操作

S3/S4:仅在EPS和GERAN/UTRAN网络互操作(S3是MME与SGSN的接口,S4是SGW与SGSN之间的接口)

基于GTP的接口——用户面

仅在EPS

S1-U:是eNodeB与SGW之间的接口

S5/S8:SGW与PGW之间的接口

在这里插入图片描述

与2G/3G互操作

在这里插入图片描述

用户面的接口不需要经过MME

Diameter协议

集认证、授权和计费(AAA)为目的设计的协议,弥补Radius的不足,使用AVP来携带信元

基于Diameter的接口

  1. MME到HSS(S6a)

  2. SGSN到HSS(S6d)

在这里插入图片描述

S6a在MME和HSS之间,用于交换用户的位置信息和管理信息

  • Diameter:在MME和HSS之间传递签约和鉴权数据,从而授权进入EPS
  • SCTP:保证MME和HSS之间信令的可靠传输,运用的是S1-AP
  1. PGW到PCRF(Gx)

  2. SGW到PCRF(Gxc)

Gxc仅用于S5或者S8采用的PMIP协议,如果采用的是GTP协议则不需要

在这里插入图片描述

基于S1-AP的接口

仅用于S1-MME,即eNodeB与MME之间的信令业务,包括MME与UE间NAS(Non-access Stratum)消息的透明传输

在这里插入图片描述

因为S1-AP的可靠传输机制,被设计应用于SCTP(Stream Control Transmission Protocol)协议中

NAS(Non-Access Stratum)消息在一定程度上独立于底层的 AS(Access Stratum)协议结构,但仍然需要依赖底层的 AS 协议来进行传输。NAS层消息可以看作是高层协议数据单元(PDU),逻辑上与物理层传输细节隔离

  • NAS层位于UE(User Equipment,用户设备)和核心网(Core Network)之间,负责处理与移动管理、会话管理和认证相关的高层协议。功能有:
    • EPS的移动性管理
    • 会话管理
    • 认证和安全

在这里插入图片描述

  • AS层位于UE和基站(eNodeB或gNodeB)之间,负责处理物理层和数据链路层的通信。功能有:
    • 物理层的信号传输和调制解调
    • 数据链路层数据帧的传输、差错检验和纠错
    • 无线资源管理

个人理解:类比于TCP模型,NAS消息在“应用层”之间传输,采用的是NAS协议,而AS协议工作在“物理层”,所有NAS不需要关注“物理层”的消息格式,因为在传输的时候,NAS消息仅需在进入AS协议进行传输之间,将NAS消息转化为RRC(底层传输的格式)即可在AS中传输。

SGi接口

服务于PGW与PDN之间,同时可以服务于PGW于AAA服务器之间,用于传输鉴权和计费

信令

用户状态

EMM:EPS Mobility Management,EPS移动性管理

  • EMM-DEREGISTERED:UE不可达MME,EMM不保存用户的有效位置和信息,但是UE和MME还是保存了部分UE上下文,避免每次附着都发起AKA(Authentication and Key Agreement)鉴权流程
  • EMM-REGISTERED(emm-registered):UE通过附着流程(ATTACH/TAU)之后的状态,MME知道UE所在位置,或者知道用户TA所在的TA列表

ECM:EPS Connection Managerment,EPS连接管理

  • ECM-IDLE:用户与网络没有NAS连接(eNodeB于MME之间连接)时候进入该状态,用户在eNodeB中无上下文,无S1-MME和S1-U连接
  • ECM-CONNECTED:用户与网络有NAS连接,MME知道所服务的eNodeB的ID

MM上下文、EPS承载上下文

MM上下文包括:IMSI、MISISDN、鉴权参数、TAI、签约参数等

EPS承载上下文:PGW IP地址、SGW IP地址等

UE到MME之间有MM上下文,全过程都有EPC承载上下文

附着流程

UE才可以发起Attach流程

UE注册到EPS网络中的过程称为附着,附着过程将UE的相关位置信息、能力登记到管理的网络实体。附着过程给UE复分配IP地址。当部署了动态PCC,默认承载的PCC规则从PCRF获取,否则采用PWG的预配置的方式从本地获得

  1. UE向eNodeB发送包含RRC的Attach Request消息,eNodeB转发此条消息给MME

  2. 如果UE使用GUTI标识自己并且MME发生了变化,则新MME通过DNS解析GUTI得到旧的MME/SGSN的IP地址,然后就会向旧的MME/SGSN索要IMSI

  3. 如果新旧MME都没有UE的IMSI,新的MME就会向UE发起Identity Request消息,UE通过Identity Response上报自己的IMSI

  4. MME鉴权IMSI(可选)

  5. 如果距上次MME变化,则需要更细HSS,MME向HSS发送Update Location Request消息,前提需要先取消旧的MME,并且删除UE中的MM上下文和EPS承载上下文

  6. HSS给MME提供用户签约数据,然后MME选择SGW(MME通过TA在DNS解析出所归属的SGW),为UE分配EPS缺省承载ID,然后发送给SGW,SGW记录此承载ID,并发送PGW

  7. PGW记录此ID,并生成计费的Charging ID,随后将此ID返回给SGW,SGW返回Create Session Response给MME,

  8. MME将消息封装在S1-MME控制面返回给eNodeB

  9. eNodeB通过==RRC Connection Reconfiguration(在eNodeB与UE之间)==将EPS无线侧的承载ID和Attach Accept发送给UE,UE回应

  10. eNodeB收到回应之后, 返回包含S1-U用户面IP地址和TEID的Initial Context Response消息给MME

  11. UE发送Attach Complete给eNodeB,eNodeB转发给MME。如果此时UE已经获取IP,则可以向eNodeB发送上行数据,然后eNodeB通过GTP隧道转发至SGW和PGW

  12. MME收到10中eNodeB发送的消息之后,则会向SGW发送Modify Bearer Request请求,SGW回应之后即可以向UE发送下行数据了

在这里插入图片描述

分离流程

UE/MME/HSS均可发起detach请求

分离流程在以下情况中使用:

  • UE从EPS中分离
  • UE断开最后一个PDN连接
  • 网络通知UE不能再接入EPS

显式分离:网络侧或者UE主动请求分离,会通知另一方

隐式分离:网络侧分离UE,不通知UE,例如网络不可达

  1. UE发送Detach Request给eNodeB,eNodeB将UE的位置信息(如TAI和ECGI)和请求一同发给MME
  2. MME发送Detach Session Request(以下简称)给SGW,SGW释放相关的EPS承载上下文,随后转发DSR给PGW并返回DS Response给MME,
  3. PGW收到请求后删除用户相关信息,随后返回DS Response
  4. 如果UE不是因为网络不可达引起,MME返回Detach Accept给UE,MME发送S1 Release命令给eNodeB,释放S1-MME上的信令连接

S1释放流程(S1 Release)

释放eNodeB与MME之间S1控制平面信令连接和所有用户平面承载

这个过程的结果是将UE从连接状态转化为空闲状态,UE从EPS中断开,同时eNodeB删除UE的所有上下文信息,空口和S1-U均会被释放

业务请求流程

分为UE发起和网络触发,对象是空闲状态下的UE

  • UE发起:S1释放完后,UE有上行数据或者信令需要发送,由UE发起流程

  • 网络触发:有下行数据或者信令过程,由核心网侧发起流程

跟踪区更新(TAU)流程

Tacking Area Updata

伴随SGW改变MME的TAU流程,MME需要选取新的SGW给UE创建新的EPS承载

在SGW不变的TAU流程中,需要更新SGW中的旧承载

承载激活流程

缺省承载会在激活流程或者UE发起的PDN连接流程中建立

  • 专有承载激活触发,目的是建立不同的Qos和TFT,以满足某种业务,触发条件有:
    • PGW发起的专有承载激活
    • UE请求承载资源修改触发
  • 专有承载修改,主要用于修改承载的Qos,AMBR,TFT,触发条件有:
    • PGW发起的伴随Qos更新
    • PGW发起的不伴随Qos更新
    • HSS发起的签约Qos修改
  • 专有承载去激活,可以由PGW或者MME发起,触发条件有:
    • 承载老化前,没有数据要传输,则要去激活
    • 3GPP切换到non-3GPP,和PDN地址相关的默认承载和所有专有承载都要被释放

UE请求PDN连接的建立流程

相关文章:

EPS原理笔记

EPS UE(user equipment),移动用户设备 LTE(Long Term Evolution),无线接入网部分,E-UTRAN EPC(system Architecture Evolution、Evoloed Packet Core),核心网部分,主要包括MME、S-GW、P-GW、HSS,连接Intern…...

LeetCode 876. 链表的中间结点

题目描述: 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点&#xff0…...

划界与分类的艺术:支持向量机(SVM)的深度解析

划界与分类的艺术:支持向量机(SVM)的深度解析 1. 引言 支持向量机(Support Vector Machine, SVM)是机器学习中的经典算法,以其强大的分类和回归能力在众多领域得到了广泛应用。SVM通过找到最优超平面来分…...

题目:100条经典C语言笔试题目(1-5)

题目: 1、请填写 bool , float, 指针变量 与“零值”比较的if 语句。 提示:这里“零值”可以是 0, 0.0 , FALSE 或者“空指针” 。例如 int 变量 n 与“零值”比较的 if 语句为: (1)请写出bool flag 与“零值”比较…...

python代码编写规范及注意事项

目录 1. 注意1.1 变量与常量解释:建议的修复: 1.2 Too many arguments 和 Too many local variables解决方案1. 减少参数数量2. 减少局部变量数量3. 调整 Pylint 配置 总结 1. 注意 1.1 变量与常量 解读下面的pylint问题 C0103: Constant name “file_p…...

【Linux】命令行参数 | 环境变量

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 前几天在搞硬件&…...

python 使用进程池并发执行 SQL 语句

这段代码使用了 Python 的 multiprocessing 模块来实现真正的并行处理,绕过 Python 的全局解释器锁(GIL)限制,从而在多核 CPU 上并发执行多个 SQL 语句。 from pyhive import hive import multiprocessing# 建立连接 conn hive.…...

我也谈AI

“随着人工智能技术的不断发展,我们已经看到了它在各行业带来的巨大变革。在医疗行业中,人工智能技术正在被应用于病例诊断、药物研发等方面,为医学研究和临床治疗提供了新的思路和方法;在企业中,人工智能技术可以通过…...

算法妙妙屋-------1.递归的深邃回响:二叉树的奇妙剪枝

大佬们好呀,这一次讲解的是二叉树的深度搜索,大佬们请阅 1.前言 ⼆叉树中的深搜(介绍) 深度优先遍历(DFS,全称为DepthFirstTraversal),是我们树或者图这样的数据结构中常⽤的⼀种…...

编写第一个 Appium 测试脚本:从安装到运行!

前言 最近接到一个测试项目,简单描述一下,需求就是:一端发送指令,另一端接受指令并处理指令。大概看了看有上百条指令,点点点岂不是废了,而且后期迭代,每次都需要点点点,想想就头大…...

mysql查表相关练习

作业要求: 单表练习: 1 . 查询出部门编号为 D2019060011 的所有员工 2 . 所有财务总监的姓名、编号和部门编号。 3 . 找出奖金高于工资的员工。 4 . 找出奖金高于工资 40% 的员工。 5 找出部门编号为 D2019090011 中所有财务总监,和…...

airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告

一:主要内容 框架功能、框架架构及测试报告效果 airtest安装、环境搭建 框架搭建、框架运行说明 框架源码 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的项目的前端自动化,支持pc和app,本文…...

Prometheus套装部署到K8S+Dashboard部署详解

1、添加helm源并更新 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update2、创建namespace kubectl create namespace monitoring 3、安装Prometheus监控套装 helm install prometheus prometheus-community/prome…...

python使用pymysql

为了封装这个数据库操作为一个通用方法,我们可以创建一个函数,该函数接受数据库连接参数(如主机名、用户名、密码、数据库名)、SQL语句以及必要的参数(用于参数化查询)。下面是一个简单的封装示例&#xff…...

Vue3 + TypeScript 组件和文件命名规范及 setup 导入顺序规范

前言 在 Vue3 项目中,合理的文件命名规范和导入顺序不仅有助于提高代码的可读性,还能增强团队协作的效率。特别是在使用 TypeScript 和 Composition API 的项目中,清晰的组件和文件结构尤为重要。本文将详细介绍 Vue3 TypeScript 项目中的组…...

netty之处理连接源码分析

写在前面 在这篇文章看了netty服务是如何启动的,服务启动成功后,也就相当于是迎宾工作都已经准备好了,那么当客人来了怎么招待客人呢?也就是本文要看的处理连接的工作。 1:正文 先启动源码example模块的echoserver&a…...

Dockerfile文件编写

1、打nginx原始包 登录后复制 ROM nginxENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8 ENV TZ Asia/Singapore# 设置时区,同样保持在一层 RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \echo "${TZ}" > /etc/timezoneRUN apt-get …...

Oracle SQL 使用 ROWNUM 分页查询速度太慢的问题及解决方案!

在使用 Oracle 数据库进行数据查询时,分页查询是一种常见的需求。传统上,开发者常常使用 ROWNUM 来实现分页功能。 然而,当数据量较大时,使用 ROWNUM 进行分页查询可能会导致性能问题。本文将深入探讨这一问题的原因,并提供多种解决方案,以提高分页查询的性能。 一、RO…...

Django3 + Vue.js 前后端分离书籍添加项目Web开发实战

文章目录 Django3后端项目创建切换数据库创建Django实战项目App新建Vue.js前端项目 Django3后端项目创建 创建Django项目,采用Pycharm或者命令行创建皆可。此处,以命令行方式作为演示,项目名为django_vue。 django-admin startproject djang…...

楼梯区域分割系统:Web效果惊艳

楼梯区域分割系统源码&数据集分享 [yolov8-seg-FocalModulation&yolov8-seg-GFPN等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al l…...

Day10加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 class Solution {public int[] plusOne(int[] di…...

UTF-8简介

UTF-8 UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用一至四个字节对Unicode字符集中的所有有效编码点进行编码,属于Unicode标准的一部分,最初由肯汤普逊…...

基于Openwrt系统架构,实现应用与驱动的实例。

一、在openwrt系统架构,编写helloworld的应用程序。 第一步先创建目录,项目代码要放在 openwrt根目下的 package 目录中,这里源码写在了 hellworld 的 src 目录下,因为外层还有需要编写的文件。 mkdir -p ~/openwrt/package/hel…...

SQL进阶技巧:如何利用三次指数平滑模型预测商品零售额?

目录 0 问题背景 1 数据准备 2 问题解决 2.1 模型构建 (1)符号规定 (2)基本假设...

HTB:Cicada[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行开放端口扫描 使用nmap对靶机开放端口进行脚本、服务信息扫描 首先尝试空密码连接靶机SMB服务 由于不知道账户名,这里我们使用crackmapexec对smb服务进行用户爆破 通过该账户连接至靶机SMB服务器提取敏感信…...

小张求职记四

学校食堂的装修富丽堂皇,像个金碧辉煌的宫殿,可实际上却充斥着廉价的塑料制品和刺鼻的消毒水味。这金玉其外败絮其中的景象,与食堂承包商的“精明算计”如出一辙。 小张和小丽应约来到了一个档口下,“红烧肉”,之前就是…...

适用于 c++ 的 wxWidgets框架源码编译SDK-windows篇

本文章记录了下载wxWidgets源码在windows 11上使用visual Studio 2022编译的全过程,讲的不详细请给我留言,让我知道错误并改进。 本教程是入门级。有更深入的交流可以留言给我。 如今互联网流行现在大家都忘记了这块桌面的开发,我认为桌面应用还是有用武之地,是WEB无法替代…...

flink 内存配置(二):设置TaskManager内存

TaskManager在Flink中运行用户代码。根据需要配置内存使用,可以极大地减少Flink的资源占用,提高作业的稳定性。 注意下面的讲解适用于TaskManager 1.10之后的版本。与JobManager进程的内存模型相比,TaskManager内存组件具有类似但更复杂的结构…...

【C++ 算法进阶】算法提升八

复杂计算 (括号问题相关递归套路 重要) 题目 给定一个字符串str str表示一个公式 公式里面可能有整数 - * / 符号以及左右括号 返回最终计算的结果 题目分析 本题的难点主要在于可能会有很多的括号 而我们直接模拟现实中的算法的话code会难写 要考虑…...

阿里云实时数据仓库HologresFlink

1. 实时数仓Hologres特点 专注实时场景:数据实时写入、实时更新,写入即可见,与Flink原生集成,支持高吞吐、低延时、有模型的实时数仓开发,满足业务洞察实时性需求。 亚秒级交互式分析:支持海量数据亚秒级交…...