一种使用节点代理的轻量级网络模拟办法制造技术

技术编号:32225525 阅读:16 留言:0更新日期:2022-02-09 17:30
本发明专利技术公开了一种使用节点代理的轻量级网络模拟办法。所述方法包括:网络模拟配置中心读取json配置文件,将配置文件内容转换为相应网络配置参数;为进程中的每个节点创建一个代理节点;节点和节点间的连接由RPC框架完成;进程中的每个节点与所有代理节点建立连接;初始化节点编号与节点套接字映射并提供给代理节点做查找;节点编号与套接字的映射存储在网络模拟配置中心的中;节点间通信由代理节点转运;网络模拟由代理节点根据网络模拟配置中心参数实施;网络数据由代理节点进行统计;网络数据被写入网络模拟配置中心;网络模拟配置中心接收网络配置参数修改请求;网络模拟配置中心接收测试结束命令,关闭整个进程。本发明专利技术在单进程的多节点测试环境中有效地模拟了生产网络环境,为分布式系统提供一个轻量级的网络环境模拟。环境模拟。

【技术实现步骤摘要】
一种使用节点代理的轻量级网络模拟办法


[0001]本专利技术涉及分布式
,具体来说,涉及一种测试环境中轻量级网络模拟的方法。

技术介绍

[0002]随着单台设备性能提升越发缓慢以及大型企业处理数据规模的不断增加,越来越多组织开始利用分布式技术完成大规模数据的计算和存储。为了验证程序是否符合预期,研发人员必须在开发过程中进行持续的集成测试,然而生产环境中的分布式节点可能达到上百个。为了模拟生产网络,如此大规模的测试势必需要调用非常多的硬件资源达到效果,不仅重资源,而且难以管理,所以如何拥有一个轻量级的网络模拟测试环境是研发人员的当务之急。
[0003]大多数分布式技术都会运用远程过程调用,即RPC技术。当前的RPC框架,例如GRPC、BRPC等,都无法模拟网络的中断、延迟、丢包以及网络分区,而且全都缺少网络数据统计手段,所以我们无法从RPC层面实施网络环境模拟和统计。同时,如果为了实现网络模拟和网络数据统计而对原本的分布式程序做侵入性改动也是难以接受的。

技术实现思路

[0004]本专利技术的目的在于针对上述现有技术的不足,提出了一种使用节点代理的轻量级网络模拟办法。
[0005]根据本专利技术提供的使用节点代理的轻量级网络模拟办法,其特征在于,包括以下步骤:
[0006]S1:网络模拟配置中心读取json配置文件,将配置文件内容转换为相应网络配置参数;
[0007]S2:为进程中的每个节点创建一个代理节点;
[0008]S3:初始化节点的RPC框架;/>[0009]S4:进程中的每个节点与所有代理节点建立连接;
[0010]S5:初始化节点编号与节点套接字映射并提供给代理节点做查找;
[0011]S6:节点编号与套接字的映射存储在网络模拟配置中心;
[0012]S7:节点间通信由代理节点转运;
[0013]S8:网络模拟由代理节点根据网络模拟配置中心参数实施;
[0014]S9:网络数据由代理节点进行统计;
[0015]S10:网络数据被写入网络模拟配置中心;
[0016]S11:网络模拟配置中心接收网络配置参数修改请求;
[0017]S12:网络模拟配置中心接收测试结束命令,关闭整个进程。
[0018]优选地,所述步骤S1中,网络模拟配置中心读取json配置文件,配置文件内包含整体网络延迟大小、丢包率以及网络分区情况,包含节点网络延迟大小、丢包率、是否阻塞以
及是否乱序到达,这些参数信息被读取以供未来查看。
[0019]优选地,所述步骤S2中,代理节点仅为节点代为接收数据的,它不会向其它节点主动发送数据。
[0020]优选地,代理节点为节点接收数据,然后查看当前网络模拟参数,最后决定对数据采取正常转发、延迟、丢包或乱序到达等操作。
[0021]优选地,所述步骤S3中,其特征在于:节点之间应该使用同一种RPC框架,例如grpc或brpc等;初始化RPC框架并确定对外提供的调用接口。
[0022]优选地,所述步骤S4中,节点与所有代理节点建立起连接,节点欲向某个节点发送数据,应该将目标的代理节点作为发送目标,代理节点作为一个中间人角色负责转运数据。
[0023]优选地,所述步骤S5中,节点在初始化时会获得一个节点编号,编号从0开始,然后是1,依次向后增大。同时,节点会为RPC通讯设置一个端口,与其IP地址连在一起即可成为一个套接字。
[0024]优选地,代理节点接收到一条RPC,它可以通过查看RPC发起者的套接字确定来源,然后查看网络配置,确定如何转发该数据。
[0025]优选地,所述步骤S6中,网络模拟配置中心利用C++中的map数据类型存放节点编号与套接字,代理节点需要查看套接字与编号映射时需要向网络模拟配置中心申请,结果由后者返回。
[0026]优选地,所述步骤S7中,具体包括以下步骤:
[0027]S701:节点向目标节点的代理节点发送RPC请求
[0028]S702:代理节点收到RPC请求,向配置中心获取当前网络配置
[0029]S703:代理节点向配置中心获取RPC发起者的节点编号,并获取该节点当前状态
[0030]S704:根据RPC发起节点状态决定对数据包采取丢弃、延迟或者乱序操作。
[0031]S705:根据网络环境对数据包采取丢弃、延迟或者乱序操作。
[0032]S706:根据目标节点状态决定对数据包采取丢弃、延迟或者乱序操作。
[0033]S707:记录转运数据大小,更新转运RPC数量,保存在代理本地。
[0034]S708:代理节点向目标节点发起RPC请求。
[0035]S709:代理节点收到目标节点的RPC响应,将RPC响应返回给RPC发起者节点。
[0036]优选地,所述步骤S8中,具体包括以下步骤:
[0037]S801:查看是否对数据包采取丢包操作。
[0038]S802:丢包则丢弃该RPC,直接结束操作,否则转入下一步。
[0039]S803:查看是否对数据包采取延迟操作。
[0040]S804:延迟则随机睡眠一段时间,唤醒后将数据包放入发送队列,否则直接转入下一步。
[0041]S805:查看是否对数据包采取乱序发送操作。
[0042]S806:将发送队列中的数据包全部发向目标节点
[0043]优选地,所述步骤S9中,具体包括以下步骤:
[0044]S901:代理节点收到RPC请求
[0045]S902:代理节点计算RPC携带的数据大小
[0046]S903:代理节点更新总转发数据量大小
[0047]S904:代理节点更新转发RPC数量
[0048]S904:代理节点将统计数据以long类型存入内存
[0049]优选地,所述步骤S10中,网络数据是在代理节点中统计的,代理节点会周期性地将数据写回网络模拟配置中心,后者也会周期性地将其按照json格式存入磁盘。
[0050]优选地,代理节点向网络模拟配置中心更新数据采用的是增量更新方法。
[0051]优选地,所述步骤S11中,具体包括以下步骤:
[0052]S1101:用户利用RPC、HTTP等方式向网络模拟配置中心发出修改网络模拟参数请求。
[0053]S1102:网络模拟配置中心修改存放在内存的本地参数。
[0054]S1103:网络模拟配置中心通过RPC、HTTP等方式向代理节点发出网络配置参数已被修改的通知。
[0055]S1104:代理节点收到通知,采纳最新的网络模拟配置。
[0056]优选地,所述步骤S12中,网络模拟配置中心利用RPC、HTTP等方式向所有节点包括代理节点发送测试完毕的请求,等待所有节点的回复,确认所有节点关闭后再结束进程。
[0057]与现有技术相比,本专利技术具有如下有益效果:
[0058]本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种使用节点代理的轻量级网络模拟办法,其特征在于,包括以下步骤:S1:网络模拟配置中心读取json配置文件,将配置文件内容转换为相应网络配置参数;S2:为进程中的每个节点创建一个代理节点;S3:初始化节点的RPC框架;S4:进程中的每个节点与所有代理节点建立连接;S5:初始化节点编号与节点套接字映射并提供给代理节点做查找;S6:节点编号与套接字的映射存储在网络模拟配置中心;S7:节点间通信由代理节点转运;S8:网络模拟由代理节点根据网络模拟配置中心参数实施;S9:网络数据由代理节点进行统计;S10:网络数据被写入网络模拟配置中心;S11:网络模拟配置中心接收网络配置参数修改请求;S12:网络模拟配置中心接收测试结束命令,关闭整个进程。2.根据权利要求1所述使用节点代理的轻量级网络模拟办法,其特征在于:所述步骤S1中,网络模拟配置中心读取json配置文件,配置文件内包含整体网络延迟大小、丢包率以及网络分区情况,包含节点网络延迟大小、丢包率、是否阻塞以及是否乱序到达,这些参数信息被读取以供未来查看。3.根据权利要求1所述使用节点代理的轻量级网络模拟办法,其特征在于:所述步骤S2中,代理节点仅为节点代为接收数据的,它不会向其它节点主动发送数据。4.根据权利要求3所述使用节点代理的轻量级网络模拟办法,其特征在于:代理节点为节点接收数据,然后查看当前网络模拟参数,最后决定对数据采取正常转发、延迟、丢包或乱序到达等操作。5.根据权利要求1所述使用节点代理的轻量级网络模拟办法,其特征在于:所述步骤S3中,其特征在于:节点之间应该使用同一种RPC框架,例如grpc或brpc等;初始化RPC框架并确定对外提供的调用接口。6.根据权利要求1所述使用节点代理的轻量级网络模拟办法,其特征在于:所述步骤S4中,节点与所有代理节点建立起连接,节点欲向某个节点发送数据,应该将目标的代理节点作为发送目标,代理节点作为一个中间人角色负责转运数据。7.根据权利要求1所述使用节点代理的轻量级网络模拟办法,其特征在于:所述步骤S5中,节点在初始化时会获得一个节点编号,编号从0开始,然后是1,依次向后增大。同时,节点会为RPC通讯设置一个端口,与其IP地址连在一起即可成为一个套接字。8.根据权利要求7所述使用节点代理的轻量级网络模拟办法,其特征在于:代理节点接收到一条RPC,它可以通过查看RPC发起者的套接字确定来源,然后查看网络配置,确定如何转发该数据。9.根据权利要求1所述使用节点代理的轻量级网络模拟办法,其特征在于:所述步骤S6中,网络模拟配置中心利用C++中的map数据类型存放节点编号与套接字,代理节点需要查看套接字与编号映射时需要向网络模拟配置中心申请,结果由后者返回。10.根据权利要求1所述使用节点代理的轻量级网络模拟办...

【专利技术属性】
技术研发人员:周国强许张贤张卫丰
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1