Download presentation
Presentation is loading. Please wait.
1
Working Group Draft for TCPCLv4
Brian Sipos RKF Engineering Solutions IETF97
2
Overview Brief Background (updated) Summary of protocol changes
Status of draft and proof-of-concept
3
Motivations for Updates to TCPCL
During implementation of TCPCLv3, Scott Burleigh found an ambiguity in bundle acknowledgment and refusal. For use in a terrestrial WAN, I have a need for TLS-based authentication and integrity. TCPCLv3 mentions TLS but does not specify its use. Reduced sequencing variability from TCPCLv3 Allow an endpoint to positively reject a message (rather than simply ignoring it).
4
Goals for TCPCLv4 Do not change scope or workflow of TCPCL!
As much as possible, keep existing requirements and behaviors. The baseline spec was a copy-paste of TCPCLv3. Still using single-phase contact negotiation, re-using existing headers and message type codes. Allow existing implementations to be adapted for TCPCLv4. Re-use existing encoding, type and reason codes. Avoid duplication of IANA assignments. Since workflow is preserved, majority of message types are retained. This inherits limitations from TCPCLv3 for the sake simpler implementation changes.
5
Summary of Changes from TCPCLv3
Removes variability in transfer message sequencing Now a fixed nominal sequence of LENGTH, DATA_SEGMENT, and DATA_ACKNOWLEDGE messages Removes all use of SDNV Adds ability to initiate TLS within TCPCLv4 session Adds Transfer ID field to messages Adds segment/transfer maximum size to contact header It’s simple compared to earlier draft and even compared to TCPCLv3 Very few protocol branching options are provided
6
Protocol Status Current draft spec. has been adopted by the WG
Version 00 incorporates all WG comments from last interim IETF discussion URL: A rough but usable implementation is available on GitHub Implementation has been updated for I-D version 00 URL:
7
Proof-of-Concept Implementation
A simple TCPCLv4 implementation has been made as a Python daemon Daemon talks TCPCL on the protocol side and D-Bus on the service side Allows point-to-point bundle transfer (really just opaque data transfer) Performs basic bundle queueing Could be used as the basis to interoperation testing of more ‘full stack’ CL implementation Provides the “running code” to go along with “rough consensus”.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.