1 / 17

DTN Bundle Spec Updates IETF63 – 02-Aug-05

DTN Bundle Spec Updates IETF63 – 02-Aug-05. Delay Tolerant Networking Research Group Kevin Fall ( kfall@intel.com ) (work mostly by S. Burleigh, K. Scott, and others) http://www.dtnrg.org. draft-irtf-dtnrg-bundle-spec-03. now on version 4 about 50 pages, including:

nathan
Download Presentation

DTN Bundle Spec Updates IETF63 – 02-Aug-05

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DTN Bundle Spec UpdatesIETF63 – 02-Aug-05 Delay Tolerant Networking Research Group Kevin Fall (kfall@intel.com) (work mostly by S. Burleigh, K. Scott, and others) http://www.dtnrg.org

  2. draft-irtf-dtnrg-bundle-spec-03 • now on version 4 • about 50 pages, including: • definitions, services provided, abstract service interface, message formats, forwarding/error generating/fragmentation/reassembly/custody-transfer procedures • requirements of CL implementations • Not covered: CL internals, forwarding, routing, security

  3. Nodes, EIDs, Names • General format [see RFC3986]: • <scheme-name>:<SSP (scheme-specific part)> • limit to 1023 bytes • strings stored in ‘dictionary’ in primary header • 2-byte offset (to scheme, to SSP) • (IANA keeps registry of official scheme names) • bp0 (base scheme) format: • //<host>[:port]/<app-tag> • used for Internet (IPv4) case • likely to evolve or be replaced (its sort of a placeholder) • none scheme format • used for custody bundles w/no custodian • (e.g. when source cannot support custody)

  4. Nodes and EIDs 3 Node: C 4 Bundle Protocol Agent Admin Element 2 B Bundle Protocol Agent CLA X CLA Y CLA Z E A

  5. Bundle construction • Mandatory headers: primary + payload • Primary header contains: • version, processing and CoS flags, time, life • source, destination, report-to, custodian EIDs • dictionary (EIDs are by reference) • Payload header contains: • length of payload, processing flags, payload always first always last

  6. e.g. a fragment Primary Bundle Header +----------------+----------------+----------------+----------------+ | Version | Proc. Flags | COS Flags |Header length(*)| +----------------+----------------+----------------+----------------+ | Destination scheme offset | Destination SSP offset | +----------------+----------------+----------------+----------------+ | Source scheme offset | Source SSP offset | +----------------+----------------+----------------+----------------+ | Report-to scheme offset | Report-to SSP offset | +----------------+----------------+----------------+----------------+ | Custodian scheme offset | Custodian SSP offset | +----------------+----------------+----------------+----------------+ | | + Creation Timestamp (8 bytes) + | | +---------------------------------+---------------------------------+ | Lifetime | +----------------+----------------+----------------+----------------+ | Dictionary length (**) | +----------------+----------------+----------------+----------------+ | Dictionary byte array (variable) | +----------------+----------------+---------------------------------+ | [Fragment offset (***)] | +----------------+----------------+---------------------------------+ | [Total application data unit length (****)] | +----------------+----------------+---------------------------------+ SDNVs present if a fragment

  7. Bundle Payload Header +----------------+----------------+----------------+----------------+ | Header type | Proc. Flags | Header length(*****) | +----------------+----------------+----------------+----------------+ | | | Bundle Payload (variable) | | | / / / / | | +-------------------------------------------------------------------+ required for all extension headers

  8. SDNVs • Self-Delimiting Numeric Values: • support unforeseen needs • “compact” encoding for wide range of integer values • similar to ASN.1 encoding of object ID arcs • no hard upper limit on values • Value comprises bytes 1..N • MSb in byte N is 0; the rest are 1’s • value is concatenation of 7 LSb’s in bytes (1..N) • can handle ~16-30 bit values “well” • also allows you to carry much larger values • We are not completely wed to this, but …

  9. SDNV Example • 0xABC (1010 1011 1100) is encoded as follows: • 10010101 00111100 • 0x1234 (0001 0010 0011 0100) is encoded as: • 10100100 00110100 • 0x7f (0111 1111) is encoded as: • 01111111  • 0x8f (1000 1111) is encoded as: • 10000001 00001111 

  10. Processing flags • Bundle primary header proc. flags • bundle is a fragment • ADU is an ‘administrative record’ • bundle must not be fragmented • Other header proc. flags • header must be replicated on fragmentation • send status report of header proc. problem • discard bundle if header proc. problem • (allows some diag for working w/new hdrs)

  11. Report Requests +---------+-------------------------------------------+ | Value | Byte Meaning | +=========+============================================+ | 00000 | No delivery records requested. | +---------+--------------------------------------------+ | 00001 | Request reporting of bundle reception. | +---------+--------------------------------------------+ | 00010 | Request custody acceptance reporting. | +---------+--------------------------------------------+ | 00100 | Request reporting of bundle forwarding. | +---------+--------------------------------------------+ | 01000 | Request reporting of bundle delivery. | +---------+--------------------------------------------+ | 10000 | Request reporting of bundle deletion. | +---------+--------------------------------------------+

  12. Custody Transfer • Custody requested and required • API may include requested/required • source must accept custody if ‘required’ set • custody transfer requested in bundles • custody moved along by signals • Custody transfer fails across ‘diodes’ • but may indicate trial across diode • Custody may be taken if not requested

  13. Processing Admin Records • Bundle status reports (BSRs) • sent to ‘report-to’ EID • reception, custody accepted, forwarded, delivery, deletion • Signals • custody transfer succeeded/failed • (current custodian EID updated) • Open issues • What do you get back on an error? • Should it be like ICMP?

  14. Convergence Layers • Services required of a CL • sending to/toward all nodes in an EID • delivering received bundles to the agent • Abstract API functions • Requests: send.request • Indications: send.report, bundle.indication • Params: receiving EID, bundle, bundle length, send result

  15. Backups

  16. General Processing (1) • Processing a Transmission Request • sent to ‘report-to’ EID • Bundle dispatching • Bundle forwarding • Forwarding ‘contraindicated’ • Forwarding failed • Bundles that expire • Bundle reception

  17. General Processing (2) • Local bundle delivery • Fragmentation / Reassembly • Custody Transfer

More Related