Questions and Correct Answers (70 Q & A)
Latest Update 2024
What is multiplexing, and why is it necessary?
Multiplexing is the ability for a host to run multiple applications using the network simultaneously. It's
necessary to ensure multi-tasking with the host.
Multiplexing essentially combines multiple signals into one with 1 IP and multiple ports, where each
application binds itself to a port. Allow multiple apps to communite to different servers with 1 IP
address
Describe the two types of multiplexing/demultiplexing.
1. Connectionless Multiplexing/Demultiplexing: Uses the UDP socket that consists of a two-tuple
made up of a destination IP address and port. Transport layer identifies port from receiverd datagram
that includes the port.
2. Connection Oriented Multiplexing/Demultiplexing: Uses the TCP socket and is a four-tuple that
consists of IP address, source port, destination IP address, destination port.
What are the differences between UDP and TCP?
UDP is A.) an unreliable protocol as it lacks the mechanism that TCP has in place. B.) a connectionless
protocol that does not require the establishment of a connection (example: three way handshake)
before sending packets. Some benefits to UDP are: A.) no congestion control or similar mechanisms.
B.) No connection management overhead. The UDP packet structure is a 64 bits header consisting: 1.)
Source and destination ports. 2.) Length of the UDP segment (header and data). 3.) Checksum (an
error checking mechanism). Since there is no guarantee for link-by-link reliability, we need a basis
mechanism in place for error checking. The UDP sender adds the src port, the dest port and the packet
length. Then it takes the sum and performs an 1s complement (all 0s are turned to 1 and all 1s are
turned to 0s). If during the sum there is an overflow, it's wrapped around. The receiver adds all the
four 16-bit words (including the checksum). The result should be all 1s unless an error has occurred.
To detect errors, the receiver adds the four words (the three original words and the checksum). If the
sum contains a zero, the receiver knows there has been an error. While all one-bit errors will be
detected, but two-bit errors can be undetected (e.g., if the last digit of the first word is converted to a
0 and the last digit of the second word is converted to a 1).
,TCP is a protocol consisting of a three-way handshake and a connection teardown:
3-way Handshake:
Step 1: The TCP client sends a special segment, (containing no data) and with SYN bit set to 1. The
Client also generates an initial sequence number (client_isn) and includes it in this special TCP SYN
segment.
Step 2: The Server upon receiving this packet, allocates the required resources for the connection and
sends back the special 'connection-granted' segment which we call SYNACK. This packet has SYN bit
set to 1, ack field containing (client_isn+1) value and a randomly chosen initial sequence number in
the sequence number field.
Step 3: When the client receives the SYNACK segment, it also allocates buffer and resources for the
connection and sends an acknowledgment with SYN bit set to 0.
Teardown:
Step 1: When client wants to end the connection, it sends a segment with FIN bit set to 1 to the
server.
Step 2: Server acknowledges that it has received the connection closing request and is now working
on closing the connection.
Step 3: The Server then sends a segment with FIN bit set to 1, indicating that connection is closed.
Step 4: The Client sends an ACK for it to the server. It also waits for sometime to resend this
acknowledgment in case the first ACK segment is lost.
When would an application layer protocol choose UDP over TCP?
When developers need just a simple mechanism for transmission control. Typically, use UDP in
applications where speed is more critical than reliability. For example, it may be better to use UDP in
an application sending data from a fast acquisition where it is acceptable to lose some data points.
You can also use UDP to broadcast to any machine(s) listening to the server.
, https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9ZLSA0#:~:text=Typically%2C%
20use%20UDP%20in%20applications,s)%20listening%20to%20the%20server.
Explain the TCP Three-way Handshake.
3-way Handshake:
Step 1: The TCP client sends a special segment, (containing no data) and with SYN bit set to 1. The
Client also generates an initial sequence number (client_isn) and includes it in this special TCP SYN
segment.
Step 2: The Server upon receiving this packet, allocates the required resources for the connection and
sends back the special 'connection-granted' segment which we call SYNACK. This packet has SYN bit
set to 1, ack field containing (client_isn+1) value and a randomly chosen initial sequence number in
the sequence number field.
Step 3: When the client receives the SYNACK segment, it also allocates buffer and resources for the
connection and sends an acknowledgment with SYN bit set to 0.
Explain the TCP connection teardown.
Teardown:
Step 1: When client wants to end the connection, it sends a segment with FIN bit set to 1 to the
server.
Step 2: Server acknowledges that it has received the connection closing request (FIN-ACK) and is now
working on closing the connection.
Step 3: The Server then sends a segment with FIN bit set to 1, indicating that connection is closed.
Step 4: The Client sends an ACK for it to the server. It also waits for sometime to resend this
acknowledgment in case the first ACK segment is lost.