Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bundle Protocol Specification

Similar presentations


Presentation on theme: "Bundle Protocol Specification"— Presentation transcript:

1 Bundle Protocol Specification
Keith Scott Minneapolis, MN

2 This Presentation Current Bundle Protocol Spec Document
Expires soon (now) What’s in it What we like, don’t like, and are unsure about Bundle header picture Ways forward

3 TOC Expires: March 2005 Jet Propulsion Laboratory Table of Contents
Introduction Service Description Definitions Services at the User Interface Summary of Primitives Requests Indications Summary of Parameters Destination Communications endpoint ID Source Communications endpoint ID Report Communications endpoint ID Class of Service Delivery Options Lifespan Application Data Unit Delivery Failure Action Bundling Service Primitives SEND.REQUEST CANCELBUNDLE.REQUEST REGISTER.REQUEST START-DELIVERY.REQUEST STOP-DELIVERY.REQUEST CHANGE-REGISTRATION.REQUEST DEREGISTER.REQUEST POLL.REQUEST DATA.INDICATION SENDERROR.INDICATION SENDTOKEN.INDICATION REGISTRATIONTOKEN.INDICATION Bundle Message Format General Bundle Header Format Tuples Primary Bundle Header Bundle Payload Header Bundle Authentication Header Payload Security Header Bundle Fragment Header Dictionary Header Rules Governing the Appearance and Order of Headers..22 Bundle Processing Bundle transmission requests Bundles received from other bundle agents Internet Draft Bundle Protocol Specification September 2004 Delay Tolerant Networking Research Group K. Scott Internet Draft The MITRE Corporation <draft-irtf-dtnrg-bundle-spec-02.txt> September S. Burleigh Expires: March Jet Propulsion Laboratory

4 Things We’re Pretty Sure About
Service Primitives (§2.5) What’s there is good, some missing (more later) General Header Chaining Structure (§3.1) Administrative Payloads (§5) Application data where the bundle node is the application, and the data units support the operation of the bundle protocol itself Bundle status payloads, Custody ACKs, etc. Split of responsibilities between bundle & convergence layers (§6) Need to support bundle fragmentation / reassembly

5 Things We Think Are Good Ideas
Dictionary to improve header overhead (§3.8) Pointers in primary bundle header currently assume two-part naming Exchanging administrative (address) information at the beginning of a ‘contacts’ to enable ‘passive-mode’ transfers Need to formalize this as a particular type of administrative bundle

6 Things We Think Need Refinement
API required to implement security architecture Using multipath routing / forwarding to improve reliability / decrease latency How to remove duplicates once we decide they’re no longer needed? Support for forward erasure coding in conjunction with multipath routing / forwarding Protocol support for multipoint delivery

7 Things We Think Are Totally Open
Interaction between user desires and policy API for notification / negotiation Protocol support for streaming apps?

8 String Records (variable) String Count
32 bits Version Next Header CoS Flags Payl’d Security Primary Bundle Header Destination Source Report-to Custodian Creation Timestamp Dictionary Header Expiration Time Next Header String Records (variable) String Count Fragment Header Next Header Length of Original Bundle Payload Payload len (cont’d) Fragment Offset Frag. Offset (cont’d) Payload Class Length of bundle payload Payload Header Bundle Payload (variable) Length (cont’d)

9 Hash/MAC Length (2 bytes, SDNV?) Hash/MAC Length (2 bytes, SDNV?)
String (Variable) Dictionary String Format Length (1B) Security Stuff Bundle Auth. Header Hash/MAC Alg. (opt) Hash of all bundle fields (Primary header through end of payload) Hash/MAC Key ID (opt) Hash/MAC Length (2 bytes, SDNV?) Payload Security Header Hash/MAC covering: Primary bundle header, dictionary header, override report-to header source routing header (if present), payload security header (this), bundle payload header. Hash/MAC Alg. (opt) Hash/MAC Key ID (opt) Hash/MAC Length (2 bytes, SDNV?) SDNV = Self-Delimiting Numerical Value

10 Ways Forward Move from ‘Next Header’ to ‘Current Header’ identifiers?
Remove ‘Payload Class’ from payload header (holdover from before administrative bundles) Just a question: can we (do we want to) support ‘router-alert’ style administrative bundles? Include Length fields in headers (at least dictionary header?) Would allow padding of individual headers to XX-bit boundaries Security: Move all of security into separate headers? Payload security ‘above’ bundling Hop-by-hop security ‘below’ bundling Source Routing Header Next type, total length, # of entries, current entry index, list of tuples (and bits identifying loose/strict for each?)

11 Other Stuff To Add? DO specify how new header types can be defined in future documents Allow a new header type (TBD in separate document?) that a bundle router in the path can add to a bundle flowing through it NOT end-to-end significant (not covered by PSH, and ripped out at destination) Add ‘my id’ and ‘# of times I’ve seen it’ to detect/deal w/ replay Could implement as a general ‘added header type’ with above security example as one case Other (possibly non-security-related) applications


Download ppt "Bundle Protocol Specification"

Similar presentations


Ads by Google