17,387 views

Consider three IP networks $A, B$ and $C$. Host $H_A$ in network $A$ sends messages each containing $180$ bytes of application data to a host $H_C$ in network $C$. The $\text{TCP}$ layer prefixes $20$ byte header to the message.

This passes through an intermediate network $B$.The maximum packet size, including $20$ byte IP header, in each network is:

• A: $\text{1000 bytes}$
• B: $\text{100 bytes}$
• C: $\text{1000 bytes}$

The network $A$ and $B$ are connected through a $1$ Mbps link, while $B$ and $C$
are connected by a $512$ Kbps link (bps = bits per second). Assuming that the packets are correctly delivered, how many bytes, including headers, are delivered to the $IP$ layer at the destination for one application message, in the best case? Consider only data packets.

1. $200$
2. $220$
3. $240$
4. $260$

data is not being fragmented at network A as it’s mss is 1000
if we do defragmentation at every node, the message you are sending on whatsapp will get delivered tomorrow.
Right

Packet $A$ sends an $IP$ packet of $180$ bytes of data $+ 20$ bytes of TCP header $+ 20$ $bytes$ of IP header to $B$.

$IP$ layer of $B$ now removes $20$ $bytes$ of $IP$ header and has $200$ bytes of data. So, it makes $3$ IP packets - $[80 + 20, 80 + 20 , 40 + 20]$ and sends to $C$ as the Ip packet size of $B$ is $100$. So, $C$ receives $260$ bytes of data which includes $60$ bytes of $IP$ headers and $20$ bytes of TCP header.

For data rate, we need to consider only the slowest part of the network as data will be getting accumulated at that sender (data rate till that slowest part, we need to add time if a faster part follows a slower part).

So, here $180$ bytes of application data are transferred from $A$ to $C$ and this causes $260$ $bytes$ to be transferred from $B$ to $C$.

Correct Answer: $D$
by

Can we say that the extra overhead caused by fragmentation is 60B?

@Abhrajyoti00 overhead due to “fragmentation”  should be 40B only as 20B IP header was already present on the packet.

@JAINchiNMay Oh yes :)

Explanation: Network B receives 220 bytes of data (180 bytes of application layer data + 20 bytes of TCP header + 20 bytes of IP header) from network A. As maximum packet size of network B is 100 bytes (data of 80 bytes + 20 bytes IP header), for network B, out of 220 Bytes, 200 bytes would be of data or payload (180 bytes of application layer data + 20 bytes of TCP header) and 20 bytes of IP header. Network B now removes the 20 bytes header. Out of 200 bytes of data, it uses 80 bytes of data. Thus 1st packet leaving B would be of 100 bytes (Data: 80 bytes, IP header: 20 bytes). Now we have 120 bytes of data remaining. Thus the 2nd packet leaving B would be of 100 bytes (Data: 80 bytes, IP header: 20 bytes). Now we have 40 bytes of data remaining. Thus the 3rd packet leaving B would be of 60 bytes (Data: 40 bytes, IP header: 20 bytes).

Hence, total of 100 + 100 + 60 bytes = 260 bytes would be received by the destination.

Why IP network B removes the header but dont put it back
fragmentation and de-fragmentation both must be done by network B.

but here why is it done only at the destination?
Why the defragmentation is not done when packet is leaving the network B. Why the defragmentation is done only at sender.
nice explanation!!
180B application data + 20B TCP header = 200B
For network layer, 200B data is to be sent with 20B header in each packet.

No problem with A, C.
B has maximum packet size 100.

We will split  200 as  80+80+40
(80+20), (80+20), (40+20)= 260  (Ans)
by

@Ahwan

Can you please let me know that why defragmentation is not done at b itself. Why we are doing the degragmentation at the destination.
Defragmentation can't be done at middle of the path because multiple packets may take different paths but finally reaches to the destination, that's the reason reassembly algorithm will be applied at destination only.
Why are we removing the IP header at B?
At network B we have to do the fragmentation because data coming from network A to network B is of 220 bytes (180 bytes+ 20 bytes IP header + 20 bytes TCP header) and maximum transmittable unit at network  B is 100 bytes (i.e. IP header =20 bytes and Payload =80 byes) In fragmentation we have to consider only payload {Since network B got 220 bytes from network A therefore ip header=20 bytes payload=200 bytes} according to payload size we should  perform fragmentation {actually we are not removing ip header we are just not considering it in fragmentation process that means in each fragmented packets payload size should not exceeds than 80 bytes and payload size of all fragmented packets total should be 200 bytes} So, network B fragment data like [80+20,80+20,40+20] {where no fragmented packet payload size exceeds than 80 bytes and payload size of all fragmented packets put together=200 bytes}

Here actually network A sends packet with one ip header to B but cause fragmentation at network B total 3 headers (in which 2 headers are overhead) added ( because each fragment going to have ip header cause of datagram service) that is an overhead. that’s why even 180 bytes of application data are transferred from A to C but network C receives ( 80+20+80+20+40+20 =260 bytes ) because of overhead that arises cause of fragmentation