Specifications

Sample Scenarios 57
Stream Data Transfer
From the application's viewpoint, TCP transfers a continuous stream of bytes
through the network. The application does not have to bother with chopping the
data into basic blocks or datagrams. TCP does this by grouping the bytes in TCP
segments, which are passed to IP for transmission to the destination. Also, TCP
itself decides how to segment the data and it can forward the data at its own
convenience. Sometimes, an application needs to be sure that all the data
passed to TCP has actually been transmitted to the destination. For that reason,
a push function is defined. It will push all remaining TCP segments still in storage
to the destination host. The normal close connection function also pushes the
data to the destination.
Reliability
TCP assigns a sequence number to each byte transmitted and expects a positive
acknowledgment (ACK) from the receiving TCP. If the ACK is not received within
a timeout interval, the data is retransmitted. Since the data is transmitted in
blocks (TCP segments) only the sequence number of the first data byte in the
segment is sent to the destination host. The receiving TCP uses the sequence
numbers to rearrange the segments when they arrive out of order, and to
eliminate duplicate segments.
Flow Control
The receiving TCP, when sending an ACK back to the sender, also indicates to
the sender the number of bytes it can receive beyond the last received TCP
segment, without causing overrun and overflow in its internal buffers. This is sent
in the ACK in the form of the highest sequence number it can receive without
problems. This mechanism is also referred to as a window mechanism.
Multiplexing
Multiplexing is achieved through the use of ports, just as with UDP.
Logical Connections
The reliability and flow control mechanisms described above require that TCP
initialize and maintain certain status information for each data stream. The
combination of this status, including sockets, sequence numbers and window
sizes, is called a logical connection. Each connection is uniquely identified by the
pair of sockets used by the sending and receiving processes.
Full Duplex
TCP provides for concurrent data streams in both directions.
4.0.2 SNA
If you are concerned that voice traffic will cause a SNA session timeout, DLSw
has the following functions to prevent session timeout: