容断/容迟网络通信过程分析

时间:2022-10-25 11:53:31

容断/容迟网络通信过程分析

摘要:当前,以TCP/IP协议为基础的Internet已经被广泛应用。但是Internet并不能很好应用于,例如星际间卫星网络,军事战场网络等具有较大时延,频繁中断,非对称信道和高误码率等特征的网络。容断/容迟容忍网络(Disruption/Delay Tolerant NetworkDTN)提出了一种架构和解决方案来解决以上环境中所遇到的通信问题。该文的主要内容包括:1) DTN架构和Bundle协议的简介。2) 典型DTN应用通信过程和束(bundle)结构的分析。

关键词:容迟/容断网络;Bundle 协议;DTN2

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)04-0768-03

Analysis of Delay/Disruption Tolerant Network Communication Process

LIU Xin-yu, LI Bing, DING Bao-ping

(Institute of Command Automation, PLA Univ. of Sci. & Tech., Nanjing 210007, China)

Abstract: Currently, the TCP/IP protocol-based Internet has been widely used. But the Internet is not well applied in, for example, interstellar satellite network, the military battlefield networks which have large delays, frequent interrupts, non-symmetric channel and high bit error rate characteristics. Delay/Disruption Tolerant Network (DTN) presents a framework and solutions to solve the above problems. The main contents include:1) introduction ofDTNarchitecture and Bundle protocol.2) A typical communication process of DTN application and the analysis of the bundle structure.

Key words: DTN; bundle protocol; DTN2

1 Delay and Disruption-Tolerant Network 概念

1.1 区域网络(Regional Network)

每一种网络及其所使用的协议都只适用于其所在的特定的通信区域,我们称之为区域网络。在同一个区域中通信的条件或环境是相类似的。各个区域网络之间由于使用的协议不同一般是无法相互通信的。Internet是一个区域网络的一个特例。

1.2 受限网络(Challenged Network)特征

Internet不适合应用于受限的网络环境。例如:星际间卫星通信网络(Inter-Planet Satellite Communication Network)[1,3]中断比较频繁,传播时延很长,误码率较高。军事战场网络(Military Battlefield Network)[1,3]由于干扰或破坏链路的中断比较频繁,节点移动性强输速率低,误码率较高。这种网络我们一般统称为受限网络。受限网络一般具有以下特征:

1) 链路间歇性连通,端到端的连通链路不是总是存在的,是间歇性的存在的。

2) 时延较长,节点之间较长的传播时延和节点中易变的排队时延。

3) 非对称的数据传输速率。

4) 高误码率,由于多种原因使得Challenged Network的链路在传输过程中存在较高的误码率。

1.3 DTN概念

时延容忍网络是一个区域网络的网络,它是一个位于各个区域网络之上的覆盖层,包括Internet。通过容忍区域网络内和区域网络之间的较长的时延并在区域网络之间转换通信格式和参数,DTN支持区域网络内部和区域网络之间的相互通信和互操作。[1,3]

2 DTN 架构和Bundle协议

设计DTN架构的目的是为了提供一种普遍的解决方案解决苛刻环境下的通信问题,支持各种区域网络包括Internet和各种受限网络的内部通信和区域网络间的通信和互操作。

1) 使用存储转发的方式来交互信息。[1,7]

在受限网络条件下由于连通的间歇性,较长时延,非对称信道和高误码率等问题,所以Internet的信息的交互方式已经不合适。为了克服这些问题,DTN通过采用类似邮政系统的存储转发的方式进行信息的交换。这种方式要求每个节点都要有一个持续存储设备(例如硬盘),这个持续存储设备要求能够无限期的存储信息。我们把这个存储设备叫做节点的持续存储(Persistent Storage)。使用存储转发方式进行信息的交换时,信息从一个节点的持续存储被转发到另一个节点的持续存储。消息的转发过程如图1所示。

2) 束层(Bundle Layer)[3,6]

DTN通过在各个区域网络的各种协议层之上覆盖一个新的协议层即Bundle协议层,来实现在各个区域网络的交互。Bundle协议层与各个区域网络的各种下层协议紧密结合在一起从而支持区域内和区域间的应用程序的通信。将Bundle协议层应用于各种的网络,那么它们就可以通过Bundle进行网络内和网络间的通信和互操作,这就组成了一个DTN。而在各种网络中Bundle层的下层协议是各种网络所特有的,适应自己所在网络环境的协议栈。图2表示的是一个Bundle经过DTN网络中各种节点的传输过程。

3 典型DTN应用的交互过程和Bundle内容分析

RFC4838和RFC5050分别对DTN的架构和Bundle协议做了详细的介绍。DTN2按照其标准实现了DTN的架构和Bundle协议[5-6],它是一个实验平台使研究者能够在此之上进行DTN的相关实验,DTN2不仅适用于对于DTN的研究工作,也有很好的使用价值,可以直接用于实际的部署。我们实验的目的是在DTN2平台之上对DTN协议在受限网络环境下的DTN协议的工作过程进行分析和验证。

3.1 实验环境

搭建的DTN实验环境如图3所示。一共有3台机器,A和B作为终端,C作为路由器。网络分为两个网段,分别是192.168.1/24和10.1.1/24。A、B、C都安装DTN2。抓包工具使用Wireshark。A、B的EID分别为dtn://lxy.dtn和dtn://dbp.dtn。

3.2 DTN2中典型应用通信过程分析

我们以DTN2中的dtnsend应用程序为例分析DTN协议的工作过程。dtnsend是一个从一个节点向另一个节点发送数据的应用程序。在试验中我们使用dtnsend从A向B发送一个”hello”字符串。

我们通过抓包对通信过程进行分析,我们在A运行dtnsend应用程序,并分别在A点和C点的地址为192.168.1.2的网卡上抓包。A点抓包结果如图4所示,C点抓包结果如图5所示。

图4 A点抓包结果 图5 C点抓包结果

由抓包结果我们可知在bundle的传输过程中,A首先通过TCP连接将bundle传送给C,然后C通过TCP连接将bundle传送给B。注意A和B之间并不存在TCP连接,这是和Internet不同的地方。A,B和C的通信过程如图6所示。

1) 从第1步到第3步可以称为DTN的握手阶段,其中包括了TCP的握手过程。在dtn2中一但两个节点成功完成DTN握手,即使bundle发送完毕也不立即结束,而是一直由Bundle协议维持这个握手状态即保持连接,直到其中一个节点由于正常或非正常原因本次连接断开,下次通信时再重新建立握手状态。这样避免了多次连接对资源造成的浪费。

2) 第4步是bundle的发送。A点将bundle发送给C点,C点再转发给B点。C与B的交互过程与A与C的交互过程类似。C点起到了路由的作用,屏蔽了不同网络间的差异,通过C点又能使得两个网络能够正常通信。这样如果是两边是不同网络环境时也不会相互影响能够正常通信。

3.3 束结构的分析

在这一部分我们将详细分析图7通信过程中所发送的bundle的结构和字段内容,从而对RFC5050中bundle的结构进行分析和验证。

通过RFC5050我们可知一个bunlde至少由两个Block连接而成,而且第一个必须是Primary Block。下面我们首先分析Primary Block。通过多次实验结果和RFC5050中bundle的结构相验证比较,我们发现在dtn2中Primary Block的前两个字节并不属于RFC5050中规定的标准字段,我们通过实验认为dtn2对bundle添加了两个字节,这两个字节在Primary Block 的开头,在我们的例子中这两个字节为,0x13 0x3d。在本文中不对这两个字节做解释,我们从第三个字节开始分析。

1) 版本号字段,用于表示所使用的Bundle协议的版本,大小为1Byte。第三个字节0x06为字段值。

2) 控制处理标志(Proc Flags)字段,这个字段是对bundle处理方式的说明字段,这个字段使用的是SDNV编码方式字段的,0x81 0x10两个字节是字段值,解码之后为10010000,根据RFC5050中对Proc Flags字段的定义,10010000表示此次bundle的目的节点只有一个(单播),bundle的优先级为Normal。

3) 块长度,这个字段表示Primary Block这个字段之后的剩余的总字节数,这个字段使用的是SDNV编码方式,字段值是0x31,解码后为00110001,即49个字节。通过这个字段我们知道Primary Block的结束位置如图8所示,图中划红线的部分是Primary Block。剩余部分为Payload Block。

Primary Block全部分析完成。发现DTN2中的Primary Block遵守了RFC5050中的标准结构,但是在开头实现时添加了两个额外字节。Primary Block后面紧接的是Payload Block,下面我们继续分析Payload Block中的字段。整个Payload Block 是图9中划红线的部分。

1) Block类型字段,这个字段占用一个字节,用于说明这个Block的类型,其中1表示Payload Block。

2) 块控制处理标志字段,这个字段包含对这个的处理和操作的说明,这个字段使用的是SDNV编码方式,所以0x08是这个字段的值,解码为0001000,与RFC5050中对这个字段的规定比较,这个字段表示这是最后一个Block,与实验相符。

3) Block长度,这字段表示这个Block中声誉部分的长度,使用SDNV编码,所以值是0x05,表示剩余的部分有5个字节。可以查看图9,这是正确的。

4) 负载字段,这个字段放置应用程序的数据,内容为0x68 0x65 0x6c 0x6c 0x6f,ASCII解码为“hello”。这与实验是相符的,实验中发送的就是“hello”字符串。

Bundle的分析完成,可以看出DTN2遵守了RFC5050的规定,产生的Bundle是标准的,通信过程也是标准正确的。能够实现DTN协议的功能,用于部署DTN网络。

4 结束语

DTN网络通过采用面向消息的覆盖层网络代替了报文的存储转发,基于一跳的可靠传输代替了端到端可靠传输,存储-携带-转发代替了存储-转发。这些新的特性和理念,使得它能够很好的应用于各种受限网络,比如战场无线环境、深空通信等。我们将进一步研究DTN网络的基础理论并开发有效的DTN应用。

参考文献:

[1] Fall K.A Delay-Tolerant Network Architecture for Challenged Internets.in Proceedings of ACM SiGCOMM03[C].2003:27-34.

[2] Jain S,Fall K,Patra R.Routing in a delay tolerant network[C].SIGCOMM 04,2004,34:145-158.

[3] Choi D.Delay Tolerant Networks (DTNs): A Tutorial Challenges and Applications of Delay Tolerant Networks[Z].

[4] Delay tolerant networking research group[EB/OL]..

[5] Demmer M,Brewers E,Fall K,et al.Implementing Delay Tolerant Network[Z].IRB-TR-04-020,2004,28.

上一篇:基于AdHoc的校园寝室无线网络搭建 下一篇:CAD复杂三维设计模型在GIS中展示的实现方法