法律状态公告日
法律状态信息
法律状态
2022-08-26
实质审查的生效 IPC(主分类):H04L41/5003 专利申请号:2022106242047 申请日:20220602
实质审查的生效
2022-08-09
公开
发明专利申请公布
技术领域
本发明属于网络功能虚拟化技术领域,具体涉及一种基于鞅理论实现统计时延QoS保障的SFC逐跳带宽分配和部署方法。
背景技术
NFV(network function virtualization,即网络功能虚拟化)和SDN(softwaredefined network,即软件定义网络)有望解决传统网络僵化的问题。NFV体系结构通过将VNF(virtual network function,即虚拟网络功能)整合到大容量服务器、存储器和交换机上,来解耦软件和专用硬件。当一个业务到达网络时,这些模块化的VNF按照指定的顺序编排并由数据流遍历,形成了一条SFC(service function chain,即服务功能链)。在NFV架构中,SFC部署是一项重要的研究,而这一部署过程被SDN所管理。因此,SDN使网络控制能够高度可编程。结合NFV和SDN技术,5G网络切片将一个物理网络分割成多个大小和结构各不相同的逻辑独立网络,专门服务不同类型的业务,高效的利用了网络资源。
将SFC部署到物理网络的过程中,应当考虑异质业务不同的统计时延QoS(qualityof service,即服务质量)要求而合理的分配网络切片上的资源。随着切片上请求的类型和数量的增加,带宽资源逐渐变得紧张。现有带宽分配的方法要么不满足业务的延迟限制,要么浪费了大量的带宽。如何为异质业务的SFC逐跳分配带宽资源以保障其统计时延QoS约束是网络功能虚拟化领域的重要问题。排队论与鞅理论为统计时延QoS约束下的SFC部署提供了理论支撑。
在目前关于SFC部署中,常采用独立同分布到达过程或恒定速率到达过程作为SFC的到达流量建模,这些到达分布不能很好地描述实际流量的复杂随机特征。具有异质性质的流量可以被建模为更适合于实际应用的马尔可夫到达过程。在现有技术中,一个SFC常被建模为一个端到端串联排队系统。对于这种级联方式,一个节点的离去过程是下一跳的到达过程,因此对离去过程的建模直接影响下一个节点的延迟分析的准确性。大多数工作将SFC建模为M/M/1串联排队系统,应用Burke定理很容易获得流量的离去过程。然而,如果到达过程采用马尔可夫形式,则离去过程的建模相对复杂。此外,通常采用SNC(stochasticnetwork calculus,即随机网络演算)来求解具有相对松散的延迟界的离去过程。但SNC观察的是累积到达和累积服务,因此很难获得离去过程的显式表达。因此,在SFC部署中,针对串联排队系统的时延分析,如何准确的建模离去过程是值得关注的问题。
发明内容
为了克服上述问题,本发明提供一种基于鞅理论实现统计时延QoS保障的SFC逐跳带宽分配和部署方法,针对多切片上异质业务的SFC部署问题,该方法实现了对SFC逐跳的带宽分配,准确的建模流量的离去过程,满足了业务的统计时延QoS要求。
为达到上述目的,本发明提供如下技术方案:
一种基于鞅理论实现统计时延QoS保障的SFC逐跳带宽分配和部署方法,包括以下步骤:
步骤一,抽象物理网络,根据请求的QoS要求实现细粒度的SFC部署,用两种串联排队系统分别构建数据业务和视频电话业务的SFC,使用IBP过程建模数据业务的到达流,使用两个MMBP的聚合过程2A-MMBP建模视频电话业务的到达流,其中两个参数不同的MMBP分别建模视频流和音频流,几何分布建模节点的服务过程;
步骤二,构造IBP,2A-MMBP,MMBP过程的到达鞅,构造几何分布的服务鞅:
对于SFC的第m个节点,此时m=1、2、...、M,a
对于
其中θ为衰减指数,Ka
对于IBP,2A-MMBP和MMBP的到达鞅,通过获得不同的A
所述构造几何分布的服务鞅,具体为:
对于第m个节点的服务过程,此时m=1、2、...、M,s
其中θ为衰减指数,Ks
令hs
其中E表示求期望,g
综上,得到在SFC的所有节点处的到达过程的到达鞅,几何分布的服务鞅;
步骤三,为保障请求的统计时延QoS要求,基于鞅理论逐跳推导每个节点处服务过程的服务概率;具体为:
对于IBP到达的SFC的第m个节点,此时m=1、2、...、M,积压超鞅为:
其中
对于2A-MMBP到达的SFC的第一个节点,2A-MMBP到达的积压超鞅为:
其中
其中
令delay
delay
其中t为求delay(n)时的参量;
进一步在积压超鞅的基础上,流量的时延违反概率为:
对于IBP到达流,此时m=1、2、...、M,第m个节点处的时延违反概率为:
其中E为求期望,
对于2A-MMBP到达流,第一个节点处的时延违反概率为:
其中
后续第m个节点,此时m=2,...,M的时延违反概率为:
其中
所述基于鞅理论逐跳推导每个节点处服务过程的服务概率,具体为:
在指定统计时延QoS要求下,在0-1内采用二分搜索算法求得节点处服务过程的服务概率g
(1)令服务概率搜索上界upper=1,服务概率搜索下界lower=0,令g
(2)如果threshold与目标时延违反概率阈值target=ε之差的绝对值小于或等于自定义的极小数μ,则将upper值作为所求节点的服务概率g
(3)否则,以mid=(upper+lower)/2为服务概率g
(4)如果步骤(3)计算得到的threshold与目标时延违反概率阈值target=ε之差的绝对值小于或等于自定义的极小数μ,则将mid值作为所求节点的服务概率g
(5)否则,
若步骤(3)计算得到的threshold>target,则将mid值赋给lower,返回到步骤(3);
若步骤(3)计算得到的threshold 步骤四,在鞅理论的指导下,在统计时延QoS的要求下采用离去拟合的方式将每个节点的输出流拟合为IBP或MMBP过程,作为下一个节点的到达过程,直至完成整个SFC逐跳带宽预分配;具体为: 对于SFC的第一个节点,如果输入过程是一个IBP过程,则将该节点的离去过程拟合为另一个IBP模型,如果输入过程是一个2A-MMBP过程,则将该节点的离去过程拟合为另一个参数为 其中第一个节点离去的MMBP模型中一态转移到本态和二态的状态转移概率分别为 和1-,二态转移到本态和一态的状态转移概率分别为和1-,数据包离去概率分别为和; 当SFC的第一个节点到达流为2A-MMBP过程时,根据状态转移矩阵 假设K为排队系统缓冲区大小,(K+1)*(K+1)维传输概率矩阵表示为:
其中 根据队长的稳态分布π 若SFC的第一个节点到达流为IBP过程,节点的离去过程将以相同的方式被拟合为IBP模型; 步骤五,基于协调分配算法CoordVNF完成SFC的逐跳带宽分配和部署,包括SFC的组成,QoS保障下的带宽分配,流量的离去拟合,并在预分配服务的限制下得到SFC的最优部署方案;将SFC嵌入到物理网络中,即为该条SFC部署成功,具体为: (1)初始化需要被嵌入的第i个请求 (2)依据当前物理网络G (3)在当前已嵌入的物理节点处,采用广度优先搜索方式搜索下一个被部署的VNFv和链接前一个VNF w的虚拟链路(w,v)能够嵌入的物理节点集和关联的物理路径;所获得的节点集candidates按最短路径优先以升序排列;选取最佳候选的物理节点和对应的物理路径,并向其中嵌入VNF v和虚拟链路(w,v); 其中嵌入成功应满足三个条件:1)虚拟节点v的节点资源需求低于候选物理节点的剩余资源;2)物理节点的服务概率大于虚拟节点v所需要的服务概率;3)先前嵌入的物理节点与待嵌入的物理节点之间路径的剩余带宽满足虚拟链路(w,v)所需要的带宽; (4)若嵌入成功,根据所得VNF v的服务概率和VNF v输入流的矩阵集来拟合VNF v离去流量的参数矩阵集{Matrix 若嵌入不成功,则在所获得的节点集candidates中继续寻找能够嵌入的物理节点和对应的物理链路进行嵌入; 如果该情况下成功嵌入VNF v之前的虚拟链路,则继续嵌入下一个待嵌入的VNF;重复步骤(2),直至该条SFC嵌入成功后,部署下一个请求。 所述步骤一抽象物理网络具体为: 将物理网络抽象为一个加权有向图,由G 采用加权有向图 将同一切片内业务的QoS要求设置为{D IBP模型用于描述数据业务的突发性:设SFC的到达过程为IBP,m为SFC中第m个节点,m=1、2、...、M;在激活状态下,第m个节点的数据包的到达满足到达概率为
将IBP的扩展状态转移矩阵和对角速率矩阵分别为
其中 若SFC的到达过程为2A-MMBP过程,对于SFC的第一个节点,2A-MMBP的每个MMBP模型中,一态转移到本态和二态的状态转移概率分别为
扩展状态转移矩阵
其中 SFC到达过程为2A-MMBP过程时,SFC的后续节点到达流为MMBP,此时m=2,...,M,第m个节点处到达的MMBP过程的一态转移到本态和二态的状态转移概率分别为 所述步骤二中构造IBP,2A-MMBP,MMBP过程的到达鞅,构造几何分布的服务鞅;具体为: 对于到达过程为IBP的SFC,第m个节点处IBP到达的到达鞅为:
其中:此时m=1、2、...、M,在第m个节点处时隙0到n内到达的数据包总数为
其中
其中 对于到达过程为2A-MMBP的SFC,第一个节点处2A-MMBP到达的到达鞅为:
其中:在第一个节点处时隙0到n内到达的数据包总数为
其中 第一个节点处2A-MMBP到达中的MMBP的扩展转移矩阵的指数列变换
其中 对于到达过程为2A-MMBP的SFC,第m个节点,此时m=2,...,M处MMBP到达的到达鞅为:
其中:第m个节点处到达的MMBP过程在时隙0到n内到达的数据包总数为 所述构造几何分布的服务鞅,具体为: 对于第m个节点的服务过程,s
其中θ为衰减指数,Ks 令hs
其中E为求期望,g 综上,得到在SFC的所有节点处的到达过程的到达鞅,几何分布的服务鞅。 本发明的有益成果: 本发明提出了一个具有统计时延QoS保障的逐跳带宽分配框架以指导细粒度的SFC部署,该框架精确求得节点离去过程,保障了异质业务的时延QoS要求。本发明将异质业务到达流量建模为不同的马尔科夫过程,以排队论和鞅理论为基础,推导到达过程的到达鞅,服务过程的服务鞅,并求解各节点的服务概率,科学合理的为SFC逐跳分配带宽资源,保障了异质业务的统计时延QoS要求;采用离去拟合算法拟合节点的离去过程,获得每一节点离去过程的显示表达,有益于估计每个节点的时延违反概率,并更易于工程上的实现;基于协调SFC分配算法CoordVNF实现了SFC的逐跳带宽分配和部署,有效的保障了异质业务的统计时延QoS要求,并在预分配的服务下得到了SFC最优的部署方案。 附图说明 下面结合附图和具体实施方式对本发明作进一步详细说明。 图1为本发明的总体流程图; 图2为两种异质业务部署的场景图; 图3为IBP和2A-MMBP流量到达的SFC抽象串联排队系统示意图; 图4为采用二分搜索算法求解节点的服务概率流程图; 图5为节点输出流量离去拟合过程的流程图; 图6为IBP到达过程在不同时延阈值和负载率下的时延违反概率理论和仿真值对比示意图; 图7为2A-MMBP到达过程在不同时延阈值和负载率下的时延违反概率理论和仿真值对比示意图; 图8为两种异质业务嵌入后每条SFC的时延违反概率示意图。 具体实施方式 如图1所示,本发明的基于鞅理论实现统计时延QoS保障的SFC逐跳带宽分配和部署方法,具体包括下述步骤: 步骤一,抽象物理网络,根据请求的QoS要求实现细粒度的SFC部署,用两种串联排队系统分别构建数据业务和视频电话业务的SFC,使用IBP过程建模数据业务的到达流,使用两个MMBP的聚合过程2A-MMBP(two-aggregation MMBP,即两个MMBP聚合在一起)建模视频电话业务的到达流,几何分布建模节点的服务过程;具体为: 可选的,如图2所示,将物理网络抽象为多个切片,所述的物理网络拓扑中包含服务器,存储和交换机三类节点及节点间的物理链路。图2中包括两个具有不同QoS(qualityof service)需求的业务,分别代表数据业务和视频电话业务,被分配给相互独立的切片;假设这些异质业务占据了它们各自的切片,对应于由公共的基础设施资源形成的逻辑物理网络。图2中采用两种串联排队系统分别构建数据业务和视频电话业务的SFC,每一条所述的SFC中的虚拟网络功能VNF具有预设类型:计算,存储和网络;假设一个物理硬件只能承载相同类型的VNF,这意味着服务器、存储和交换机分别承载计算、存储和网络类型的VNF; 将物理网络抽象为一个加权有向图,并由G 采用加权有向图 上述描述定义了网络层的请求。在数据包层,进一步对请求的数据流进行建模。需要考虑每个流的统计时延QoS要求以指导对SFC的资源分配。将同一切片内业务的QoS要求设置为{D SFC建模为具有无限缓冲区的串联排队系统,数据包到达过程建模为IBP和2A-MMBP。2A-MMBP由两个具有不同到达参数的MMBP组成,这两个MMBP在观察时间内具有独立同分布的特征。SFC后续节点的到达流以类似的方式建模; IBP模型用于描述数据业务的突发性,它有两个马尔可夫状态,分别是激活状态和空闲状态;设SFC的到达过程为IBP,m为SFC中第m个节点,m=1、2、...、M;在激活状态下,第m个节点的数据包的到达满足到达概率为
将IBP的扩展状态转移矩阵和对角速率矩阵表示为
其中 聚合2A-MMBP过程用于描述视频电话业务,对于SFC的第一个节点,2A-MMBP的每个MMBP模型也分别有两个马尔可夫状态。流量到达率随二态马尔可夫链的变化而变化,一态转移到本态和二态的状态转移概率分别为
扩展状态转移矩阵
其中 SFC到达过程为2A-MMBP过程时,SFC的后续节点到达流为MMBP,第m个节点,此时m=2,...,M处到达的MMBP过程的状态转移概率 节点(在SFC中的节点为VNF,也可以叫虚拟节点)的服务时间分布遵循参数为g 步骤二,构造IBP,2A-MMBP,MMBP过程的到达鞅,构造几何分布的服务鞅;具体为: 对于SFC的第m个节点,对于一个到达流,a 对于
θ为衰减指数,Ka 对于IBP,2A-MMBP和MMBP的到达鞅,只需获得不同的A 对于到达过程为IBP的SFC,扩展第m个节点处IBP到达的转移矩阵的指数列变换为
对于到达过程为2A-MMBP的SFC,第一个节点处2A-MMBP到达中的MMBP的扩展转移矩阵的指数列变换
第m个节点,此时m=2,...,M处MMBP到达的扩展转移矩阵的指数列变换与2A-MMBP中第k个MMBP的求解方式相同,根据公式(11)即可求解; 设sp((T) ((T) 参数Ka可由式(13)求解:
推导出
其中 对于到达过程为IBP的SFC,第m个节点处IBP到达鞅的鞅参数
其中 对于到达过程为2A-MMBP的SFC,2A-MMBP中第k个MMBP的到达鞅的鞅参数
其中 进而推导对于到达过程为IBP的SFC,第m个节点处IBP到达的到达鞅为:
其中:在第m个节点处时隙0到n内到达的数据包总数为 对于到达过程为2A-MMBP的SFC,第一个节点处2A-MMBP到达的到达鞅为:
其中:在第一个节点处时隙0到n内到达的数据包总数为
其中:第m个节点,此时m=2,...,M处到达的MMBP过程在时隙0到n内到达的数据包总数为 接下来我们构建服务过程的鞅,具体方法如下: 对于第m个节点的服务过程,s
θ为衰减指数,Ks 由于第m个节点的服务时间分布遵循参数为g
对于独立同分布的服务过程,可以令hs
其中E为求期望,g 综上,得到了SFC的每个节点到达过程的到达鞅,服务过程的服务鞅。 步骤三,为保障请求的统计时延QoS要求,基于鞅理论逐跳推导每个节点处服务过程的服务概率;具体为: 基于超鞅理论,积压行为可以被建模成一个指数超鞅过程以分析时延性能,把到达鞅和服务鞅参数用特殊鞅参量θ 对于IBP到达的SFC的第m个节点,积压超鞅为:
其中 对于2A-MMBP到达的SFC的第一个节点,2A-MMBP到达的积压超鞅为:
其中
其中 若令delay delay 其中t为求delay(n)时的一个参量,没有具体含义; 可以将积压超鞅视为在鞅域中对积压过程的建模,这有利于对延迟的分析。进一步,在积压超鞅的基础上,基于超鞅的停时定理推导了流量的时延违反概率(引用:H.Sun,Researchon network QoSanalysis and guarantee under the background ofheterogeneous services,Ph.D.thesis,JiLin University(2019)): 对于IBP到达流,第m个节点处的时延违反概率为:
其中E为求期望, 对于2A-MMBP到达流,第一个节点处的时延违反概率为:
其中
其中 由于服务概率g (1)令服务概率搜索上界upper=1,服务概率搜索下界lower=0,令g (2)如果所求threshold与目标时延违反概率阈值target=ε之差的绝对值小于或等于自定义的极小数μ(0.00001),即|threshold-target|≤μ,则将upper值作为所求节点的服务概率; (3)否则,以mid=(upper+lower)/2为服务概率g
(4)如果所求threshold与目标时延违反概率阈值target=ε之差的绝对值小于或等于自定义的极小数μ(0.00001),即|threshold-target|≤μ,则将mid值作为所求节点的服务概率; (5)否则,若步骤(3)计算得到的threshold>target,则将mid值赋给lower(mid和lower的值相同),返回到步骤(3); 若threshold 步骤四,在鞅理论的指导下,在统计时延QoS的要求下采用离去拟合的方式将每个节点的输出流拟合为IBP或MMBP过程,作为下一个节点的到达过程,直至完成整个SFC逐跳带宽预分配;具体为: 为抽象在鞅理论指导下的离去拟合过程,分别将IBP和2A-MMBP流量到达的SFC抽象为如图3所示的两个串联排队系统。对于SFC的第一个节点,如果输入过程是一个IBP过程,则该节点的离去过程可以拟合为另一个IBP模型;如果输入过程是一个2A-MMBP过程,则该节点的离去过程可以拟合为另一个参数为 由于IBP为MMBP模型其中一个马尔科夫状态为空闲态的特例,以下以SFC的第一个节点到达流为2A-MMBP过程为例描述离去拟合的过程,IBP和MMBP流量的离去拟合都可以使用这种方法。 当SFC的第一个节点到达流为2A-MMBP过程时,根据步骤一中所述的状态转移矩阵 假设K为排队系统缓冲区大小,将其设置为很大的整数以近似一个无限缓冲区,基于
其中 根据队长的稳态分布π 其中第一个节点离去的MMBP模型中一态转移到本态和二态的状态转移概率分别为 和1-,二态转移到本态和一态的状态转移概率分别为和1-,其中d表示第一个节点的离去departure,数据包离去概率分别为和; (引用:Y.Zhao,Communication network modeling and performanceanalysisbased on tandem queueing network theory,Master’sthesis,JiLin University(2011)) 若一个SFC的到达过程为IBP过程,后续节点的离去过程将以类似的方式被拟合为IBP过程。 步骤五,基于协调分配算法CoordVNF(引用:M.Beck,J.Botero,Scalable andcoordinated allocation of service function chains,Comput.Commun.102(2017)78–88)完成SFC的逐跳带宽分配和部署,包括SFC的组成,QoS保障下的带宽分配,流量的离去拟合,并在预分配服务的限制下得到SFC的最优部署方案,将SFC嵌入到物理网络中,即为该条SFC部署成功;具体为: 一个VNF v的需求 (1)初始化需要被嵌入的第i个请求 (2)依据当前物理网络G (3)在当前已嵌入的物理节点处,采用广度优先搜索方式搜索下一个被部署的VNFv和链接前一个VNF w的虚拟链路(w,v)可以嵌入的物理节点集和关联的物理路径(只有与v具有相同类型type (4)若嵌入成功,根据当前部署情况更新物理网络中节点和链路的剩余资源,并根据得到的VNF v的服务概率和VNF v输入流的矩阵集(若v为第一个节点则输入流的矩阵集是步骤(1)中的矩阵集,若不为第一个节点则是上一个节点离去拟合出来的矩阵集)来拟合VNF v离去流量的参数矩阵集{Matrix 若嵌入不成功,则在所获得的节点集candidates中继续寻找可以嵌入的物理节点和对应的物理链路进行嵌入。如果成功嵌入了VNF v之前的虚拟链路,则继续嵌入下一个待嵌入的VNF;重复步骤(2),直至该条SFC嵌入成功后,部署下一个请求,最终得到每个请求所对应的SFC最优的部署方案。 为了验证本实施例提出的基于鞅理论实现统计时延QoS保障的SFC逐跳带宽分配和部署方法的有效性,通过仿真验证了本发明方法的效果。仿真测试实施例如下: 1.仿真条件: 参见表1,展示了在图6和图7中理论值和仿真值对比的各种参数。 表1:理论值和仿真值对比的参数设置
本发明实施例在ALEVIN仿真框架上进行仿真。使用Waxman模型随机生成50个节点的物理网络拓扑,其中每对物理节点的连接概率为0.3。节点和带宽资源,以单位容量和数据包/时隙来衡量,是在50到100之间均匀分布的随机数。假设VNF上所需容量的增加或减少对流量没有任何影响,因此,我们在80%和120%范围内随机选择VNF的相对处理容量率。为了确保我们的结论的可靠性,每个参数设置会重复实验20次。 在本实施例中共有3组仿真实验:第一组实验为IBP过程的时延违反概率理论值和仿真值的对比实验,负载率ρ分别为0.8,0.55,0.38;第二组实验为2A-MMBP过程的时延违反概率理论值和仿真值的对比实验,负载率ρ分别为0.65,0.55,0.45,其中负载率指的是数据包的平均到达率与节点平均服务率的比值。 第三组实验目标为验证嵌入后的SFC串联排队系统中每个节点是否满足请求的时延违反概率要求,仿真时隙数为5*10 2.仿真内容: 第一组实验为IBP到达过程在不同时延阈值和负载率下的时延违反概率理论和仿真值对比实验,对比在指定的IBP到达过程参数下,负载率ρ为0.8,0.55,0.38时,IBP到达过程的理论时延违反概率和仿真时延违反概率的差距。仿真结果采用箱图表示,时延阈值从0递增到50时隙。 第二组实验为2A-MMBP过程在不同时延阈值和负载率下的时延违反概率理论和仿真值对比实验,在指定2A-MMBP到达过程中各个MMBP过程的参数下,负载率ρ为0.65,0.55,0.45时,对比2A-MMBP到达过程的理论时延违反概率和仿真时延违反概率的差距。仿真结果采用箱图表示,时延阈值从6递增到42时隙。 第三组实验为验证在输入统计时延QoS要求不同(时延阈值Dmax不同)的两种请求时,业务的时延违反概率要求被满足的情况。每一个箱图代表SFC串联排队系统中的五个节点处的时延违反概率。 3.仿真结果分析: 请参见图6,图6为本发明实施例中IBP到达过程在不同时延阈值和负载率下的时延违反概率理论和仿真值对比示意图。图6表明理论结果和仿真结果拟合的较好,在负载率较大时,拟合的效果比负载率较小时好,且在三种负载率的条件下,随着时延阈值Dmax的增加,拟合效果越来越好。纵向观察,在相同的时延阈值下,时延违反概率随着负载率的增大而增大。 请参见图7,图7为本发明实施例中2A-MMBP到达过程在不同时延阈值和负载率下的时延违反概率理论和仿真值对比示意图。图7表明在各个负载率时理论结果和仿真结果都拟合的较好,只有在负载率较高而时延阈值较低时,仿真的时延违反概率略高于理论的时延违反概率。 请参见图8,图8为本发明实施例中两种业务嵌入后每条SFC在各个节点处的时延违反概率示意图。图8表明,对于统计时延QoS要求不同的两种业务(Dmax=100,Dmax=40),时延违反概率都能够满足时延违反概率阈值ε=10 尽管参照上述实施案例对本发明进行了详尽说明,本领域的技术人员应当理解,以上实施例仅仅为本发明的优选实施方案,可以对本发明在细节上进行各种修改,而不脱离本发明的精神和范围。
机译: 基于与先前部署的服务功能链(SFC)的相似性部署新服务功能链(SFC)的方法和系统
机译: 可减少小区传输时延的动态带宽分配系统及动态带宽分配方法
机译: 可减少小区传输时延的动态带宽分配系统及动态带宽分配方法