Lab session on IBR-DTN Ioannis Komnios (ikomnios@ee.duth.gr) - - PowerPoint PPT Presentation

lab session on ibr dtn
SMART_READER_LITE
LIVE PREVIEW

Lab session on IBR-DTN Ioannis Komnios (ikomnios@ee.duth.gr) - - PowerPoint PPT Presentation

Lab session on IBR-DTN Ioannis Komnios (ikomnios@ee.duth.gr) Workshop on New Frontiers in Internet of Things Trieste, 15 March 2016 IBR-DTN overview Modular implementation of Bundle Protocol in C++ Initially embedded devices and later


slide-1
SLIDE 1

Lab session on IBR-DTN

Ioannis Komnios (ikomnios@ee.duth.gr)

Workshop on New Frontiers in Internet of Things
 Trieste, 15 March 2016

slide-2
SLIDE 2

IBR-DTN overview

Modular implementation of Bundle Protocol in C++ Initially embedded devices and later extended for Android devices Suitable for OpenWRT routers Developed by the Technical University of 
 Braunschweig in 2008 and still gets updates! 3 Android apps exist

slide-3
SLIDE 3

IBR-DTN daemon

slide-4
SLIDE 4

IBR-DTN documentation

Webpage:


https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/

Wiki:


https://trac.ibr.cs.tu-bs.de/project-cm-2012-ibrdtn/wiki

slide-5
SLIDE 5

Supported systems

Installation available for: OpenWRT Debian/Ubuntu Debian ARM MacOS X Gentoo Linux Windows

slide-6
SLIDE 6

Finding the right one

Check the following repository list to find 
 the right distribution for your system:


http://download.opensuse.org/repositories/home:/j_morgenroth/

slide-7
SLIDE 7

…and authenticating it

First, we need to add the corresponding PGP key to our apt keyring in order to be able to authenticate the package:
 
 wget -O - http://download.opensuse.org/repositories/home:/ j_morgenroth/[distribution]/Release.key | \sudo apt-key add - In our case:
 
 wget -O - http://download.opensuse.org/repositories/home:/ j_morgenroth/xUbuntu_14.04/Release.key | \sudo apt-key add -

slide-8
SLIDE 8

Update repositories list

Then, we find the list of repositories (/etc/apt/sources.list)
 
 and add the corresponding URL:
 
 deb http://download.opensuse.org/repositories/ home:/j_morgenroth/[distribution] ./ In our case:
 
 deb http://download.opensuse.org/repositories/ home:/j_morgenroth/xUbuntu_14.04 ./

slide-9
SLIDE 9

Update and install

sudo apt-get update
 
 sudo apt-get install ibrdtnd ibrdtn-tools

slide-10
SLIDE 10

Alternatively

Install from source Download the source code:
 
 https://trac.ibr.cs.tu-bs.de/project-cm-2012-ibrdtn/wiki/source Unzip (tar), configure (./configure), build (make) and copy the executables to the right directories (make install)
 
 ibrcommon-1.0.1.tar.gz
 ibrdtn-1.0.1.tar.gz
 ibrdtnd-1.0.1.tar.gz
 ibrdtn-tools-1.0.1.tar.gz


slide-11
SLIDE 11

Configuration file

A sample configuration file is available in
 /etc/ibrdtn/ibrdtnd.conf You can either run the default configuration file OR 
 Copy this sample configuration file to another folder (e.g. Desktop) and make your changes

slide-12
SLIDE 12

Configuration file

slide-13
SLIDE 13

Configuration file

slide-14
SLIDE 14

Configuration file

slide-15
SLIDE 15

Configuration file

slide-16
SLIDE 16

Configuration file

slide-17
SLIDE 17

Configuration file

slide-18
SLIDE 18

Available interfaces?

ifconfig

slide-19
SLIDE 19

Daemon options

slide-20
SLIDE 20

Running the daemon

dtnd -i interface_name In this case: dtnd -i eth1 *This will run the default configuration file*

slide-21
SLIDE 21

Running the daemon

dtnd -i interface_name In this case: dtnd -i eth1

Did anyone notice this?

slide-22
SLIDE 22

Running the daemon

dtnd -i interface_name In this case: dtnd -i eth1

Another instance of dtnd is running on the background

slide-23
SLIDE 23

Stopping dtnd

sudo service ibrdtnd stop

slide-24
SLIDE 24

Stopping dtnd

sudo service ibrdtnd stop

Solved!

slide-25
SLIDE 25

Your own configuration file

If you want to run you own configuration file:
 


  • Enter the folder where the configuration file is stored
  • Execute dtnd as follows:



 dtnd -i eth1 -c myConfigurationFile.conf

slide-26
SLIDE 26

dtnping

In a new terminal tab: dtnping nodename/echo In this case: dtnping dtn://ikomnios/echo

In a similar way we can also ping another host. Give it a try!

slide-27
SLIDE 27

Two different hosts run IBRDTN: Host 1: dtn://ikomnios Host 2: dtn://ikomnios-VirtualBox Host 1 creates a file (that includes a message) to send to Host 2 echo This file is for Host 2! > myFile

dtnsend - dtnrecv

Was the file created?

slide-28
SLIDE 28

Host 1 Terminal & Desktop

slide-29
SLIDE 29

Host 2 sets up a dtnReceiver to receive the message dtnrecv --name dtnReceiver Host 1 send the file to Host 2 dtnsend dtn://ikomnios-VirtualBox/dtnReceiver myFile

dtnsend - dtnrecv

Was the file sent? Was the file sent?

slide-30
SLIDE 30

Host 2 sets up a dtnReceiver to receive the message dtnrecv --name dtnReceiver Host 1 send the file to Host 2 dtnsend dtn://ikomnios-VirtualBox/dtnReceiver myFile

dtnsend - dtnrecv

Was the file sent?

slide-31
SLIDE 31

Now disable the interface of Host 2 and let Host 1 send

  • ne more file

dtnsend - dtnrecv

Is the file sent?

slide-32
SLIDE 32

Now disable the interface of Host 2 and let Host 1 send

  • ne more file

Re-enable the interface.

dtnsend - dtnrecv

What happens?

slide-33
SLIDE 33

The tools dtninbox and dtnoutbox can automatize the process of sending and receiving bundles If a new file is created in the outbox, it will be delivered into the inbox automatically.

dtninbox - dtnoutbox

slide-34
SLIDE 34

Host 1 (dtn://ikomnios) is the receiving side
 dtninbox inboxReceiver InboxFolderName/ Host 2 (dtn://ikomnios-VirtualBox) is the sending side
 dtnoutbox outboxSender OutboxFolderName/ Host1Name/ inboxReceiver

dtninbox - dtnoutbox

slide-35
SLIDE 35

dtninbox - dtnoutbox

Now add a file in the outboxFolder? What happens?

slide-36
SLIDE 36

dtninbox - dtnoutbox

Now add a file in the outboxFolder? What happens?

slide-37
SLIDE 37

Recap

IBR-DTN installation in Ubuntu 14.04 Default configuration file dtnd
 dtnping 
 dtnsend 
 dtnrecv 
 dtninbox 
 dtnoutbox

slide-38
SLIDE 38

IBR-DTN apps

Also check out the IBR-DTN version available for Android mobile devices in Google Play Store: IBR-DTN (the IBR-DTN daemon for Android) ShareBox (shared folder application) Whisper (messaging application) Talkie (walkie-talkie application)

Johannes Morgenroth, Sebastian Schildt, and Lars Wolf. 2012. A bundle protocol implementation for android devices. 
 In Proceedings of the 18th annual international conference on Mobile computing and networking (Mobicom '12). ACM, New York, NY, USA, 443-446. 
 DOI=http://dx.doi.org/10.1145/2348543.2348606

slide-39
SLIDE 39

01

Thank you for your attention!

Any questions?