In many online games, however, we may be less concerned that every packet arrives on time
or in order. Consider for example a series of packets, each of which tells us where an enemy
player is located. If one of these packets does not arrive (or arrives late) the information is
now out of date anyway, and there is no point in having the sender resend the packet. Of
course, some information is of a much more important nature. Information about payments
or certain changes to the discrete state of the game (player X is no longer in the game), must
be communicated reliably. In short, not all information in a game is of equal importance with
respect to reliability.
Lecture 22
6
Spring 2018

CMSC 425
Dave Mount & Roger Eastman
Communication reliability is handled by protocols at the transport level of the OSI model.
The two most common protocols are TCP (transmission control protocol) and UDP (user
datagram protocol).
Transmission Control Protocol:
We will not delve into the details of the TCP protocol, but
let us highlight its major elements. First, data are transferred in a particular order. Each
packet is assigned a unique
sequence number
. When packets are received, they are reordered
according to these sequence numbers. Thus, packets may arrive out of order without affecting
the overall flow of data. Also, through the use of sequence numbers, the receiver can determine
whether any packets were lost. Second, the transmission contains
check-sums
, to ensure that
any (random) corruption of the data will be discovered. The receiver sends acknowledgments
of the receipt of packets. Thus, if a packet is not received, the sender will discover this and
can resend it.
TCP also has a basic capability for
flow control
. If the sender observes that too many packets
are failing to arrive, it decreases the rate at which it is sending packets. If almost all packets
are arriving, it slowly increases this rate.
In this way, the network will not become too
congested.
Advantages:
•
Guaranteed packet delivery
•
Ordered packet delivery
•
Packet check-sum checking (basic error detection)
•
Transmission flow control
Disadvantages:
•
Point-to-point transport (as opposed to more general forms, like multi-cast)
•
Bandwidth and latency overhead
•
Packets may be delayed to preserve order
TCP is used in applications where data must be reliably sent and/or maintained in order.
Since it is a reliable protocol, it can be used in games where latency is not a major concern.
User Datagram Protocol:
UDP is a very light-weight protocol, lacking the error control and
flow control features of TCP. It is a
connectionless protocol
, which provides no guarantees of
delivery. The sender merely sends packets, with no expectation of any acknowledgment. As
a result, the overhead is much smaller than for TCP.

