HOME

TheInfoList



OR:

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 m ...
; 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 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 synchroniz ...
is the Transmission Control Protocol, one of the major building blocks of the Internet. 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 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. 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, which frames multiple request–response pairs onto a single stream; HTTP/3, 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, ...
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 deliv ...
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, 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