LTP for CCSDS April 2009 - The CCSDS Collaborative Work

Download Report

Transcript LTP for CCSDS April 2009 - The CCSDS Collaborative Work

National Aeronautics and Space Administration
Licklider Transmission Protocol (LTP):
An Overview
Scott Burleigh
Jet Propulsion Laboratory
California Institute of Technology
23 April 2009
1
National Aeronautics and Space Administration
What it is
• A retransmission protocol for delay-tolerant reliable
communication between two adjacent points in a network.
• Descended from the acknowledged transmission procedures of
CFDP, the CCSDS File Delivery Protocol.
• Originally designed to serve as a “convergence-layer” protocol
for the interplanetary leg(s) of an end-to-end path in a delaytolerant network (DTN).
– Runs just above link layer, e.g., CCSDS Telemetry/Telecommand.
• May also be useful for some kinds of terrestrial applications,
running above UDP/IP.
2
National Aeronautics and Space Administration
Where it fits in
file transfer, messaging, etc.
Bundle Protocol: routing, custody transfer
LTP
TCP
UDP
IP
PPP, Ethernet,
802.11, SONET…
encap
CCSDS
TM/TC
CCSDS
Prox-1
3
National Aeronautics and Space Administration
Chronology
• Late 2000 – initial LTP design drafts circulated within DTN team.
• February 2002 – CFDP approved by CCSDS.
• December 2003 – Mani Ramadas (Ohio University) volunteers to
work on an Internet Draft for LTP.
• March 2004 – Stephen Farrell (Trinity College, Dublin) joins up.
• 12 May 2004 – first LTP Internet Draft posted.
• Summer of 2004 – Stephen writes first implementation in C++.
• 19 August 2005 – Mani releases reference implementation in
Java.
• 1 December 2006 – Chris Krupiarz (Johns Hopkins University
Applied Physics Lab) reports on MESSENGER flight software
testbed exercise of an LTP implementation in C.
• October 2008 – Deep Impact Network Experiment demonstrates
the use of LTP on-board a spacecraft in interplanetary space
4
National Aeronautics and Space Administration
Features
• Can handle very large bandwidth-delay product.
• Tolerates lengthy, irregular interruption of link without data loss.
– Handle variation in round-trip time due to start and stop of contact.
• Minimizes overhead on low-capacity and/or asymmetric links.
– Selective NAKs. Aggregation of small client service data units into
larger blocks, acknowledged at block granularity.
• Optional accelerated retransmission: multiple checkpoints per
transmitted block, or interim reports prior to reception of
checkpoint.
• Partial reliability: checkpointing and retransmission for only the
first N bytes of a block, and N can be zero.
• Extension mechanism is built into the specification.
– Currently defined extension segments implement security.
5
National Aeronautics and Space Administration
How it works
• A block of client service data to be transmitted is divided into
segments. When the segments are transmitted, one or more
are flagged as checkpoints. When a checkpoint is received, the
receiver returns a report of cumulative reception for that block.
– Reports acknowledge checkpoints and either signal successful
reception or else trigger retransmission.
– Reports are explicitly acknowledged. Reports and checkpoints are
on timers, are retransmitted if not acknowledged.
• Known changes in remote peer’s transmission state may
dynamically revise timers.
• Deferred transmission. Multiple transmissions between two
peers may be in progress concurrently.
6
National Aeronautics and Space Administration
OWLT
deliver block to client
timeout
interval
deliver block to client
deliver block to client
deliver block to client
timeout
interval
no mutual visibility
(timer
suspended)
7
National Aeronautics and Space Administration
Timer revision (1 of 3)
(A)
transmit
original
segment
(D)
receive
ACK
(sender)
Original
countdown
timer
(receiver)
OWLT
(S) remote
engine
suspends
transmission
OWLT
(R) remote
engine
resumes
transmission
(C)
transmit
ACK
(B)
receive
original
segment,
queue ACK
queuing (etc.) margin time
signal propagation time
delay for suspended transmission
8
National Aeronautics and Space Administration
Timer revision (2 of 3)
(A)
transmit
original
segment
(D)
receive
ACK
(sender)
Original
countdown
timer
(receiver)
OWLT
OWLT
(C)
transmit
ACK
(S) remote
engine
suspends
transmission
(R) remote
engine
resumes
transmission
(B)
receive
original
segment,
queue ACK
queuing (etc.) margin time
signal propagation time
delay for suspended transmission
9
National Aeronautics and Space Administration
Timer revision (3 of 3)
(A)
transmit
original
segment
(D)
receive
ACK
(D’)
receive
ACK
(sender)
Original
countdown
timer
OWLT
(S) remote
engine
suspends
transmission
(receiver)
adjusted
countdown
timer
OWLT
(R) remote
engine
resumes
transmission
OWLT
OWLT
(C)
transmit
ACK
(B)
receive
original
segment,
queue ACK
(C’)
transmit
ACK
queuing (etc.) margin time
signal propagation time
delay for suspended transmission
10
National Aeronautics and Space Administration
LTP vs TCP (1 of 2)
TCP
LTP
architectural
elements
One durable, unbounded
connection per pair of ports.
“Window” is buffer of bytes in
transit on connection.
One temporary, bounded session
per transmission unit. “Block” is
buffer of bytes in transit within
session.
acknowledgments
ACKs on ranges of bytes in
window; SACK optional.
Selective NAKs on ranges of bytes
in block.
configuration of
communication
Connections are dynamically
opened, parameters negotiated.
No connection protocol.
Parameters are managed and
asserted.
demux
Port number. Different port number
at receiver for each connection.
Session number. Any number of
sessions may be delivering to the
same client.
concurrency
Number of concurrent open
connections is typically limited by
number of FDs.
Number of concurrently open
sessions is limited by available
space, possibly management.
11
National Aeronautics and Space Administration
LTP vs TCP (2 of 2)
TCP
LTP
sites of
retransmission
End-to-end. Retransmission sites
are co-located with applications.
Point-to-point. Retransmission
sites are co-located with routers.
delivery order
Bytes delivered in-order within
connection.
Bytes delivered in-order within
session, but sessions may
complete out of order.
timers
Timeout interval computed from
RTT history.
Timeout interval computed from
known OWLT and link state
schedule.
flow control
Number of unacknowledged bytes
in buffer is limited by each
connection’s window size.
Number of unacknowledged bytes
in all blocks is limited by max block
size and max number of sessions.
congestion control
Control window size for each
connection; slow start, AIMD.
No congestion control; bundle
protocol may do rate control.
12
National Aeronautics and Space Administration
Status of specifications
• Three LTP Internet Drafts began IRSG review in April of 2007,
were published as Internet RFCs in September of 2008:
– "Licklider Transmission Protocol - Motivation", RFC 5325
– "Licklider Transmission Protocol - Specification", RFC 5326
– "Licklider Transmission Protocol - Extensions", RFC 5327
13
National Aeronautics and Space Administration
Implementations
•
•
•
•
•
Stephen Farrell’s implementation in C++
Mani Ramadas’s implementation in Java
APL implementation in C
JPL implementation in C, used for DINET
Successful interoperation tests:
–
–
Between C++ and Java implementations at November 2006 IETF meeting
in San Diego
Between C++ and JPL implementations at March 2008 IETF meeting in
Philadelphia
14
National Aeronautics and Space Administration
Tracking the work
• Home page
– http://masaka.cs.ohiou.edu/ltp/
• Mailing list
– http://irg.cs.ohiou.edu/mailman/listinfo/ltp/
15
National Aeronautics and Space Administration
Acknowledgment
Part of this work was carried out at the Jet Propulsion Laboratory,
California Institute of Technology, under a contract with the
National Aeronautics and Space Administration.
16