From: Guus Sliepen Date: Fri, 25 Jul 2014 12:01:12 +0000 (+0200) Subject: Rename UTCP to README. X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=6934880365c13cfebe5806be0f40c4c45a5dcf84;p=utcp Rename UTCP to README. --- diff --git a/README b/README new file mode 100644 index 0000000..d5edf56 --- /dev/null +++ b/README @@ -0,0 +1,45 @@ +This is a light-weight, user-space implementation of RFC 793 (TCP), without any +reliance on an IP layer. It can be used to provide multiple in-order, reliable +streams on top of any datagram layer. + +UTCP does not rely on a specific event system. Instead, the application feeds +it with incoming packets using utcp_recv(), and outgoing data for the streams +using utcp_send(). Most of the rest is handled by callbacks. The application +must however call utcp_timeout() regularly to have UTCP handle packet loss. + +The application should run utcp_init() for every peer it wants to communicate +with. + +DIFFERENCES FROM RFC 793: + +* No checksum. UTCP requires the application to handle packet integrity. +* 32-bit window size. Big window sizes are the default. +* No ECN, PSH, URG + +TODO v1.0: + +* Implement send buffer +* Window scaling +* Handle retransmission + +TODO v2.0: + +* Nagle +* NAK and SACK +* Congestion window scaling +* Timestamps? + +Future ideas: + +Fast open: + SYN + data? + +Receive-only open: + SYN|FIN + +Fast transaction: + SYN|FIN + request data -> + <- SYN|ACK|FIN + response data + ACK -> + +Does this need special care or can we rely on higher level MACs? diff --git a/UTCP b/UTCP deleted file mode 100644 index d5edf56..0000000 --- a/UTCP +++ /dev/null @@ -1,45 +0,0 @@ -This is a light-weight, user-space implementation of RFC 793 (TCP), without any -reliance on an IP layer. It can be used to provide multiple in-order, reliable -streams on top of any datagram layer. - -UTCP does not rely on a specific event system. Instead, the application feeds -it with incoming packets using utcp_recv(), and outgoing data for the streams -using utcp_send(). Most of the rest is handled by callbacks. The application -must however call utcp_timeout() regularly to have UTCP handle packet loss. - -The application should run utcp_init() for every peer it wants to communicate -with. - -DIFFERENCES FROM RFC 793: - -* No checksum. UTCP requires the application to handle packet integrity. -* 32-bit window size. Big window sizes are the default. -* No ECN, PSH, URG - -TODO v1.0: - -* Implement send buffer -* Window scaling -* Handle retransmission - -TODO v2.0: - -* Nagle -* NAK and SACK -* Congestion window scaling -* Timestamps? - -Future ideas: - -Fast open: - SYN + data? - -Receive-only open: - SYN|FIN - -Fast transaction: - SYN|FIN + request data -> - <- SYN|ACK|FIN + response data - ACK -> - -Does this need special care or can we rely on higher level MACs?