Question

In: Computer Science

A program at host A sends a UDP datagram carrying 4500 octets1 of data (or payload)...

A program at host A sends a UDP datagram carrying 4500 octets1 of data (or payload) to its counterpart at host C. In between A and C is router B. The MTU between A and B is 1500 octets while between that B and C 1320 octets. Show IP packets and fragments along the path. For each IP packet and fragment, show key header fields like Total Length, Identification, More Flag, and Fragmented Offset

Solutions

Expert Solution

Solution:

Given,

=>Total data or payload size = 4500 octets

=>A.....B......C

=>MTU between A and B = 1500 octets

=>MTU between B and C = 1320 octets

Explanation:

=>Lets consider minimum header size of IPV4 header = 20 bytes

=>1 octet = 1 byte

Datagram:

20 bytes 4500 bytes

Header              Data

MTU in between A and B:

20 bytes 1480 bytes

=>As MTU in between A and B is less than the datagram size so fragmentation will be there.

Fragmentation between A and B:

Fragment 1:

=>Total length = 1500 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because fragment 2, 3 and 4 will be following.

=>Fragment offset = 0

20 bytes 1480 bytes

   Header            Data

Fragment 2:

=>Total length = 1500 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because fragment 3 and 4 will be following.

Calculating fragment offset:

=>1480/8 = 185

=>Fragment offset = 185

20 bytes 1480 bytes

   Header            Data

Fragment 3:

=>Total length = 1500 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because fragment 4 will be following.

Calculating fragment offset:

=>1480/8 = 185

=>Fragment offset = 370

20 bytes 1480 bytes

    Header            Data

Fragment 4:

=>Total length = 1500 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 0 because no fragment will be following.

Calculating fragment offset:

=>1480/8 = 185

=>Fragment offset = 555

20 bytes 20 bytes

   Header            Data

Fragmentation in between B and C:

MTU in between B and C:

20 bytes 1300 bytes

    Header            Data

Fragment 1 of fragment 1:

=>Total length = 1316 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because other fragments are following

Calculating fragment offset:

=>Fragment offset = 0

20 bytes 1296 bytes

   Header            Data

Fragment 2 of fragment 1:

=>Total length = 204 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because other fragments are following

Calculating fragment offset:

=>1296/8 = 162

=>Fragment offset = 162

20 bytes 184 bytes

   Header            Data

Fragment 1 of fragment 2:

=>Total length = 1316 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because other fragments are following

Calculating fragment offset:

=>Fragment offset = 185

20 bytes 1296 bytes

   Header            Data

Fragment 2 of fragment 2:

=>Total length = 204 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because other fragments are following

Calculating fragment offset:

=>1296/8 = 162

=>Fragment offset = 347

20 bytes 184 bytes

   Header            Data

Fragment 1 of fragment 3:

=>Total length = 204 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because other fragments are following

Calculating fragment offset:

=>Fragment offset = 370

20 bytes 1296 bytes

   Header            Data

Fragment 2 of fragment 3:

=>Total length = 204 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 1 because other fragments are following

Calculating fragment offset:

=>1296/8 = 162

=>Fragment offset = 532

20 bytes 184 bytes

   Header            Data

Fragment 4:

=>Total length = 40 bytes

=>Let say identification = ID because it remains same for a datagram throughout.

=>More flag = 0 because no other fragments are following

Calculating fragment offset:

=>Fragment offset = 555

20 bytes 20 bytes

   Header            Data

I have explained each and every part with the help of statements attached to it.


Related Solutions

What's the point of having a checksum in the UDP datagram header when the source host...
What's the point of having a checksum in the UDP datagram header when the source host doesnt care if some parts of the message do not arrive at the destination?
A rocket is nothing more than a fancy tube for carrying fuel and payload—the more fuel/payload,...
A rocket is nothing more than a fancy tube for carrying fuel and payload—the more fuel/payload, the bigger the tube. Consider a rocket carrying a mass of fuel ?; the mass of the empty rocket plus payload is ? = ?? where ? < 1. The rocket burns its fuel at a rate ?, and the spent fuel is ejected out the back at a speed (relative to the rocket) ?. The rocket blasts off, aimed straight up, and continues...
I am trying to write a UDP socket program in which there is a server program...
I am trying to write a UDP socket program in which there is a server program and a client program. This is what I have but I can't figure out where I am going wrong. This is the input and expected output: > gcc udpclient.c –o clientout > gcc udpserver.c –o serverout > ./serverout 52007 ‘to celebrate’ & > ./clientout odin 52007 ‘Today is a good day’ Today is a good day to celebrate //UDP echo client program #include #include...
A non-profit program for youths sends students to summer camp. The price of the program is...
A non-profit program for youths sends students to summer camp. The price of the program is $800 per student, and there are 8 students that can participate in each program. Each program runs for 11 days. The price for all food and equipment is $100 per student per day. Also, the two program guides cost $150 a day to hire. a. What is the profit margin for the program? b.The non-profit was able to get a grant to cover $200...
A program P1 sends its output to another program P2. Let R1 be the range of...
A program P1 sends its output to another program P2. Let R1 be the range of P1 and D2bethe domain of P2. Discuss with concrete examples, the implication that the range of P1 does not equal the domain of P2(i.e. R1 != D2 or R1 <> D2).What behaviors would you expect from P2 when it receives and processes the output from P1? Consider the different situations of this implication.
Multiple choice questions: Circle the correct answer 9) Suppose Host A sends four TCP segments back...
Multiple choice questions: Circle the correct answer 9) Suppose Host A sends four TCP segments back to back to Host B over a TCP connection. The sequence numbers in the four segments are 70, 90, 110, and 130, respectively. Suppose that the second segment is lost but all the other segments arrive at B. In the acknowledgement that Host B sends to Host A after the fourth segment arrives at B, the acknowledgement number is (a) 70; (b) 90; (c)...
A radiosonde is released and sends back temperature data as shown in the diagram.
A radiosonde is released and sends back temperature data as shown in the diagram.​​​​​​​​​​​​​​​​                             a. Calculate the environmental lapse rates from the surface up to 3000m.b. What type of atmospheric stability does the sounding indicate? Suppose the wind is blowing from the west and a parcel of surface air with a temperature of 10 C and a dew point of 2 C begins to rise upward along the western (windward) side of the mountain.c. What is the relative humidity of...
Write a C program that creates 5 threads sends the thread index as an argument to...
Write a C program that creates 5 threads sends the thread index as an argument to the thread execution procedure/function. Also, the main process/thread joins the newly created threads sequentially one after the other. From the thread procedure print “I am a thread and my index is “ [print the correct index number]. From the main thread after the join print “I am the main thread and just completed joining thread index “ [print the correct index].
Write a program in C or C++ that spawns three child processes. The first child sends...
Write a program in C or C++ that spawns three child processes. The first child sends a signal to the parent (you'll need the parent's pid!), which the parent shall catch. The second child waits for 10 seconds and then terminates. Once the parent detects that both of these has happened, it should signal the third child to terminate.
Session 6.2 Quick Check What is a digital certificate? A self-replicating and self-executing program that sends...
Session 6.2 Quick Check What is a digital certificate? A self-replicating and self-executing program that sends copies of itself to other computers over a network is called a(n) ______________. Describe malware and name three examples of it. What is a web bug and how can it pose a security risk? What is a firewall? How can you tell that a webpage you are viewing with a browser is secure? What is a server certificate?
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT