Ouroboros and TCP/IP
This page is under construction
Problems and fixes
Below is a list of problems, issues and nits present in the TCP/IP architecture and stack with a description how O7s approaches them. This list is in no particular order, without any implied gravity, and tries to acknowledg existing solutions/workarounds.
Network ossification
The problem
O7s solution
Protocol ossification
O7s solution
IP fragmentation
The Problem
An application-layer message may span multiple TCP segments, which in turn may span many IP fragments. When an IP fragment is lost, retransmission in TCP will retransmit all IP fragments related to the TCP segment. IP fragmentation is mostly deprecated.
O7s solution
Fragmentation at the application end-to-end layer based on path MTU preserves the application-layer message size.
TCP is byte-stream only
The problem
TCP sequence numbers are per-byte instead of per-packet. This is efficient for large bulk data transfers, but application protocols over TCP that are message-based have to manage message boundaries themselves. QUIC uses 2 sequence number spaces (to solve the transmission ambiguity problem), the stream offset also being per-byte. SCTP is a packet-based reliable protocol, but less frequently used.
O7s solution
FRCP uses per-packet numbering and adds a byte-oriented read/write on top of this protocol. The use of 2 number spaces to solve transmission ambiguity is interesting and may be adopted.