0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种DYNAMO的流量生成系统实现

SDNLAB 来源:XMU系统与网络课题组 2023-02-10 11:46 次阅读

这篇文章提出了一种名为DYNAMO的流量生成系统,通过使用GitHub的海量代码数据和Docker容器技术实现了大量特征流量的实时生成。该论文来自ETH Zürich的NSG团队。

背景

生成具有指定特征的流量是许多网络研究人员的基本需求,例如测试网络设备、评估网络算法、评估网络服务等。问题在于,生成大量的特征流量是很困难的。

目前主流的方案有数据包重放和使用软硬件生成特征流量,然而这两种方案存在一定缺陷,例如不能有效生成指定特征的流量或不能捕获复杂的应用程序逻辑。

为此,文中提出了DYNAMO,通过利用GitHub代码共享平台获取海量的应用程序用于产生流量,并通过使用Docker容器技术部署这些程序,最后通过协调这些应用以产生符合指定特征的流量。

挑战

实现DYNAMO主要需要解决以下几个挑战:

(1)如何在庞大的代码库中找到相关的应用程序?

(2)如何对每个应用程序产生的流量进行建模?

(3)如何选择用于生成流量的应用程序?

(4)如何协调应用程序?

实现

DYNAMO的运行流程可以分成离线、引导和流量生成3个阶段。下图展示了DYNAMO的架构图,可以看到分成了两个部分,上面的部分代表离线阶段,下面的部分代表引导和流量生成阶段。

a380ba88-a8bf-11ed-bfe3-dac502259ad0.png

离线阶段:该阶段只执行一次,用于搜索GitHub代码库以寻找并分析合适的开源代码。为保证应用程序能够容易成功自动运行并能够产生需要的流量,DYNAMO专注于基于Docker的项目,它们易于执行,并定义了多个容器的连接方式。这些容器之间的通信通常是DYNAMO可以捕获的网络流量。此外,DYNAMO使用访问令牌和增量查找解决了GitHub的速率和匹配限制。

引导阶段:用于解析流量特征,以选择对应的开源项目,并为下一步的流量生成准备对应的虚拟接口。DYNAMO使用DTSL (Declarative Traffic Specification Language)语法定义指定的流量需求,然后通过解析语法,以选择一个开源项目的组合尽可能满足流量需求。

DYNAMO将该问题转换成了一个具有条件的优化问题,并使用求解器解决。选择完程序之后,DYNAMO会基于项目的自动化工具构建程序,并使用协调层将容器与用户连接起来,使用用户可以获取应用生成的流量,并可以进行速率和流量限制以符合DTSL需求,为下一步流量生成做准备。

流量生成阶段:该阶段通过运行开源项目,并利用协调层组合流量以产生指定特征的流量。该阶段的主要挑战在于如何精确的控制开源项目以产生指定流量,DYNAMO通过配置程序产生的吞吐量来实现这一目标,同时使用速率限制或隧道技术进行调节。

实验

论文主要对收集到的开源项目和运行项目后生成的流量数据进行了分析。首先,DYNAMO对GitHub中存在docker文件的开源项目进行搜索,总共找到了超过43万的开源项目,并且成功执行了其中约3.8万个项目,项目不能够成功运行的主要原因是项目中的运行命令不能够成功运行代码。

之后,DYNAMO对所有成功运行的程序进行了流量生成,经分析,观察到最多的流量类型有Web应用、数据库、比特币或文件交换流量,产生数据包最多的应用类型有网络压力和带宽测试,产生数据流最多的应用类型为消息代理。下图展示了每个docker容器产生的流数量和每个流包含的数据包数量,可以看到约89容器至少包含一个TCP流,约16容器至少包含一个UDP流,且大多数流约有10个数据包,因为我们的很多流量都与数据库或类似的应用程序有关,它们经常产生短的流量。

a3b95a1e-a8bf-11ed-bfe3-dac502259ad0.png

个人观点

本论文开创性地提出了一种能够大规模的实时生成指定特征的真实流量的方案,相比之前的流量生成方案能够更好的满足流量特征与保持应用程序逻辑。论文还指出,除了流量生成,研究人员可以利用GitHub仓库挖掘出另外的应用场景,开辟了一个新的研究领域。总的来说,论文提出了一种新的研究方法,并设计实现了DYNAMO证明了利用代码仓库中的项目实现流量生成的可行性。不过,文中对一些实现细节没有进行说明,例如如何在数以万计的项目中实现最优化组合。

本文提出了一个开源的互联网仿真器,它是一个Python库,由互联网的每个基本元素的类和各种服务的类构成。许多其他有趣的网络技术也可以部署在仿真器上。使用该库,用户可以轻松构建一个具有真正互联网的所有基本要素的微型互联网。

背景

在网络安全课程中,在教授BGP和攻击时,设计这样的实验并提供对应的实验平台十分困难。进行此类实验室的最有效方法是使用仿真器,但是不存在可以轻松用于此目的的互联网仿真器。尽管现有的网络仿真器很多,但互联网仿真和网络仿真是完全不同的。经过三年的开发,建立了一个名为SEED的互联网模拟器。它是一个Python库,由互联网的每个基本元素的类和各种服务的类构成。许多其他有趣的网络技术也可以部署在仿真器上。

实现

一个好的互联网仿真器应该具有以下三个要素 :( 1) 网络仿真,(2) 互联网基础结构仿真,以及 (3) 服务基础结构仿真。

典型的仿真器由三个部分组成:组成仿真,运行仿真以及与仿真器交互。SEED仿真器为第一部分和第三部分提供SDK(库和工具),同时依靠docker容器技术来运行仿真。图1说明了我们的方法。

对于组成仿真部分,我们开发了一个开源的Python库,由互联网的每个基本要素的类组成,包括自治系统,网络,主机,路由器,BGP路由器,Internet交换等。它还包括各种服务的类,包括Web、DNS、僵尸网络、暗网和区块链。使用这些类,用户可以使用Python程序轻松构建自己的Internet仿真器。

组合最终被编译成容器文件,供Docker在单台机器或多台云机器上运行。仿真开始后,用户可以使用标准docker命令手动与容器进行交互,也可以使用我们开发的另一个库来促进与仿真器的交互。

a3d36210-a8bf-11ed-bfe3-dac502259ad0.jpg

模拟互联网基础设施

互联网由主机,路由器,网络,互联网交换和自治系统组成。自治系统使用BGP相互对等。要在仿真中构建互联网,我们提供与这些实体相对应的构建块(互联网交换,自治系统,EBGP对等,主机上的API, 混合模拟参与模拟,分布式模拟),用类似下图的代码片段实现,并开发了一个独立的基于网页的可视化工具Map来可视化在模拟器中发生了什么。

a3e85210-a8bf-11ed-bfe3-dac502259ad0.jpg

模拟互联网服务基础设施

为了帮助用户在SEED仿真器中构建这些服务基础设施(Web服务器、DHCP服务器和电子邮件服务器,DNS、区块链、暗网、僵尸网络、内容交付网络 (CDN)等),对于这些服务中的每一个,我们都开发了一个Python类(下图为DNS基础设施的代码),它封装了复杂的设置细节。

a403f98e-a8bf-11ed-bfe3-dac502259ad0.jpg

个人观点

本文提出了一个开源的互联网模拟器SEED,由互联网的每个基本元素的类和各个服务的类构成。用户可以使用该库轻松构建一个包含需要部署的服务的微型互联网,用于教学工作和评估科研思路。

这篇⽂章来自加州大学伯克利分校的研究者。研究人员针对物联网应用实现了一种新颖的以场景为中心的原型设计,开发人员可以对一组模拟设备进行编程,不仅捕捉它们各自的行为,而且捕捉它们协调的行为,从而使测试、调试和评估物联网应用程序的行为成为可能。

背景

对于物联网应用,使用真实世界的设备建立测试床可能耗时且成本高昂。而使用原型环境(Prototyping Environments)是解决这一问题的方法之一。在其他领域中,已经有大量的工作提供易于使用的原型环境,如系统和网络领域的NS、MiniNet、iBox等。但现有的物联网原型环境往往具有诸多不足之处。所以基于这些其他领域的原型环境的启发,研究团队也希望为物联网应用构建一个灵活的、可扩展的原型环境。

目标及成果

作者认为物联网的原型环境应当具有以下几个设计目标:

通用性

集成支持

交互性

可重现性

可伸缩性

可定制性和可重用性

本文提出了一个同时实现这些目标的原型环境Digibox。Digibox支持一种新颖的以场景为中心的原型设计,它有两个部分:模拟设备和场景。模拟设备模拟个别装置行为(例如,传感器产生数据、致动器响应应用或用户命令),而场景可产生事件(例如,房间内有人存在)并集成附在其上的模拟设备的行为(例如,房间场景与附在其上的运动传感器绑定并对人的存在做出相应)。开发人员可以使用Digibox的Python开源编程库轻松地编写模拟设备和场景。目前Digibox的开源项目中包含20个模拟设备(如入住、风扇、灯具、暖通空调)和18个场景(如建筑、校园、零售、供应链、家庭),将来还会有更多的内容提供。

实现

下图给出了使用Digibox对应用程序进行原型化以及其他人再现设置和结果的高级工作流程。对于原型,如左两列所示,开发人员在应用程序框架(1)中编写应用程序,例如SmartThings, Home Assistant, dSpace),同时使用Digibox的编程库编写场景(2)。开发人员可以在场景中指定与应用程序功能相关的场景逻辑。另外,该场景可以被其他开发人员下载、重用或者自定义。开发人员可以使用Digibox的命令行工具运行场景(3),运行应用程序(4),以此来让应用程序使用场景。在运行过程中,Digibox记录场景中生成的事件、动作和消息,以便开发人员可以使用它们来调试或者分析应用程序(5)。在最右边的那列,其他人可以下载场景、运行场景已经重播开发人员共享的日志。

a4419b04-a8bf-11ed-bfe3-dac502259ad0.png

下图展现了应用程序是如何与场景进行对话的。应用程序使用实际设备常用的MQTT或REST等通信协议向模拟设备发送或接收消息。

a472be3c-a8bf-11ed-bfe3-dac502259ad0.png

用例

Digibox的实现也帮助了以下场景的研究和开发。

智能空间。

这是指利用生活空间中的物联网设备来提高我们日常生活和工作的质量、效率和安全性的应用,如智能家居及智能楼宇。

供应链物流。

这包括监视和优化供应链操作的应用程序。供应链应用程序可以将数据从物联网设备跨越不同位置、管理域和大量的物联网设备。

城市遥感。

这些应用包括使用移动设备(如用户手机)收集有关环境的数据(例如,占用率、温度、噪音水平);这些数据随后在用户之间进行聚合,以提供见解。城市传感应用的原型化通常需要解决设备移动性问题,可以通过在Digibox中动态地将模拟对象重新附加到不同的场景中来模拟设备的移动性。

个人观点

本文提出了一个物联网应用的原型环境Digibox。该工具让测试、调试和评估物联网应用程序的行为变得更加便利,同时也可以通过下载重用场景,能让其他人更好地重现物联网应用的实验结果。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DTS
    DTS
    +关注

    关注

    1

    文章

    50

    浏览量

    16080
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1351

    浏览量

    78989
  • UDP协议
    +关注

    关注

    0

    文章

    69

    浏览量

    12683
  • 求解器
    +关注

    关注

    0

    文章

    77

    浏览量

    4515

原文标题:HotNets 2022系列论文解读——数字孪生网络

文章出处:【微信号:SDNLAB,微信公众号:SDNLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问怎么设计一种带PROFIBUS-DP接口的智能电磁流量计?

    怎么设计一种带PROFIBUS-DP接口的智能电磁流量计?如何实现智能电磁流量系统的硬件设计?如何实现
    发表于 04-19 11:09

    定标系统原理是什么?如何去实现一种定标系统

    G-M计数器原理是什么?定标系统原理是什么?如何去实现一种定标系统
    发表于 05-14 06:17

    如何去实现一种电控喷油器检测系统

    电控喷油器的工作特性是什么?检测系统实现的功能有哪些?如何去实现一种电控喷油器检测系统
    发表于 05-14 07:15

    如何去实现一种SOCKET通信系统的设计?

    SOCKET通信系统是由哪些部分组成的?如何去实现一种SOCKET通信系统的设计?
    发表于 05-27 06:32

    一种基于GE PLC和无线网的天然气流量计量系统

    一种基于GE PLC和无线网的天然气流量计量系统:将PLC 与无线通信相结合,本文介绍了一种基于它们实现的远程多站点天然气
    发表于 09-02 13:24 22次下载

    一种同步通讯板的网络电路码表的生成

    介绍了一种同步通讯板的系统原理,以及利用结点方程通过编程生成同步通讯板网络电路的正弦波码表的方法。关键词:网络电路;结点方程; 正弦波; 码表; 同步通讯
    发表于 09-05 10:32 12次下载

    一种分布式编译系统的设计与实现

    本文针对当前大型软件生成时间过长的问题,在MSBuild 生成引擎的基础上,提出并实现一种利用集群进行分布式编译的系统,以降低在MSBui
    发表于 01-15 14:16 18次下载

    一种远程流量计量系统的设计

    远程流量计量系统一般由流量计、下位机数据传输系统、通信介质和PC机构成,现有流量计的数据输出
    发表于 07-21 14:53 944次阅读
    <b class='flag-5'>一种</b>远程<b class='flag-5'>流量</b>计量<b class='flag-5'>系统</b>的设计

    一种自相似网络流量生成器的设计与实现

    一种自相似网络流量生成器的设计与实现_王晓婷
    发表于 01-07 20:32 2次下载

    一种工作流技术实现的应急预案生成方法研究_胡飞虎

    一种工作流技术实现的应急预案生成方法研究_胡飞虎
    发表于 03-14 16:47 0次下载

    一种气体燃料电控喷射系统流量控制研究

    针对气体燃料电控喷射系统对气体燃料喷射量的控制精度低以及流量实时连续调节等问题,提出一种基于电磁直线执行器直接驱动菌形阀的燃料电控喷射系统。在MATLAB/Simulink下建立整个
    发表于 03-19 13:51 0次下载
    <b class='flag-5'>一种</b>气体燃料电控喷射<b class='flag-5'>系统</b>的<b class='flag-5'>流量</b>控制研究

    一种流量比值控制系统设计剖析

    在生产过程中,凡是将两或两以上的物料量自动地保持定比例关系的控制系统,就称为比值控制系统。在化工行业中,
    发表于 04-28 15:40 3778次阅读
    <b class='flag-5'>一种</b><b class='flag-5'>流量</b>比值控制<b class='flag-5'>系统</b>设计剖析

    针对web系统的LoadRunner业务背景流量生成系统

    主流背景流量生成方法有导入互联网实际流量法以及利用网络测试仪器生成法等,但是这些方法均较少关注流量的时空分布与业务
    发表于 03-19 10:39 6次下载
    针对web<b class='flag-5'>系统</b>的LoadRunner业务背景<b class='flag-5'>流量</b><b class='flag-5'>生成</b><b class='flag-5'>系统</b>

    一种全新的遥感图像描述生成方法

    遥感图像描述生成是同时涉及计算机视觉和自然语言处理领域的热门研究话题,其主要工作是对于给定的图像自动地生成个对该图像的描述语句。文中提岀了一种基于多尺度与注意力特征増强的遥感图像描述
    发表于 04-20 11:21 2次下载
    <b class='flag-5'>一种</b>全新的遥感图像描述<b class='flag-5'>生成</b>方法

    一种Keil MDK生成BIN文件的简易方法。

    一种Keil MDK生成BIN文件的简易方法。
    发表于 01-13 10:18 2次下载