Moving data in DTNs with HTTP and MIME Making use of HTTP for delay- and disruption-tolerant networks with convergence layers Lloyd Wood, Daniel Floreani, Peter Holliday, Ioannis Psaras e-DTN workshop, ICUMT, St Petersburg, 14 October 2009.
Why use HTTP? Why use HTTP? Why use HTTP? Why use HTTP? � MIME describes the things we move around the network. The most successful protocols support MIME. � HTTP is the simplest MIME wrapper. � HTTP provides infinitely-flexible text metadata. Applications Applications MIME SMTP HTTP TCP Moving data in DTNs 2
Decoupling HTTP from TCP underway Decoupling HTTP from TCP underway Decoupling HTTP from TCP underway Decoupling HTTP from TCP underway � Proposal in IETF to use HTTP over SCTP. � Could use HTTP over anything giving a reliable bitstream – HDLC, Saratoga , even direct over CCSDS bitstream service. CCSDS bitstream service. � Makes HTTP useful in more environments. Makes HTTP a standalone layer in its own right. Makes HTTP a standalone layer in its own right. Makes HTTP a standalone layer in its own right. Makes HTTP a standalone layer in its own right. � Decoupling HTTP from TCP opens doors to convergence layers for HTTP and to HTTP-DTN. Moving data in DTNs 3
HTTP (not the web) transports MIME HTTP (not the web) transports MIME HTTP (not the web) transports MIME HTTP (not the web) transports MIME � Use HTTP hop-by-hop between neighbouring DTN nodes. first HTTP transfer second HTTP transfer third HTTP transfer Content-Source: Content-Source: Content-Destination: Content-Destination: � Allow HTTP to be run over different transports: TCP, SCTP, Saratoga … HTTP can be separated from TCP’s limitations. Divide HTTP from transport to make a true session layer. � Adapts HTTP to each local environment. Moving data in DTNs 4
What makes HTTP What makes HTTP What makes HTTP - What makes HTTP -DTN DTN special? special? special? special? - - DTN DTN � Two new Content Content Content Content- -* - - * * * headers: Content Content Content Content- -Source: - - Source: Source: where the object is originally from Source: Content Content- -Destination: Destination: final destination Content Content - - Destination: Destination: � Basic HTTP rule: Content Content- -* * headers are special . If Content Content - - * * Content- blah is unfamiliar, reject the transfer. � This makes HTTP -DTN separate from, and not � This makes HTTP -DTN separate from, and not polluting, existing web. Unlikely to alarm W3C. � Optional e2e reliability over payloads by reusing existing Content Content- Content Content -MD5: - - MD5: MD5: MD5: header or similar. � Header/metadata reliability a bit trickier – may need new headers. HTTP already supports ‘per hop’ limited-scope headers. � New Package- headers can package related objects together, track if they’ve all arrived or not. Moving data in DTNs 5
HTTP is the waist in HTTP is the waist in HTTP is the waist in HTTP is the waist in this this hourglass hourglass hourglass hourglass this this DTN/ad-hoc/sensor applications imagery sensor data HTTP is the universal session glue. HTTP’s flexibility is its strength choose the transport to suit the conditions; choose the transport to suit the conditions; Free text fields aren’t tied to TCP, Free text fields aren’t tied to TCP, TCP in traditional Internet, Saratoga for DNS or even IP. Choose what to use HTTP high performance on dedicated links. with HTTP for optimum performance Separate session control from underlying over each link. transport, link and traffic conditions. SCTP TCP Saratoga IPv4 IPv6 custom wireless HDLC 802.x SONET… Moving data in DTNs 6
HTTP HTTP HTTP HTTP - -DTN DTN advantages advantages advantages advantages - - DTN DTN � Text fields aren’t tied to IP, TCP or to DNS. Could implement HTTP over own stack, with own routing namespace, etc. Easily modifiable, not a strange binary format. � Doesn’t require a two-way session; HTTP PUT could be entirely unidirectional. could be entirely unidirectional. � Reuses large body of existing code and well- understood functionality. Only minor changes. � Possible to build on top of HTTP -DTN base to reuse pieces of web infrastructure, e.g. SOAP. � Shares some of the Bundle Protocol’s problems, e.g. universal clock, but gets there with far less development work. Very very simple. Moving data in DTNs 7
What model do we use with HTTP DTN? What model do we use with HTTP DTN? What model do we use with HTTP DTN? What model do we use with HTTP DTN? � We don’t have to even use IP, but… � We still believe IP is useful for operational use of We still believe IP is useful for operational use of We still believe IP is useful for operational use of We still believe IP is useful for operational use of delay/disruption tolerant networks delay/disruption tolerant networks delay/disruption tolerant networks delay/disruption tolerant networks – IP is not just convenient/cheap for prototyping DTN code. � Make each transport layer work with HTTP and IP. The transport between HTTP and IP must support HTTP’s transport between HTTP and IP must support HTTP’s simple session semantics. � Pick the transport to match the local environment. � How do we build these transfers into a bigger architecture that can make forwarding and routing decisions? Open – there are many pieces of IP-based infrastructure that may be reusable, depending on the exact scenario. � Early days, interesting adaptation questions to address. Moving data in DTNs 8
A potential HTTP- A potential HTTP -DTN node DTN node A potential HTTP A potential HTTP - - DTN node DTN node only required on source and destination nodes Applications 5 1 1 storage/cache content manager DTN RP 3 HTTP server 2 Local transport signalling 4 file/object transfer Local network Moving data in DTNs 9
Issues Issues Issues Issues � Security Could reuse https: for hop-by-hop security. Could use S/MIME for end-to-end security – or applications could implement their own. Unsure. Early days yet. � Timestamps � pretty much the same timing/sync issues as the Bundle Protocol has come across. � Header overhead may be significant for small transfers; it’s the cost of flexibility. (Bit efficiency was gopher ’s strong point.) Moving data in DTNs 10
Questions? Questions? Thank you Moving data in DTNs 11
Recommend
More recommend