A reliable byte stream is a common service paradigm in
computer networking
A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ...
; it refers to a
byte stream
A bitstream (or bit stream), also known as binary sequence, is a sequence of bits.
A bytestream is a sequence of bytes. Typically, each byte is an 8-bit quantity, and so the term octet stream is sometimes used interchangeably. An octet may ...
in which the
byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
s which emerge from the
communication
Communication (from la, communicare, meaning "to share" or "to be in relation with") is usually defined as the transmission of information. The term may also refer to the message communicated through such transmissions or the field of inqui ...
channel at the recipient are exactly the same, and in exactly the same order, as they were when the sender inserted them into the channel.
The classic example of a reliable byte stream
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
is the
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is common ...
, one of the major building blocks of the
Internet
The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
.
A reliable byte stream is not the only
reliable service paradigm which computer network communication protocols provide, however; other protocols (e.g.
SCTP
The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the p ...
) provide a reliable message stream, i.e. the data is divided up into distinct units, which are provided to the consumer of the data as discrete objects.
Mechanism
Communication protocols that implement reliable byte streams, generally over some unreliable lower level, use a number of mechanisms to provide that reliability. ARQ protocols have an important role for achieving reliability.
All data items are identified with a ''sequence number'', which is used both to make sure that the data are delivered to the entity at the other end in the correct order, and to check for lost data items. The receiver sends back ''acknowledgements'' for data items that have been successfully received; a ''timer'' at the sender will cause a ''timeout'' if an acknowledgement is not received within a reasonable ''round trip time'', and the (presumably lost) data will then be ''
re-transmitted''. To check that no data items are damaged, a ''
checksum
A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify data ...
'' is used; one is computed at the sender for each block of data before it is sent and checked at the receiver. Erroneous or missing data are reported to the sender, in order that it may retransmit the same. Any duplicated data items are discarded.
Head-of-line blocking
Head-of-line blocking
Head-of-line blocking (HOL blocking) in computer networking is a performance-limiting phenomenon that occurs when a line of packets is held up in a queue by a first packet. Examples include input buffered network switches, out-of-order delivery a ...
can occur in reliable byte streams: if
packets are reordered or
lost
Lost may refer to getting lost, or to:
Geography
*Lost, Aberdeenshire, a hamlet in Scotland
* Lake Okeechobee Scenic Trail, or LOST, a hiking and cycling trail in Florida, US
History
*Abbreviation of lost work, any work which is known to have bee ...
and need to be retransmitted (and thus arrive out-of-order), data from sequentially later parts of the stream may be received before sequentially earlier parts of the stream; however, the later data cannot typically be used until the earlier data has been received, incurring
network latency
Network delay is a design and performance characteristic of a telecommunications network. It specifies the Latency (engineering), latency for a bit of data to travel across the network from one communication endpoint to another. It is typically ...
. If multiple independent higher-level messages are
encapsulated and
multiplexed
In telecommunications and computer networking, multiplexing (sometimes contracted to muxing) is a method by which multiple analog or digital signals are combined into one signal over a shared medium. The aim is to share a scarce resource - a ...
onto a single reliable byte stream, then head-of-line blocking can cause processing of a fully-received message that was sent later to wait for delivery of a message that was sent earlier. This affects, for example,
HTTP/2
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
, which
frames multiple request–response pairs onto a single stream;
HTTP/3
HTTP/3 is the third major version of the Hypertext Transfer Protocol used to exchange information on the World Wide Web, complementing the widely-deployed HTTP/1.1 and HTTP/2. Unlike previous versions which relied on the well-established TCP ( ...
, which has an
application-layer framing
Application-layer framing or application-level framing (ALF) is a method of allowing an application to use its semantics for the design of its network protocols.
This procedure was first proposed by D. D. Clark and David L. Tennenhouse.Clark, D ...
design and uses
datagram
A datagram is a basic transfer unit associated with a packet-switched network. Datagrams are typically structured in header and payload sections. Datagrams provide a connectionless communication service across a packet-switched network. The del ...
rather than stream transport, avoids this problem. The latency degradation from head-of-line blocking depends on the underlying packet loss rate and
round-trip time
In telecommunications, round-trip delay (RTD) or round-trip time (RTT) is the amount of time it takes for a signal to be sent ''plus'' the amount of time it takes for acknowledgement of that signal having been received. This time delay includes pr ...
, with higher losses producing worse latency. Without changing the stream abstraction, reducing packet loss can reduce the harm from head-of-line blocking; an alternative is to implement the reliable byte stream using
forward error correction to send redundant data so that a certain amount of loss can be tolerated without incurring retransmissions.
See also
*
Automatic repeat request
Automatic repeat request (ARQ), also known as automatic repeat query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a packet) and timeouts ...
References
* Larry L. Peterson and Bruce S. Davie, Computer networks: a systems approach, 3rd edition, Morgan Kaufmann Publishers, 1996, Section 6.2.
* Steve Steinke, Network Tutorial, Elsevier, 2000, page 163.
Bibliography
*
*
*
*
* {{cite conference , url=https://www.usenix.org/conference/foci13/workshop-program/presentation/nowlan , title=Reducing Latency in Tor Circuits with Unordered Delivery , conference=3rd USENIX Workshop on Free and Open Communications on the Internet , date = 2013 , last1 = Nowlan , first1 = Michael F. , last2 = Wolinsky , first2 = David , last3 = Ford , first3 = Bryan
Data transmission