面向DTN/IP协议栈的网络连通设备的制作方法

文档序号:17158390发布日期:2019-03-20 00:18阅读:532来源:国知局
面向DTN/IP协议栈的网络连通设备的制作方法

本发明涉及延迟容忍网络(delaytolerantnetwork)技术领域,具体地说,是一种连通dtn/ip协议栈的网关设备。



背景技术:

dtn(delaytolerantnetwork)网络表示一种容迟/容断网络,2004年正式被提出。这种网络具有网络拓扑实时变化、间歇性链接、长延时、低信噪比(高误码率)等特点。在dtn网络中,无论是连接断开亦或是意外物理断路所导致的bp包未被成功发送,数据均会被当前节点保存,以等待畅通的传输路径,再重新开始传输数据。如果能将地面通常使用的ip数据包重新打包为bp数据包从而于dtn网络中转发,那么对地面与飞艇、卫星等通信条件波动较大的实体之间的通信将有十分积极的意义。

网关(gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,通俗地讲,网关是一个翻译器。



技术实现要素:

本发明的目的在于提供一种面向dtn/ip协议栈的网络连通设备。

实现本发明目的的技术方案:一种面向dtn/ip协议栈的网络连通设备,包括:

用于从链路中收发数据的链路接入模块;

用于抓取链路中以太网帧并进行解析的抓帧、解析模块;

用于将抓取到的以太网帧其中内容打包为bp包,用以在dtn网络中进行转发的bp打包、转发模块。

用于从dtn网络中接收bp包、并加以解析从而得到其中内容的bp接收、解析模块。

用于将解析出的内容继续发往目标ip节点的数据发送模块。

进一步的,单片机作为整个网关的载体,从外界看来,这台单片机就是网关,它实现了bp包和ip包的发送与接收以及二者的互相转化。

进一步的,链路接入模块是整个流程的起点,它负责了从网关与物理链路的连接,负责了将以太网帧从以太网中传输给抓帧、解析模块,将bp包从dtn网络中传输给bp接收、解析模块,也负责了将bp打包、转发模块中发送出的bp包传输入dtn网络中,以及将数据发送模块发送的ip数据包传输入以太网中。

进一步的,抓帧、解析模块,负责了从以太网中抓取发往指定ip的以太网帧,并解析其中内容,从而为下一步对其打包成bp包做好准备。

进一步的,打包、转发模块接收到从抓帧、解析模块处接收到数据包内容与目标ip,进而得到目标ip对应的dtn节点,将数据包内容打包为bp包,发往目标dtn节点。

进一步的,接收、解析模块从链路接入模块中,接收发到本dtn节点的bp包,对其进行解析,从而得到其中具体内容,并将内容提交给数据发送模块。

进一步的,数据发送模块从接收、解析模块中获取数据,最终将数据通过ip数据包发往指定ip。

与现有技术相比,本发明的显著优点为:本发明开创性地实现了ip协议栈与dtn协议栈的互通,能够将地面通信常用的ip数据包重新打包为bp数据包,从而在dtn网络中发送,使其获得dtn网络的延迟容忍、能够容忍低信噪比的优点,使得数据的传输更加可靠。

附图说明

图1为本发明面向dtn/ip协议栈的网络连通设备的整体流程。

图2为一次具体的ip数据包与dtn数据包转化、转发的流程。

图3为dtn网络中节点使用cgr计算路径的所需信息。

图4为dtn网络中节点使用cgr计算路径的所需信息。

具体实施方式

本发明实现赋予一台单片机面向dtn/ip协议栈的网关的功能,在单片机中烧入linux操作系统,在此单片机所处的链路中,它抓取发往指定ip的以太网帧,在解析并重新打包成bp包,并于dtn网络中进行转发,同时也能接收bp包并进行解析与转发。

在这个基于dtn网关中,一共分为5个模块,分别是链路接入模块;抓帧、解析模块;bp打包、转发模块;bp接收、解析模块;数据发送模块。

链路接入模块将单片机网关接入数据链路中。

抓帧、解析模块,负责了从以太网中抓取发往指定ip的以太网帧,并解析其中内容,从而为下一步对其打包成bp包做好准备。在此模块中,使用libpcap库,通过pcap_open_live()打开网络接口。使用pcap_loop()函数对数据链路中发往指定ip的以太网帧进行循环抓帧,并调用并以16进制数的形式表示其中获取的所含内容。使用voidcallback()回调函数,在每次pcap_loop()抓取一个以太网帧后运行,在此模块中,以太网帧内容以16进制数形式发送给bp打包、转发模块。

打包、转发模块接收到从抓帧、解析模块处接收到数据包内容与目标ip,进而得到目标ip对应的dtn节点,将数据包内容打包为bp包,发往目标dtn节点。该模块将运行contactgraphrouting(cgr)动态路由算法,计算bp包的最佳转发路径。cgr是一个动态路由系统,它通过dtn网络中通信联系人的时变拓扑来计算路由。每一个dtn节点都具有以下信息:

(1)每两个节点之间路径开始连通的utc时间;

(2)这些路径断开的utc时间;

(3)各节点之间的距离;

(4)每两个相邻节点的计划传输速率,以每秒字节数为单位;

其中各路径之间的距离s以及两个相邻节点的计划传输速率v计算出在此路径上传输的花费,设其为t,t=s/v,将t作为节点与节点之间路径的权值计算最佳路径;

在拥有各路径存在的时间以及各路径的权值之后,通过dijkstra算法,计算出每一个节点在指定时间内到任意某一个节点的最短路径;在任意一个dtn节点发送任意一个bp包时,均调用cgr动态路由算法,从而决定下一跳节点。

接收、解析模块从链路接入模块中,接收发到本dtn节点的bp包,对其进行解析,从而得到其中具体内容,并将内容提交给数据发送模块。在此模块中,bp_receive()函数抓取目标节点为本网关的bp包并转发至解析函数bp_resolution()进行解析,并将解析结果发往数据发送模块。

数据发送模块从接收、解析模块中获取数据,最终将数据通过ip数据包发往指定ip。

下面结合说明书附图和实施例对本发明作进一步说明。

一个面向dtn/ip协议栈的网络连通器,一共分为5个模块,分别是链路接入模块;抓帧、解析模块;bp打包、转发模块;bp接收、解析模块;数据发送模块。

在实例中使用的单片机是alinxax7020开发板。

如图2所示,在网络中,单片机通过链路接入模块,接入在链路中,一条发往ip为192.168.1.22的ip数据包,被网关的抓帧、解析抓取,并进行解析。紧接着解析出的结果被发送往打包、抓发模块,而打包转发模块则会通过cgr动态路由算法,计算该bp包的下一跳应该是哪一个节点。

如图3、图4所示,是图2中1到3号节点中包含的各节点之间,每两个节点之间路径开始连通的utc时间。这些路径断开的utc时间。每两个相邻节点的计划传输速率,以每秒字节数为单位。各路径的长度。具体的,图3中“+1”意为两节点之间路径于第1秒时连同,“+3600”意为两节点之间路径于第3600秒时断开。“100000”意为这两节点之间通路之间最大传输速率为100000字节每秒;图4中最后的“1”与“2”则表示各路径的长度。显然,在cgr计算路径之后,1号节点即第一个网关节点会直接通过1号与3号节点之间的通路传输bp包。

3号节点即第二个网关同样地通过链路接入模块接入在链路中,其bp接收、解析模块接收到bp包后,随机对bp包进行解析,从而获得其中内容,再通过数据发送模块,将其发送往目标ip——192.168.1.22。

至此,实现了ip包转化为bp包,并于dtn网络中传输,并最终重新打包为ip包于以太网中发送的全过程。

综上所述,本发明能够实现让一台单片机从接入的以太网中,抓取发往指定ip的以太网帧,解析其中内容,并将其打包为bp包,并继而实现对bp包的延迟容忍传输。在接收到bp包后,能够对其进行解析,从而得到其中内容,进而将内容重新打包为ip包继续转发。以上功能,综合构成了一个面向dtn/ip协议栈的网络连通设备。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1