The transport layer abstraction of the HTTP components. This layer is used to transfer messages over connections. Connections are typically based on sockets: plain or secure, direct or via SOCKS hosts, with bandwidth throttling, or whatever else you might think of. However, opening connections is not within the responsibility of HttpCore.
The data {@link org.apache.http.io.HttpDataTransmitter transmitter} and {@link org.apache.http.io.HttpDataReceiver receiver} interfaces provide an abstraction from java.io and java.nio. These interfaces are adapted to the plain {@link org.apache.http.io.HttpDataOutputStream output} and {@link org.apache.http.io.HttpDataInputStream input} streams used in the {@link org.apache.http core API}.
There are implementations of the transport encodings used by HTTP, in particular the chunked encoding for {@link org.apache.http.io.ChunkedOutputStream sending} and {@link org.apache.http.io.ChunkedInputStream receiving} entities.