13,235 views

A TCP message consisting of $2100$  $bytes$ is passed to IP for delivery across two networks. The first network can carry a maximum payload of $1200$ $bytes$ per frame and the second network can carry a maximum payload of $400$ $bytes$ per frame, excluding network overhead. Assume that IP overhead per packet is $20$ $bytes$. What is the total IP overhead in the second network for this transmission?

1. $\text{40 bytes}$
2. $\text{80 bytes}$
3. $\text{120 bytes}$
4. $\text{160 bytes}$

Payload of Frame = IP Header + TCP Header + TCP Data

Payload of IP = TCP Header + TCP Data

Payload of TCP = TCP Data

Question says, maximum payload of 1200 Bytes/Frame.

Which means, 1200 = IP Header + TCP Header + TCP Data

BUT since the question also mentions, EXCLUDING NETWORK OVERHEAD and since routers don't have Transport Layer, but have DLL and NL, so it will treat Frame Header + IP Header as overhead.

So, now we can say, 1200 = TCP Header + TCP Data which is nothing but payload of IP.
Here shouldn’t be the total overhead  is 100 B.-

See We have to send 2120 B (2100 B of data + 20 B of IP Header) but actually we are sending 6*20=120 B IP Header + 2100 B data so total we are sending (2100+120) = 2220 B.

So, Total overhead = (2220 – 2120) = 100 B.

Plz help...
SammanV your question is not clear to me, maybe you are asking how the overhead is not adding up to the answer provided here? if that's the case:

Total overhead will always be: 2220 – 2100 (Size of total packets in the end – total payload)
You are also including the header in the payload, that's why it is not adding up.
Remember, during fragmentation, we are discarding the header of the overall packet as new fragments will have “their” own header, which will be used for “their” identification, hence we don't need the parent info.

At source : TCP passes $2100B$ to IP layer. IP appends $20$B header and sends it to DLL and so on. ( We are interested in IP overhead, So lets consider DLL header to be negligible)

A router on the way has highest layer as Network Layer, So, complete TCP segment is fragmented. And in question $1200$ and $400$ are given as maximum payload without network overhead, means we are directly given the amount of data part of IP datagram a Frame can hold. [1200 doesn't contain IP header]

Router-1: $2120$B reach $R_1's$ network layer. It removes original IP header, fragments data part at IP and then appends IP header to all fragments and forwards. So, it divides $2100$ Bytes into two fragments of  size $1200$ and $900$.And  Both fragments are sent to $R_2$.

Router-2: Both fragments that reach $R_2$ exceed MTU at $R_2$. So, both are fragmented. First packet of $1200$B is fragmented into $3$ packets of $400$, $400$ and  $400$ Bytes respectively and Second packet of $900$B is fragmented into three fragments of $400$, $400$ and $100$ Bytes respectively.

Original data during fragmentation should not change. Only additional IP headers are added. So totally $6\;packets$ reach destination. And IP header is also an overhead because our main aim is to send data only.

Total IP Overhead $= 6*20 = 120$B

Hence, (C) is correct answer.

http://quiz.geeksforgeeks.org/gate-gate-it-2004-question-87/

by

will the overhead will be only 100bytes or 120 bytes?

If no fragmentation is done the ip header will be there of 20bytes.

if there is fragmentation instead of 1 there will be 6 packets at the destination

should the overhead be 5*20 = 100?
Wonderfully explained.thanks

what payload exactly is?  Maximum Payload of  1200 B per frame is given ,i.e , as the above picture says Payload = MSS, hence, it is different from packet size.

Question says TCP message is of size = 2100 B, hence header is encapsulated with the frame and send to IP layer, and IP layer when receives this message thinks it as complete data to be send .

To be send across the first network, It is fragmented into 2 payloads of sizes 1200 and 900 .

No need to add IP Header size with 2100B, as fragmentation acts on data/Payload and not the packet.

Now, since, IP thinks 2100B as the data so, it will directly fragment it and hence, no need to add any header.

Payload / Fragment 1: 1200 B  {1200 / 8 = 150, Except last fragment all the fragments should be divisible by 8}

Payload 2: 900 B

At the second network, 1200 B is fragmented into 400 B,400 B and 400 B .

Similarly, 900 B is fragmented into 400, 400 and 100 B.

Since, 2100 B is fragmented into 6 data payloads and Header is attached to all the payloads when they will be forwared to DLL layer. So, Total Overhead = 6 * 20 = 120 B

Hence, DLL layer will receive total Data = 2100 + 120 = 2220 B and DLL will treat it as a complete data to be sent and DLL header will be encapsulated in DLL frame.

Question says across two ,Does this mean that these are two independent networks ?Or does this mean one after another?

In answer it is assumed one after another.Is this correct meaning?

Altough answer remains same in both cases
Why you haven't considered TCP header?

the total packet size excluding IP header should be (2100+20 = 2120)
in last line of the answer it should be ip header is encapsuated in dll frame .

It is written in the question maximum payload 1200 bytes/ frame and 400/bytes per frame excluding n/w overhead it means i/p header added by n/w layer is not considered. answer will be (C). $Remark:$ MTU are 1220 bytes and 420 Bytes for the networks A and B respectively

since it is written without network overhead that is why we have not considered ip header right?

@Manu Thakur one thing I am not getting that when the packet is passed through the NW 1 and it is divided into 1200 and 900 there also ip header is added ,so here it will be 20*2=40 byte ,so the total overhead = 120+40= 160

best
As per question Ip overhead is 20 bytes. so for 1st network the 2100 bytes will be divided into <packet size,Ip overhead> =<1180,20> and <920,20> as capacity for 1st network 1200 bytes .. and for 2nd network it will be <380,20>,<380,20>,<380,20>,<380,20>,<380,20>,<280,20> as the MSS for 2nd network is  20 Bytes ... so total overhead for 2nd network is 20*6= 120 bytes ..

so option c... correct me if i am wrong ...

### 1 comment

Read mcjoshi's answer.. 1200 is payload size not packet size.