Side_1_360

(Dana P.) #1

is to complete the transaction by exchanging a
few segments in each direction, thereby reducing
overhead by explicit connection establishment
and release.


A 32 bit incarnation number is introduced
(called Connection Count, CC). This is intro-
duced as a TCP option. The CC values are
increased for successive connections. The
receiver of a segment can check against its list
whether or not the received segment is a new
one. Thus, the receiver has to keep a list of the
latest used CC values for all clients (for a while,
e.g. given by twice the Maximum Segment Life-
time, MSL). The CC number is also echoed in
the return segment in order for the sender to cor-
relate the response with the original request.


An ordinary TCP establishment sequence would
then not be needed, see Figure 13. A minimal
sequence consists of three segments; firstly a
request – SYN segment (say CC= k); secondly
a reply – SYN segment (say CC= n, CC.echo
=k); and thirdly an acknowledgement segment.
In case the second segment is not a segment con-
taining the corresponding flags set, an ordinary
TCP establishment and sequence is entered.
When a transaction consists of three segments
only, estimating the RTTcould be based on sev-
eral transactions.


5.8 TCP on Asymmetrical

Configurations

When there is an asymmetrical configuration for
the transfer rate, TCP may face additional chal-
lenges. This is particularly the case when the
path from the receiver to the sender (reverse
direction) for sending TCP ACK segments has a
significantly lower rate than the other way (for-
ward direction). Both low rate and short buffers


in the reverse direction may lead to TCP ACKs
not arriving at the sender in time for not restrict-
ing the sending rate. Two key issues have to be
addressed: i) manage bandwidth usage on the
reverse link, e.g. to limit the number and trans-
mission capacity for transferring ACKs; and ii)
avoid any adverse impact of infrequent ACKs.
Some approaches to deal with the former are,
ref. [ID_pilc]:


  • TCP header compression; reducing the size of
    the header.

  • ACK filtering; drop ACKs that may not be
    needed, e.g. by dropping ACKs in the buffer
    when a new ACK arrives.

  • ACK congestion control; having a mechanism
    that indicates to the receiver that the ACK
    path is congested and the receiver’s response
    to such an indication, e.g. using Random Early
    Detection (RED) and Explicit Congestion
    Notification (ECN), see [Jens01].

  • ACKs first scheduling; placing ACKs first in
    the buffer.

  • Back pressure and fair scheduling; limiting
    the amount of data packets in the reverse
    direction.


Commonly, several of these techniques have to
be combined.

Receiving ACKs infrequently might lead to
the sender halting its transmission. This can be
tackled either end-to-end or locally at the con-
strained link. Some approaches to handle infre-
quent ACKs are, ref. [ID_pilc]:

Figure 13 Message sequence
for establishing an ordinary
TCP connection and for the
complete transaction/TCP
transfer

SYN-flag, ACK-flag, FIN-flag, seq =

y, ack = x + 1, CC = n, CC.echo =

k, data2

SYN-flag, seq = x

SYN-flag, ACK-flag, seq =
y, ack = x + 1

ACK-flag, ack = y + 1

source destination

seq = sequence number
ack = acknowledgement number

Ordinary TCP
connection
establishment

...................

SYN-flag, FIN-flag, seq = x, CC = k
, data1

ACK-flag, FIN-flag, ack = y + 1,
CC = k

Transaction
TCP
Free download pdf