One of the main requirements of TCPMPL is the reliability of the messages
sent across the network by the processes. When a process
sends a
message of size
to a destination process
, the destination
process
must receive the message of size
without the message
getting lost. There are various ways by which reliability can be ensured:
- One way TCPMPL can provide reliable message delivery is to use an
unreliable protocol and provide reliability at the message passing layer
level. For providing reliability, TCPMPL should re-send messages if
they are lost. To know whether the message has reached the destination
or not, the destination process should send back an acknowledgement to
the sender to indicate that the message was received successfully.
TCPMPL should also buffer all the messages sent to the destination until
it can ensure that the message has reached the destination. Once the
messages has reached the destination, the buffered message can be
discarded. TCPMPL should also maintain timers for each message that is
sent across the network to the destination process. This timer is used
for measuring the time to wait for the acknowledgement (ack) of a
message. If the acknowledgement does not reach the sender process
before the timer expires, the sender process retransmits that particular
message. Duplicates can be generated due to the retransmission of
messages to provide reliability. If the timer expires before the
acknowledgement reaches the sender process, the sender process proceeds
to retransmit the message, although the message has been received at the
receiver process. This generates a duplicate of the original message.
All these issues need to be addressed if one were to use an unreliable
underlying protocol. One such unreliable protocol is the
UDP/IP [4] protocol. This requires the message passing
layer to have a server running on each machine which takes care of
retransmission of messages to provide reliability since the message
passing layer has to constantly see whether messages are received
reliably at the destination.
- Another approach would be to use a reliable protocol provided by the
system. Since the underlying protocol is reliable, TCPMPL does not need
to provide the reliability of messages explicitly. One such reliable
protocol is TCP which is built on top of the IP Protocol. TCP runs as a
daemon on each machine. The services of TCP are available as part of
the operating system services. The TCP protocol also takes care of
reliability. Therefore, the message passing layer should use the TCP
for reliable message delivery.
TCPMPL as the name indicates uses the TCP protocol to ensure
reliability of message delivery.
Radharamanan Radhakrishnan
Mon Mar 15 18:20:48 EST 1999