ION-DTN开启LTP、UDP传输服务

在本人介绍ION的RC文件的博文中:

http://blog.csdn.net/hahachenchen789/article/details/54286644


详细介绍了ION-DTN的运行是依靠rc文件的配置,并分析了RC文件的组成。

在这份rc文件中,是利用LTP协议充当汇聚层的基本设置。

## begin ionadmin  
# ionrc configuration file for host3 in a 3node ltp test.  
#This uses ltp as the convergence layer.  
#command: % ionadmin host3.ionrc  
#This command should be run FIRST.  
#  
#Soochow University, April 2012  
# Initialization command (command 3).  
#Set this node to be node 3 (as in ipn:3).  
#Use sdr configuration of “ionconfig” file.  
  
1 1 ionconfig  
# start ion node  
s  
# Add some contacts.  
#They will start at +0 seconds from now, ending +86400 seconds from now.  
#They will connect node 1 to node 2, and connect node 2 to node 3.  
#They will transmit 125000 bytes/second.  
#Note that contacts are unidirectional, so order matters.  
  
a contact +0 +86400 1 2 125000  
a contact +0 +86400 2 1 125000  
  
# Add some ranges. These are the physical distance between nodes.  
#They will start at +0 seconds from now, ending +86400 seconds from now.  
#They will connect node 1 to node 2, and connect node 2 to node 3.  
#We will assume every range is one second. Data on the link is expected to take 1 second  
#to reach the other end (One Way Light Time).  
#Note that ranges cover both directions, so you only need define one range for any  
#combination of nodes.  
  
a range +0 +86400 1 2 1  
  
# set this node to consume and produce a mean of 1000000 bytes/second.  
  
m production 1000000  
m consumption 1000000  
m horizon +0  
## end ionadmin  
## begin ionsecadmin  
  
1  
e 1  
## end ionsecadmin  
## begin ltpadmin  
# ltprc configuration file for host1 in a 3node ltp test.  
#Command: % ltpadmin host3.ltprc  
#This command should be run AFTER ionadmin and BEFORE bpadmin.  
#  
#Soochow University, April 2012  
#  
#A warning: the ltp configuration is not ideal in this case.  
#please consult manual pages and other documentation for a better description.  
# Initialization command (command 1).  
# Establishes the LTP retransmission window.  
# (Prohibiting LTP from seizing all available storage).  
#A maximum of 5 sessions. A session is assumed to be around one second of  
#transmission. This value should be estimated at the sum of maximum round-trip  
#times(in seconds) for all "spans." Suggest throwing 20% higher number of sessions  
#to account for extra- long sessions which contain an actual retransmission. Set a total  
#LTP memory space usage limit of 1200000 as the sum of the memory space usage of  
#all spans (more or less the number of bytes in transit on all links for their duration).  
  
1 5 1200000  
# Add a span. (a connection)  
#Identify the span as engine number 2. That is the ipn node number of the node on  
#the other end of this span. Use 5 as the maximum number of export sessions.  
#Use 120000 as the maximum size of an export block. This more or less limits the  
#maximum size of a bundle in the system. The next two items are the maximum  
#number of import sessions and the maximum size of an imported block.  
#Since this is connect, we just copy the export numbers here.  
#1400 is the maximum segment size- more or less, the amount of data that can be  
#held in a single frame of the underlying protocol. In this case, UDP packets are  
#the frame, and we will give a conservative limit.  
#Limit the aggregation size to 120000 bytes, and set a time limit on aggregation to 1  
#second. Use the command 'udplso 10.0.0.4:1113' to implement the link itself.  
#In this case, we use udp to connect to host2 (10.0.0.4 is host2's ipaddr) using port 1113  
#(defined by IANA as the default UDP port for Licklider Transmission Protocol).  
#The single quote is important, don't use double quotes.  
a span 2 5 120000 5 120000 1400 120000 1 'udplso 10.0.0.4:1113'  
# Start command.  
#This command actually runs the link service output commands  
#(defined above, in the "a span" commands).  
#Also starts the link service INPUT task 'udplsi 10.0.0.5:1113' to  
#listen locally on UDP port 1113 for incoming LTP traffic.  
s 'udplsi 10.0.0.3:1113'  
m screening n  
w 1  
## end ltpadmin  
## begin bpadmin  
# bprc configuration file for host3 in a 3node ltp test.  
#Command: % bpadmin host3.bprc  
#This command should be run AFTER ionadmin and ltpadmin and  
#BEFORE ipnadmin or dtnadmin.  
#  
#Soochow University, April 2012  
# Initialization command (command 1).  
  
1  
  
# Add an EID scheme.  
#The scheme's name is ipn.  
#This scheme's forwarding engine is handled by the program 'ipnfw.'  
#This scheme's administration program (acting as the custodian daemon) is 'ipnadminep.'  
  
a scheme ipn 'ipnfw' 'ipnadminep'  
  
# Add endpoints.  
#Establish endpoints ipn:3.1 and ipn:3.2 on the local node.  
#The behavior for receiving a bundle when there is no application currently accepting  
#bundles, is to queue them 'q', as opposed to immediately and silently discarding  
#them (use 'x' instead of 'q' to discard).  
#Note that the custodian endpoint ipn:3.0 is automatically generated.  
a endpoint ipn:1.0 q  
a endpoint ipn:1.1 q  
a endpoint ipn:1.2 q  
# Add a protocol.  
#Add the protocol named ltp.  
#Estimate transmission capacity assuming 1400 bytes of each frame (in this case, udp  
#on ethernet) for payload, and 100 bytes for overhead.  
a protocol ltp 1400 100  
# Add an induct. (listen)  
#Add an induct to accept bundles using the ltp protocol.  
#The duct's name is 3 (this is for future changing/deletion of the induct).  
#The induct itself is implemented by the 'ltpcli' command.  
a induct ltp 1 ltpcli  
# Add an outduct. (send to host2)  
#Add an outduct to send bundles using the ltp protocol.  
#The duct's name is 2(this is for future changing/deletion of the outduct).  
#The outduct itself is implemented by the 'ltpclo' command.  
a outduct ltp 2 ltpclo  
#Start bundle protocol engine, also running all of the induct, outduct, and  
#administration programs defined above  
s  
#w 1  
## end bpadmin  
## begin ipnadmin  
# ipnrc configuration file for host3 in a 3node ltp test.  
#Essentially, this is the IPN scheme's routing table.  
#Command: % ipnadmin host1.ipnrc  
#This command should be run AFTER bpadmin (likely to be run last).  
#  
#Soochow University, April 2012  
# Add an egress plan.  
#Bundles to be transmitted to element number 2 can be transmitted directly to host2  
#using ltp outduct identified as ‘2.’  
#See your bprc file or bpadmin for outducts/protocols you can use.  
a plan 2 ltp/2  
## end ipnadmin  


其中,这一段是LTP传输的设置:

a protocol ltp 1400 100  
# Add an induct. (listen)  
#Add an induct to accept bundles using the ltp protocol.  
#The duct's name is 3 (this is for future changing/deletion of the induct).  
#The induct itself is implemented by the 'ltpcli' command.  
a induct ltp 1 ltpcli  
# Add an outduct. (send to host2)  
#Add an outduct to send bundles using the ltp protocol.  
#The duct's name is 2(this is for future changing/deletion of the outduct).  
#The outduct itself is implemented by the 'ltpclo' command.  
a outduct ltp 2 ltpclo  
#Start bundle protocol engine, also running all of the induct, outduct, and  
#administration programs defined above  
s  
#w 1  
## end bpadmin  
## begin ipnadmin  
# ipnrc configuration file for host3 in a 3node ltp test.  
#Essentially, this is the IPN scheme's routing table.  
#Command: % ipnadmin host1.ipnrc  
#This command should be run AFTER bpadmin (likely to be run last).  
#  
#Soochow University, April 2012  
# Add an egress plan.  
#Bundles to be transmitted to element number 2 can be transmitted directly to host2  
#using ltp outduct identified as ‘2.’  
#See your bprc file or bpadmin for outducts/protocols you can use.  
a plan 2 ltp/2  
## end ipnadmin  


这行代码是利用ltp作为汇聚层协议,数据帧的有效载荷是1400bytes,头部开销是100bytes。

a protocol ltp 1400 100  


该行代码是增加一个接收端口

a induct ltp 1 ltpcli  

该行代码是增加一个发送端口

a outduct ltp 2 ltpclo  

这行代码是增加一个发送计划

a outduct ltp 2 ltpclo  



以上是利用LTP,接下来利用UDP层作为汇聚层进行传输,只需修改上述的四行代码即可。


增加一个汇聚层协议,这里选择 UDP 协议

a protocol udp 1400 100

增加一个帧听(或接收)接口

a induct udp <Local IP Address>:<Local Port> udpcli
例如, a induct udp 10.0.0.3:4556 udpcli

增加一个发送(或外出)接口。

a outduct udp * udpclo

注: UDP 协议是无连接协议,在这里无须指明目的 IP 地址,“ * ”表示任意地址。


增加一个发送计划。

a plan <Number of Node> udp/*,<Destination IP Address>:<Destination Port>
例如, a plan 2 udp/*,10.0.0.4:4556


注:当 UDP 协议作汇聚层时,在增加发送计划的时候必须指明发送的目的 IP 地址和端口。



转载于:https://www.cnblogs.com/sichenzhao/p/9320261.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值