DTN7 An Open-Source Disruption-tolerant Networking Implementation - - PowerPoint PPT Presentation

dtn7
SMART_READER_LITE
LIVE PREVIEW

DTN7 An Open-Source Disruption-tolerant Networking Implementation - - PowerPoint PPT Presentation

DTN7 An Open-Source Disruption-tolerant Networking Implementation of Bundle Protocol 7 Alvar Penning, Lars Baumg artner, Jonas H ochst, Artur Sterz, Mira Mezini, Bernd Freisleben AdHoc-Now 2019 Delay / Disruption-tolerant Networking


slide-1
SLIDE 1

DTN7

An Open-Source Disruption-tolerant Networking Implementation of Bundle Protocol 7 Alvar Penning, Lars Baumg¨ artner, Jonas H¨

  • chst,

Artur Sterz, Mira Mezini, Bernd Freisleben AdHoc-Now 2019

slide-2
SLIDE 2

Delay / Disruption-tolerant Networking (DTN)

◮ Situations without a reliable uplink

◮ Environmental monitoring in remote areas ◮ Destroyed telecommunication infrastructure ◮ Internet access is blocked

1

slide-3
SLIDE 3

Delay / Disruption-tolerant Networking (DTN)

◮ Situations without a reliable uplink

◮ Environmental monitoring in remote areas ◮ Destroyed telecommunication infrastructure ◮ Internet access is blocked

1

slide-4
SLIDE 4

Delay / Disruption-tolerant Networking (DTN)

◮ Situations without a reliable uplink

◮ Environmental monitoring in remote areas ◮ Destroyed telecommunication infrastructure ◮ Internet access is blocked

◮ In DTN, data is transmitted in a store-carry-forward fashion

◮ Hop-by-hop transport ◮ Opportunistic or scheduled contacts to neighbors ◮ Allows large time window between two transmissions

1

slide-5
SLIDE 5

Delay / Disruption-tolerant Networking (DTN)

◮ Situations without a reliable uplink

◮ Environmental monitoring in remote areas ◮ Destroyed telecommunication infrastructure ◮ Internet access is blocked

◮ In DTN, data is transmitted in a store-carry-forward fashion

◮ Hop-by-hop transport ◮ Opportunistic or scheduled contacts to neighbors ◮ Allows large time window between two transmissions

1

slide-6
SLIDE 6

DTN7

This brings us to DTN7. . . ◮ Free and open-source DTN software ◮ Written in the Go programming language ◮ Modularized design, easy to extend ◮ Implementation of the recently released Bundle Protocol (BP)

2

slide-7
SLIDE 7

Bundle Protocol Version 7 (BP)

◮ Describes both a DTN architecture and protocol ◮ Still in development, but nearly finished ◮ Latest draft (version 14) was released on 04.08.2019 ◮ Aims to obsolete Bundle Protocol Version 6, RFC 5050

3

slide-8
SLIDE 8

Nodes and Endpoints

◮ Nodes are identified by an Endpoint ID (URI), e.g., dtn:node ◮ A node might be addressed by multiple Endpoint IDs ◮ An Endpoint ID might represent multiple nodes

dtn:s1 dtn:s3 dtn:s2 dtn:b1 dtn:b3 dtn:b2 Data Sinks / Servers Data Sources / Sensor Node dtn:sink/lux Payload Dst Src 27°C dtn:s3 dtn:b1/temp Payload Dst Src 3782 lx dtn:sink/lux dtn:b2/lux

4

slide-9
SLIDE 9

Bundles and Blocks

◮ BP packets are called Bundles ◮ A Bundle is a sequence of Blocks ◮ Binary represented in CBOR, RFC 7049

Bundle Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6 Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6

Canonical Blocks

5

slide-10
SLIDE 10

Bundles and Blocks

◮ BP packets are called Bundles ◮ A Bundle is a sequence of Blocks ◮ Binary represented in CBOR, RFC 7049

Bundle Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6 Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6

Canonical Blocks

5

slide-11
SLIDE 11

Bundles and Blocks

◮ BP packets are called Bundles ◮ A Bundle is a sequence of Blocks ◮ Binary represented in CBOR, RFC 7049

Bundle Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6 Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6

Canonical Blocks

5

slide-12
SLIDE 12

Bundles and Blocks

◮ BP packets are called Bundles ◮ A Bundle is a sequence of Blocks ◮ Binary represented in CBOR, RFC 7049

Bundle Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Primary Block Version: 7 Control Flags: Status requested for reception CRC Type: CRC32 Destination EID: dtn:sink/lux Source node EID: dtn:b2/lux Report-to EID: dtn:b2/lux Creation Timestamp: (0, 23) Lifetime: 3600000 CRC Value: 67 75 6D 6F Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6 Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Hop Count Block Type Code: 9 Number: 2 Control Flags: None CRC Type: None Data: (64, 42) Payload Block Type Code: 1 Number: 1 Control Flags: None CRC Type: None Data: 0E C6

Canonical Blocks

5

slide-13
SLIDE 13

Bundle Exchange

◮ Convergence Layer

◮ Transport technology for Bundles between nodes ◮ Implemented: MTCP, TCP ◮ Possible: Bluetooth, LoRa, Email, QR code, Pigeon, . . .

◮ Routing

◮ Selection of neighbors for Bundle delivery ◮ Implemented: DTLSR, Spray and Wait, Epidemic Routing

6

slide-14
SLIDE 14

Other DTN7 Components

◮ Store for Bundles that are waiting for delivery ◮ RESTful API to dispatch and fetch Bundles ◮ Peer Discovery to detect nearby nodes

7

slide-15
SLIDE 15

DTN7 Programs

◮ dtnd: DTN daemon ◮ dtncat: command line tool

# Sending a Bundle $ dtncat send http :// localhost :8080/ dtn:sink/lux <<< "3782lx" # Retrieving a received Bundle $ dtncat fetch http :// localhost :8080/

8

slide-16
SLIDE 16

DTN7 Architecture

Routing dtnd Discovery Store CLA Application Agent dtncat send fetch incoming new new nodes in / out discover (UDP) dtnd transmit (MTCP) (REST) Node … dtnmail dtnsense Node

9

slide-17
SLIDE 17

Evaluation

◮ Up to 64 nodes emulated in the Common Open Research Emulator (CORE) ◮ Nodes are connected pairwise in a chain topology ◮ Simulated IEEE 802.11g network, 54 MBit/s

10

slide-18
SLIDE 18

CORE

11

slide-19
SLIDE 19

Evaluation

◮ Payload Size

◮ 64 KiB: compressed image ◮ 1 MiB: small image / short audio recording ◮ 5 MiB: smartphone image / audio recording ◮ 25 MiB: longer audio recording / short video ◮ 50 MiB: HD video ◮ 100 MiB: 4K smartphone video

12

slide-20
SLIDE 20

Evaluation

◮ Payload Size

◮ 64 KiB: compressed image ◮ 1 MiB: small image / short audio recording ◮ 5 MiB: smartphone image / audio recording ◮ 25 MiB: longer audio recording / short video ◮ 50 MiB: HD video ◮ 100 MiB: 4K smartphone video

◮ DTN Software

◮ DTN7 ◮ Forban ◮ IBR-DTN ◮ Serval

12

slide-21
SLIDE 21

Transmission Time: Two Nodes

DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval 0.0 0.1 1.0 10.0 Transmission Time (s) 64 KiB 1 MiB 5 MiB 25 MiB 50 MiB 100 MiB

13

slide-22
SLIDE 22

Transmission Time: 64 Nodes

DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval DTN7 Forban IBR-DTN Serval 1 10 100 1000 Transmission Time (s) 64 KiB 1 MiB 5 MiB 25 MiB 50 MiB 100 MiB

14

slide-23
SLIDE 23

CPU and Network Usage: 32 Nodes, 25 MiB

25 50 75 100 125 150 175 200 20 40 60 80 100 Mbit/s

DTN7

25 50 75 100 125 150 175 200

Forban

25 50 75 100 125 150 175 200 Time (s) 20 40 60 80 100 Mbit/s

IBR-DTN

25 50 75 100 125 150 175 200 Time (s)

Serval

25 50 75 100 125 150 175 200 %CPU 25 50 75 100 125 150 175 200 %CPU

15

slide-24
SLIDE 24

DTN7

An Open-Source Disruption-tolerant Networking Implementation of Bundle Protocol 7

https://dtn7.github.io/