Licklider Transmission Protocol (LTP): An Overview

16
nal Aeronautics and Space Administration 1 Licklider Transmission Protocol (LTP): An Overview Scott Burleigh Jet Propulsion Laboratory California Institute of Technology 23 April 2009

description

Scott Burleigh Jet Propulsion Laboratory California Institute of Technology 23 April 2009. Licklider Transmission Protocol (LTP): An Overview. What it is. A retransmission protocol for delay-tolerant reliable communication between two adjacent points in a network. - PowerPoint PPT Presentation

Transcript of Licklider Transmission Protocol (LTP): An Overview

Page 1: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

1

Licklider Transmission Protocol (LTP):An Overview

Scott BurleighJet Propulsion Laboratory

California Institute of Technology

23 April 2009

Page 2: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

2

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 delay-tolerant 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.

Page 3: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

Bundle Protocol: routing, custody transfer

3

Where it fits in

TCP

CCSDSTM/TC

file transfer, messaging, etc.

PPP, Ethernet,802.11, SONET…

CCSDSProx-1

LTP

encapIP

UDP

Page 4: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

4

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

Page 5: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

5

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.

Page 6: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

6

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.

Page 7: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

7

OWLT

no mutual visibility

(timersuspended)

timeoutinterval

timeoutinterval

deliver block to client

deliver block to client

deliver block to client

deliver block to client

Page 8: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

8

OWLT OWLT

Originalcountdowntimer

(A)transmitoriginalsegment

(B)receiveoriginalsegment,queue ACK

(C)transmitACK

(D)receiveACK

(S) remoteenginesuspendstransmission

(R) remoteengineresumestransmission

(sender)

(receiver)

queuing (etc.) margin time

signal propagation time

delay for suspended transmission

Timer revision (1 of 3)

Page 9: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

9

OWLT OWLT

Originalcountdowntimer

(C)transmitACK

(S) remoteenginesuspendstransmission

(R) remoteengineresumestransmission

(sender)

(receiver)

(B)receiveoriginalsegment,queue ACK

queuing (etc.) margin time

signal propagation time

delay for suspended transmission

Timer revision (2 of 3)(A)transmitoriginalsegment

(D)receiveACK

Page 10: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

10

OWLT OWLT

Originalcountdowntimer

(S) remoteenginesuspendstransmission

(R) remoteengineresumestransmission

OWLT OWLT

adjustedcountdowntimer

queuing (etc.) margin time

signal propagation time

delay for suspended transmission

(C’)transmitACK

(D’)receiveACK

(sender)

(receiver)

(C)transmitACK

(B)receiveoriginalsegment,queue ACK

Timer revision (3 of 3)(A)transmitoriginalsegment

(D)receiveACK

Page 11: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

11

LTP vs TCP (1 of 2)

TCP LTParchitectural 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.

Page 12: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

12

LTP vs TCP (2 of 2)

TCP LTPsites 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.

Page 13: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

13

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

Page 14: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

14

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

Page 15: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

15

Tracking the work

• Home page– http://masaka.cs.ohiou.edu/ltp/

• Mailing list– http://irg.cs.ohiou.edu/mailman/listinfo/ltp/

Page 16: Licklider Transmission Protocol (LTP): An Overview

National Aeronautics and Space Administration

16

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.