Full question-: What should we do if the number of bytes to be transferred are not in multiples of eight in ipv4?
Theory that I want to understand is as follows-:
https://i.stack.imgur.com/RDVcG.png
So i found a question that is relevant to this-:
->a total of 1440 bytes that is routed through an interface with MTU of 576 bytes. Calculate flag, fragmented offset, total length and data transmitted in each packet after fragmentation. Assume IP header to be 20 bytes.
Solution-:
1440=20+1420
MTU is 576.
Number of fragments=1420/576=3
So let's call 3 packets P1,P2,P3.
P1=>20+556
P2=>20+556
P3=>20+308
So I am trying to understand what the above picture is trying to say.
There are 2 cases-:
-> Is it trying to say that total length of P1 should be divisible by 8?
-> Is it trying to say that "only data" part should be divisible by 8?
I have even further questions about it.
->Say, the total length of P1 should be divisible by 8. What will we do if it is not?
->(I believe) Say the "only data" part should be divisible by 8, then what should we do as neither 556 nor 308 is divided by 8.
So say I reiterate and do this arrangement(I believe this is correct way)-:
P1->20+552
P2>20+552
P3->20+316
Still 316 isn't divisible by 8, what should I do now?
i don't understand the solution that is written in the picture that i attested above. how can we use that solution to our case?
IRRESPECTIVE OF WHATEVER I WROTE,if you want,YOU CAN EXPLAIN LIKE I AM BEGINNER TO ALL THESE
The multiples of 8 is only for fragmented packets, and is because of the fragment offset field. See this link: https://packetpushers.net/ip-fragmentation-in-detail/ They explain it better than I can.
So when and only when fragmenting packets you need to break it in multiples of 8 except for the last packet. Normal packets can be whatever length they need to be up to the MTU. Also you normally will not see any of this in a real network because most stuff sets the don't fragment bit, and uses path MTU discovery to figure out the largest packet that can be sent end to end, and use that.
-Otanx
That is true. And when something doesn't fit nicely into a size we want, it's typical for the frame to be stuffed out with consecutive zeroes until it does fit.
can you guys explain how i can stuff bits in my case? and can you also explain about finding exact length of data from total length and padding?
From what I remember, bit stuffing happens automatically... question is, who stuffs the bits, right?
https://en.wikipedia.org/wiki/Bit_stuffing
It's the sender of the packet, whoever it is, that will stuff bits to make things fit. However, the header bits that indicate length of the data part are intact, so the stuffed area is always outside that part.
I believe it's the NIC job to stuff packets.