Overview
We have studied quite a number of hardware-level physical layer protocols, and it is now time to look at the issues involved in writing software protocols. Theoretically, there is no difference; each represents a discipline that allows two or more entities to communicate. In practice, there are differences that are related to the requirements for protocols at different levels in the protocol hierarchy.
In this unit we will look at several different protocol types that vary primarily in terms of how they control the flow of data across a channel and they method they use for handling errors. Note that the term channel is used here rather than link. A link is a physical object referring to the connection between two nodes, while a channel is a communication path that could involve multiple links and even other nodes. If you recall, some of the OSI layers were concerned with communication across a subnet, not with simple node-to-node communication, and our understanding of the protocols depends on having the correct perspective of the objectives of the protocol.
Objectives
- Know the fundamental properties of software protocols.
- Understand simplex and duplex protocols.
- Understand the protocol reliability issues.
- Understand stop and wait protocols.
- Understand the fundamental structure of Automatic Request Protocols (ARQ).
- Understand the basics of utilization calculations for software protocols.
Inquiry
- With regard to software protocols, what is the relationship between the endpoints, protocols and services for a given protocol in the context of the OSI model (a diagram is a good representation)?
- A communication channel can be a complicated interaction between various types of nodes and physical layers. What are some of the things that can happen to a packet in transit through a channel?
- What is the reason for using connection-oriented protocols?
- Why add an acknowledgement to a protocol, and if you do, what else is needed?
- Why do we need automatic request protocols?
- What is meant by utilization in the context of software protocols?
Preparation
Read section 2.5 in the book and the
notes.
Knowledge, Comprehension & Problem Solving
Terms
- Acknowledgment (ACK)
- Automatic Request Protocol (ARQ)
- Connection-oriented
- Connectionless
- Duplex channel
- Duplicate packet
- Latency
- Lost packet
- Negative acknowledgement (NAK)
- Out of order delivery
- Packet
- Reliability
- Reliable/unreliable protocol
- Simplex channel
- Sequence number
- Stop and Wait Protocol
Questions
- What are the fundamental properties of interest in discussing or comparing software protocols?
- What are the four types of errors that reliable protocols attempt to eliminate? Give an example of each?
- For each of the four types of errors of errors discussed in the previous questions, explain how an ARQ protocol can resolve the error.
- Consider an ARQ protocol running over a 50-km point-to-point link. Using 2x10^8 m/s as a propogation delay, what is a reasonable ARQ timeout value? Under what circumstances will the algorithm still timeout and retransmit?
- Give an example of a communication system where a stop-and-wait protocol works just fine. And one where you really want something better.
- A stop-and-wait protocol has a send rate of 10,000 bytes per second and a network latency of 0.05 seconds (processing plus propogation delay). If the header is known to be 10 bytes (also the length of the ACK) and messages average 50 bytes, what is the average utilization of the network? How long would the data part of the messages have to be to get the utilization to 20%?
- For the problem above, assume that an ARQ protocol is used and that the probability that a message is received properly is 0.98. What is the utilization of the network for a timeout value of 100 ms?
Analysis, Synthesis & Evaluation
- Why is an ACK-based ARQ protocol preferable to a NAK-based protocol, where a NAK is sent if a corrupted message arrives but no ACK is sent? Think about the conditions that might occur and what you have to keep track of to insure reliability.
- Can any protocol completely eliminate the existance of delayed packet errors? Explain.
- An ARQ protocol uses a single bit packet sequence number. One end sends a packet that gets delayed in the network. Explain how that can result in a major problem.
- Explain how an ARQ protocol without sequence numbers can have a packet-out-of-order situation?
- In the ARQ receiver's algorithm, the receiver sends an acknowledgement and then processes the packet for delivery to the next layer up. Thinking in terms of a node crash, could this be a problem? What is the solution?
- The layer implementing an ARQ protocol is the OSI Transport Layer? There could be many processes using this layer to communicate across the network to other nodes. How would the receiver know which process should receive the message?