Interface Transport

All Known Implementing Classes:
Transport.IP, Transport.Socket, Transport.TCPIP, Transport.TCPUnix, Transport.UDPIP, Transport.UDPUnix, Transport.Unix, Transport.Wrapper

public interface Transport

The low-level transport used by clients.

A high-level protocol such as HTTP/1.1 can be transported over a low-level protocol such as TCP/IP, Unix-Domain sockets, QUIC, shared memory, etc.

This class defines the programming interface to implement low-level protocols, and useful implementations for commonly used low-level protocols such as TCP/IP or Unix-Domain sockets.

Low-level transports may be layered; some of them maybe considered lower-level than others, but from the point of view of the high-level protocols they are all considered low-level.

For example, QUIC is typically layered on top of the UDP/IP low-level Transport, but it may be layered on top Unix-Domain sockets, or on top of shared memory. As QUIC provides a reliable, ordered, stream-based transport, it may be seen as a replacement for TCP, and high-level protocols that need a reliable, ordered, stream-based transport may use either the non-layered TCP/IP or the layered QUIC over UDP/IP without noticing the difference. This makes possible to transport HTTP/1.1 over QUIC over Unix-Domain sockets, or HTTP/2 over QUIC over shared memory, etc.