[20 marks]
In hardware flow control, the RTS output line should be asserted to its active
level whenever a transmitter wishes to transmit data to a receiver at
the other end of an RS-232C connection. Only when the CTS input line is
asserted to its active level should the transmitter be allowed to transmit
data.
The DUART allows parallel inputs IP0 and IP1 to be used as CTS inputs for the A and B serial ports, respectively. When CTS operation is enabled (by setting bit 4 in either MR2A or MR2B), then these two signals will automatically disable their respective transmitters. In this way, the receiver circuits at the remote node can protect themselves from being overwhelmed with data.
If bit 5 in MR2A is set to 1, then parallel output OP0 is assumed to be an automatic RTS output for the A side. To use this feature, OP0 must be set to 1 (to assert the RTS) by writing a 1 to bit 0 in the parallel output register. Then the A side transmitter can be enabled and batch of characters can be transmitted. After the last character has been transmitted from the transmitter FIFO and after the transmitter has been disabled, the RTS output will be automatically cleared to 0 (to de-assert the RTS). The parallel output OP1 can be programmed similarly to act as an automatically clearing RTS output for the B side.
[15 marks]
When the probability of errors is relatively high, then data packets have
a hard time reaching the destination node intact. There will rapidly come
a point where most of the data packets (and also the retransmitted packets)
are all getting corrupted with errors. The throughput of successfully
transmitted data will then fall rapidly to zero. The best strategy in a
high error environment is thus to check for errors at each node-to-node
link, so that the capacity of the network is not wasted transferring
errored data packets. This is indeed the strategy that was used by older
computer networking protocols, like X25.
When the probability of errors is relatively low, them data packets will frequently reach the destination intact. It would be wasteful in such a scenario to check for transmission errors at each node-to-node link since most of the time, no errors would occur. So the best strategy in a low error scenario is to minimize the error checking activity in the network, and to only check for transmission errors when data packets finally reach their destination node. Most of the time, this "gamble" will "pay off".
[15 marks]
Making no assumptions about the structure of the data, apart from assuming
an ordered sequence of bytes, is a very general and thus advantageous approach.
Any higher-level protocol can freely impose any desired structure on the bytes.
In fact, this feature of TCP/IP is seen as one of its major strengths. TCP/IP
provides an easy-to-use service for many higher level protocols, such as e-mail,
file transfer, WWW, etc.
[20 marks]
The following information was obtained from the book "TCP/IP Protocol Suite"
by Behrouz Forouzan.
FTP stands for "File Transfer Protocol". An FTP session uses requires two coordinated TCP connections: a control connection uses port 21 on the server side, while a data connection uses port 20 on the server. The control connection stays connected for the entire transfer operation for multiple files between two Internet nodes. On the other hand, there may be a separate data connection for each file that is transferred. The control connection must use the NVT ASCII character set. The data connections can transfer files that are encoded using either ASCII, EBCDIC (the IBM character coding), or binary (for a continuous stream of uninterpretted bits, such as in compiled programs or image files). FTP must be able to handle the fact that different computers may use different naming conventions and different directory structures. It must also handle security issues, such as password protection for account access. However, the control and data information is not encrypted, so eavesdroppers can obtain copies of the control and data information. There are improved versions of FTP (e.g. secure FTP) that provide encrypted file transfer services.
SMTP stands for "Simple Mail Transfer Protocol". It is the protocol that provides electronic mail service over the Internet. SMTP uses port 25 on the server node. Mail messages can be sent to one recipient, or to multiple recipients. The messages can contain a variety of types of information, including human-readable text, binary files, graphics, sound, etc. Each SMTP message contains an envelope part and a message part. The envelope at the start of the SMTP message lists the sender address, the receiver address, and other information. The message part contains one or more header lines followed by the message body. The message headers list the sender, the receiver, the message subject line, and some other information.
The message body, according to the original definition of SMTP, could only carry ASCII-encoded text messages. Foreign languages with non-Roman letters were not supported, nor was nontextual content (e.g. binary files). To overcome these limitations, SMTP was extended according to the Multipurpose Internet Mail Extensions (MIME) standard. MIME is used at the sender node to convert non-ASCII information into a 7-bit ASCII encoding; this allows SMTP to transport the mail message. At the receiver node, MIME is used to recover the original non-ASCII information. Additional message header lines are used to specify the MIME version being used as well as other information.
SNMP stands for "Simple Network Management Protocol". The protocol is used to manage devices, routers especially, over the Internet. The "server" (also called an "agent") in SNMP is usually a router, which maintains various kinds of routing information, traffic statistics, and other operational data. A "client", also called a "manager", accesses the the agent to retrieve information and/or to cause actions in the agent (e.g. reset specified stored values). Unfortunately, SNMP is actually not a particularly "simple" protocol, despite its name.
[15 marks]
UDP is a lightweight protocol compared to TCP because it omits many features
to speed up the processing of segments. The UDP header only contains the
source and destination port number (both essential to have for routing segments
to the correct application in the destination node), a segment length (essential
for handling the segment), and an optional checksum over the whole segment.
UDP would be preferred for data streams where some packet loss can be tolerated, and where minimizing the processing time at each communication node would be desirable. Downloading streaming multimedia (e.g. audio or video) would be a good candidate application for running over UDP.
UDP would not be preferred in situations where reliable transport of data is essential. For example, when e-mail or other files are transported across the Internet, it is essential that no data is lost or corrupted. Spending a bit more transmission bandwidth, or taking a little longer to process the header information in the segments, is a very small price to pay to ensure reliable data transport.
[15 marks]
In a high-level protocol, like HTTP, the request and response messages occupy
a relatively small network bandwidth compared to the large amounts of data
that are transferred. It is therefore quite reasonable to have the convenience
of easy human readability at the very small cost of some loss in transmission
efficency. Having human-readable messages should simplify debugging, and could
be convenient in other situations as well (e.g. inserting a small message
into a system without requiring the use of a full browser). The main disadvantage
of using human-readable messages is that the information will in fact take a bit
more transmission bandwidth because ASCII characters are not as compact as compressed
binary information.