Checksum is an error detection method used by upper-layer protocols, considered more reliable than LRC, VRC, and CRC. It employs a Checksum Generator on the sender side and a Checksum Checker on the receiver side to create a unique number from the data for integrity verification. When data is created, a checksum is calculated and sent or saved with it. Upon accessing the data, the checksum is recalculated, and if the two match, the data is likely error-free.
EXAMPLE:
Sender Side:
10101001 subunit 1
00111001 subunit 2
11100010 sum (using 1s complement)
00011101 checksum (complement of sum)
Receiver Side:
10101001 subunit 1
00111001 subunit 2
00011101 checksum
11111111 sum
00000000 sum's complement
Result is zero, it means no error. [1]
A cyclic redundancy check (CRC) is a mathematical technique that provides a way to detect errors in transmitted data by appending a special code, called a checksum, to the original information. CRC plays a vital role in identifying and correcting potential data corruption in networking, where reliable data transfer is paramount. [1]
EXAMPLE:
Sender Side:
Data word to be sent - 100100
Key - 1101 [ Or generator polynomial x3 + x2 + 1]
Therefore, the remainder is 001 and hence the encoded data sent is 100100001.
Receiver Side:
Code word received at the receiver side 100100001
Therefore, the remainder is all zeros. Hence, the data received has no error. [2]
Hamming code is an error-correcting method developed by Richard Hamming in the 1950s. It adds extra bits to data, enabling the detection and correction of single-bit errors during transmission or storage, thus improving the reliability of communication systems and digital storage. [1]
The Stop-and-Wait protocol is a flow control mechanism used in the data link layer for transmitting data over noiseless channels. In this protocol, the sender transmits a frame and then waits for an acknowledgment from the receiver before sending the next frame. It allows unidirectional data transmission, meaning only one direction (sending or receiving) occurs at a time. While it effectively manages flow control, it does not include any error control mechanisms. [1]
The Stop and Wait ARQ protocol sends a data frame and then waits for an acknowledgment (ACK) from the receiver. The ACK indicates that the receiver successfully received the data frame. After receiving the ACK from the receiver, the sender delivers the next data frame. So there is a stop before the next data frame is transferred, hence it is known as the Stop and Wait ARQ protocol. [1]
The Go-Back-N (GBN) protocol is a sliding window protocol used in networking for reliable data transmission. It is part of the Automatic Repeat reQuest (ARQ) protocols, which ensure that data is correctly received and that any lost or corrupted packets are retransmitted. [1]
Selective Repeat Request (SRR) is an error control protocol used in data communication to ensure reliable transmission of data frames. It is part of the Automatic Repeat reQuest (ARQ) family of protocols and is particularly effective in managing the retransmission of lost or corrupted frames without requiring the retransmission of all previously sent frames. [1]
Distance Vector Routing is an algorithm where a router calculates distances to destinations based solely on its immediate neighbors. It shares its routing table with directly connected routers at regular intervals, allowing them to update their tables. The Bellman-Ford algorithm is typically used for route computation. Despite its simplicity, Distance Vector Routing faces issues like the Count to Infinity problem and persistent routing loops. [1]
The Link Status Routing Algorithm, or Link State Routing, is a dynamic routing protocol where each router maintains a complete view of the entire network. Unlike Distance Vector protocols, routers flood their link state information across the network to ensure all routers share the same topology. Dijkstra’s Algorithm is used to compute the shortest paths to all destinations, preventing persistent routing loops. However, this flooding can lead to increased network traffic. [1]
A simple leaky bucket algorithm can be implemented using FIFO queue. A FIFO queue holds the packets. If the traffic consists of fixed-size packets (e.g., cells in ATM networks), the process removes a fixed number of packets from the queue at each tick of the clock. If the traffic consists of variable-length packets, the fixed output rate must be based on the number of bytes or bits.
The Token Bucket algorithm is used in networking for traffic shaping and rate limiting. It controls the amount of data sent or received within a period, ensuring traffic conforms to a specified rate. It helps differentiate performance based on network requirements and provides predictable or guaranteed performance.
Transport Layer is a 4th layer from the top. The main role of the transport layer is to provide the communication services directly to the application processes running on different hosts. The elements of Transport Layer are: