Impact of Propagation Delay: Satellite communication, especially with geostationary (GEO) satellites, involves signals traveling a very long distance (approx. 35,786 km up and 35,786 km down). This results in a very high propagation delay (the time it takes for a signal to travel). A typical round-trip time (RTT) for a GEO satellite link is 500-600 milliseconds.
Layer Most Affected: While the delay physically originates at the Physical Layer (Layer 1), its performance impact is most significantly felt at the Transport Layer (Layer 4), specifically when using TCP.
Why TCP is Affected:
cwnd) every RTT. With a 500ms RTT, it takes a very long time to ramp up to use the available bandwidth.Total Delay is the sum of Transmission Delay and Propagation Delay.
(Note: In this case, the transmission delay is negligible compared to the propagation delay, which is common in high-delay networks).
The lifecycle of an email involves two main stages: transfer (using SMTP) and access (using POP3 or IMAP).
HELO, MAIL FROM, RCPT TO, DATA).FTP (File Transfer Protocol):
BitTorrent (Peer-to-Peer):
Conclusion: FTP performance scales *poorly* (one source, many clients), while BitTorrent performance scales *brilliantly* (every client is also a source), enabling much faster downloads for popular files.
This question describes an iterative query process from the perspective of a local DNS resolver.
Since the queries are sequential (one after the other), the total time is the sum of all the RTTs.
Total Time = 60 ms + 30 ms + 10 ms = 100 ms
Layering is a fundamental design principle that uses abstraction to manage the complexity of network communication. It helps in several key ways:
Encapsulation (On the Sending Side):
As data moves *down* the protocol stack (from Application to Physical), each layer "wraps" the data it receives from the layer above by adding its own control information, called a header (and sometimes a trailer).
Decapsulation (On the Receiving Side):
As data moves *up* the protocol stack, each layer "unwraps" the data by reading its header, processing it, and then stripping it off before passing the payload to the layer above.
This is slightly ambiguous, but the standard interpretation of the 5-layer (Internet) model is that the Application Layer *creates* the message, and the next 3 layers add headers (Physical layer deals in bits and doesn't add a header).
Let's assume the 5 layers are App, Transport, Network, Link, Physical.
The total transmission size (the frame size on the wire, excluding physical-layer overhead) is 260 bytes.
(If the question literally means 5 layers *all* add headers, it would be 200 + 5*20 = 300 bytes, but this doesn't map to a standard model).
Non-Persistent HTTP (HTTP/1.0):
Persistent HTTP (HTTP/1.1 Default):
When Preferred:
Working of Cookies:
HTTP is a "stateless" protocol, meaning each request is independent; the server forgets about the client as soon as the response is sent. This is bad for shopping carts or logins. Cookies fix this:
Set-Cookie: header (e.g., Set-Cookie: sessionID=abc12345).sessionID=abc12345 text file, tying it to the server's domain (e.g., amazon.com).amazon.com, the browser automatically includes a Cookie: header (e.g., Cookie: sessionID=abc12345).sessionID, looks it up in its database, and "remembers" who you are, keeping you logged in.Security Concerns:
Secure flag on cookie).HttpOnly flag so scripts can't access it).Privacy Concerns:
news.com) and read by another (e.g., shopping.com) if both use the same ad network. This allows ad networks to build a detailed profile of your browsing habits across the entire web.This question asks for a comparison of three Reliable Data Transfer (RDT) protocols.
Selection Strategy:
Connection Setup (Three-Way Handshake):
CLOSED) -> Server (LISTEN): Client sends a SYN packet (Seq=x). Client state becomes SYN_SENT.LISTEN) -> Client (SYN_SENT): Server receives SYN. It replies with a SYN-ACK packet (Seq=y, Ack=x+1). Server state becomes SYN_RCVD.SYN_SENT) -> Server (SYN_RCVD): Client receives SYN-ACK. It replies with an ACK packet (Seq=x+1, Ack=y+1). Client state becomes ESTABLISHED.ESTABLISHED. The connection is now open.Connection Teardown (Four-Way Handshake):
ESTABLISHED): Decides to close. Sends a FIN packet. State becomes FIN_WAIT_1.ESTABLISHED): Receives FIN. Sends an ACK to acknowledge it. State becomes CLOSE_WAIT. (It can still send data if it needs to).FIN_WAIT_1): Receives the ACK. State becomes FIN_WAIT_2.CLOSE_WAIT): When done sending data, it sends its own FIN packet. State becomes LAST_ACK.FIN_WAIT_2): Receives Side 2's FIN. Sends its final ACK. State becomes TIME_WAIT (it waits 2*MSL to ensure the ACK isn't lost).LAST_ACK): Receives the final ACK. State becomes CLOSED.TIME_WAIT): After the timer expires, state becomes CLOSED.These are two different mechanisms to "throttle" the sender, but for different reasons.
Flow Control (Protects the Receiver):
rwnd) field in the TCP header.
The sender maintains the rule: LastByteSent - LastByteAcked <= rwnd. If the receiver's buffer is full, it advertises rwnd=0, and the sender stops sending (except for small probe packets).Congestion Control (Protects the Network):
cwnd). The actual number of un-ACKed bytes the sender can have is min(rwnd, cwnd).
cwnd is adjusted based on *perceived network congestion* (i.e., packet loss).
cwnd starts at 1 MSS and grows exponentially (doubles every RTT).cwnd passes a threshold (ssthresh), it grows linearly (adds 1 MSS per RTT).ssthresh, set cwnd to new ssthresh, enter Congestion Avoidance. (Fast Recovery).ssthresh, reset cwnd to 1, enter Slow Start.NAT (Network Address Translation) is a technique used by routers to solve the IPv4 address shortage. A typical home has many devices (laptops, phones) with *private* IPs (e.g., 192.168.1.x) but only *one public IP* from the ISP (e.g., 123.45.67.89).
Here's how it works:
192.168.1.100) sends a packet from port 5000 to google.com port 80.
192.168.1.100:5000, Dest: google.com:80)192.168.1.100) with its *own public IP* (123.45.67.89).5000) with a new, random, unused port (e.g., 62000).123.45.67.89:62000, Dest: google.com:80)(192.168.1.100:5000) <=> (123.45.67.89:62000)
google.com:80, Dest: 123.45.67.89:62000)62000 in its NAT table.
google.com:80, Dest: 192.168.1.100:5000)255.255.255.224.192.168.10.0/27 (Hosts: .1 to .30, Broadcast: .31)192.168.10.32/27 (Hosts: .33 to .62, Broadcast: .63)192.168.10.64/27 (Hosts: .65 to .94, Broadcast: .95)192.168.10.96/27 (Hosts: .97 to .126, Broadcast: .127)192.168.10.128/27 (Hosts: .129 to .158, Broadcast: .159)Encapsulation (Sending): As data moves *down* the protocol stack, each layer "wraps" the data from the layer above by adding its own header. (App Message -> [TCP Header + Message] = Segment -> [IP Header + Segment] = Datagram -> [Link Header + Datagram] = Frame).
Decapsulation (Receiving): As data moves *up* the stack, each layer "unwraps" the data by reading its header, processing it, and stripping it off before passing the payload to the layer above.
Using the 5-layer Internet model (Application, Transport, Network, Link, Physical):
Given:
We need to find distance `m` where $d_{prop} = d_{trans}$.
How TCP provides reliability:
Services provided by TCP:
Well-Known Ports (TCP):
This involves several protocols working in sequence:
bob.com) to get the IP of his mail server.Protocol Chain: HTTP (Alice) -> DNS (Server lookup) -> SMTP (Server-to-Server) -> IMAP (Bob)
Factors influencing RTT (Round Trip Time):
Advantages of Calculating RTT:
Measures to Reduce RTT:
Transport Layer Services:
Transport Protocol for DNS:
DNS primarily uses UDP (User Datagram Protocol) on port 53.
Why UDP is Suitable for DNS:
(Note: DNS *does* use TCP on port 53 for special cases, like large zone transfers between servers, where reliability is critical).
This requires a timing diagram showing the loss of `ACK1` and `Pkt5`.
Host A (Sender) Host B (Receiver)
Window: [1,2,3]
Send Pkt1
Recv Pkt1
Send ACK1 (LOST)
Send Pkt2
Recv Pkt2
Send ACK2
Send Pkt3
Recv Pkt3
Send ACK3
Recv ACK2
Window: [3,4,5]
Send Pkt4
Recv Pkt4
Send ACK4
Recv ACK3
Window: [4,5,6]
Send Pkt5 (LOST)
Recv ACK4
Window: [5,6]
Send Pkt6
Recv Pkt6 (Out of order)
DISCARD Pkt6
Resend ACK4 (last in-order)
...Timer for Pkt5 expires...
(Sender goes back N)
Send Pkt5
Recv Pkt5
Send ACK5
Send Pkt6
Recv Pkt6
Send ACK6
Recv ACK5
Window: [6]
Recv ACK6
Window: []
Network: 192.168.10.0/28. Mask: 255.255.255.240. Block size = 16.
We are told to skip the "zero subnet" (subnet .0).
A: IP of E0 (eighth subnet, last available IP):
192.168.10.128192.168.10.143 (128 + 16 - 1)B: IP of S0 (first subnet, last available IP):
192.168.10.16192.168.10.31 (16 + 16 - 1)We use 8-bit 1's complement arithmetic (add, and wrap any carry-out bit).
Sender Side (Data):
11001100 (204)
10101010 (170)
11110000 (240)
11000011 (195)
11001100
+ 10101010
----------
1 01110110 -> Wrap carry: 01110110 + 1 = 01110111
01110111
+ 11110000
----------
1 01100111 -> Wrap carry: 01100111 + 1 = 01101000
01101000
+ 11000011
----------
1 00101011 -> Wrap carry: 00101011 + 1 = 00101100
Final Sum = 00101100.
Checksum (1's complement of sum) = 11010011.
Receiver Side (Data + Checksum):
11001100 (204)
10101011 (171) <-- ERROR!
11110000 (240)
11000011 (195)
11010011 (211) <-- Checksum
11001100
+ 10101011
----------
1 01110111 -> Wrap carry: 01110111 + 1 = 01111000
01111000
+ 11110000
----------
1 01101000 -> Wrap carry: 01101000 + 1 = 01101001
01101001
+ 11000011
----------
1 00101100 -> Wrap carry: 00101100 + 1 = 00101101
00101101 (Sum of received data)
+ 11010011 (Received checksum)
----------
1 00000000 -> Wrap carry: 00000000 + 1 = 00000001
Final receiver sum = 00000001.
The 1's complement of this is 11111110.
Conclusion: The result is NOT 00000000 (or all ones, depending on check method). Therefore, the receiver detects that an error has occurred.
TCP congestion control has three main phases/states, governed by the Congestion Window (cwnd):
cwnd = 1 MSS. It grows *exponentially*, doubling every RTT (it adds 1 MSS for every ACK received). This continues until cwnd reaches the threshold (ssthresh).cwnd > ssthresh, growth slows to be *linear* (it adds 1 MSS per RTT). This probes for more bandwidth more gently.ssthresh is set to cwnd / 2. cwnd is reset to 1, and it re-enters Slow Start.ssthresh is set to cwnd / 2. cwnd is also set to ssthresh. It skips Slow Start and enters Congestion Avoidance/Fast Recovery.The threshold value (ssthresh) is the "memory" of the last congestion event. It is initially set to a large value, but when packet loss occurs, it is set to half of the current congestion window, marking the point where the network is believed to be congested.
Drawback:
The primary drawback of Stop-and-Wait is its extreme inefficiency. The sender sends one packet and then *stops* and *waits* for an ACK. The entire link is idle for the full Round Trip Time (RTT). This is a low "utilization" problem. In a network with a high bandwidth-delay product (e.g., fast, long-distance links), Stop-and-Wait might use less than 0.1% of the available capacity.
How to solve it:
The problem is solved using pipelining. Pipelining allows the sender to send *multiple* packets (a "window" of N packets) before it needs to receive the ACK for the first packet. This keeps the "pipe" full of data and dramatically increases efficiency.
Protocols that use pipelining:
Router Components (HW vs SW):
Data Plane vs. Control Plane:
A: Divide 200.1.2.0 (Class C, /24) into 4 subnets.
255.255.255.192).200.1.2.0/26200.1.2.64/26200.1.2.128/26200.1.2.192/26B: Subnetwork address for 200.10.5.68/28.
200.10.5.68255.255.255.240.ping uses ICMP Echo Request/Reply. traceroute uses ICMP Time Exceeded messages. A router sends an ICMP Destination Unreachable if it can't forward a packet.The 5-layer TCP/IP (or Internet) protocol stack:
Circuit Switching:
Packet Switching:
Given:
We need to find distance `m` where $d_{prop} = d_{trans}$.
Cookies:
Set-Cookie: header. The browser stores it and sends it back to that same server with every future request in a Cookie: header. (See 2025 Q4.a. for full detail).Proxy Server (Web Proxy):
Conditional GET:
Last-Modified date of a page. On the next request, it sends this date in an If-Modified-Since: header. If the page hasn't changed, the server replies with 304 Not Modified (empty body), saving bandwidth. If it has, it sends 200 OK with the new page.DNS (Domain Name System) translates human-readable names (google.com) into IP addresses (142.250.196.196). It's a distributed, hierarchical database.
Iterative Query Process:
.com).google.com).Mail *transfer* uses SMTP. Mail *access* uses POP3, IMAP, or HTTP (webmail).
Transport Layer Services: (See 2024 Q3.a. for full list).
Connection-Oriented (e.g., TCP):
Connectionless (e.g., UDP):
A TCP header is typically 20 bytes long (without options).
Key Fields:
rwnd) used for *flow control*.Network: 192.168.10.0/28. Block size = 16. Skip subnet .0.
A: IP of E0 (eighth subnet, last available IP):
B: IP of S0 (first subnet, last available IP):
Sender Side:
11001100, 10101010, 11110000, 110000110010110011010011Receiver Side:
11001100, 10101011 (Error), 11110000, 110000111101001100000001Conclusion: The result is not all-zeros (or all-ones). An error is detected.
This is the Three-Way Handshake:
Seq=x). "Hi, I'd like to connect."Seq=y, Ack=x+1). "I acknowledge your request and I'd also like to connect."Seq=x+1, Ack=y+1). "I acknowledge your acknowledgment. The connection is open."The IPv4 header is 20 bytes (without options).
Key Fields:
4 for IPv4.6 for TCP, 17 for UDP).(i): Divide 200.1.2.0 (Class C, /24) into 4 subnets.
200.1.2.0/26, 200.1.2.64/26, 200.1.2.128/26, 200.1.2.192/26.(ii): Subnetwork address for 200.10.5.68/28.
192.168.x.x) to share a single public IP.
ping (Echo Request/Reply), traceroute (Time Exceeded).Ashok Fitness is currently open to DATE.