|
Posted by anoop on February 19, 2005, 9:01 am
If you were Registered and logged in, you could reply and use other advanced thread options
The difference in efficiency is because the per-bit overhead
is higher for the 813th frame. Your analysis accounts for the
full 38-byte overhead even though only a total of 1144 bytes were
sent in that frame. The analysis of the website assumes the
per-bit overhead is always that encountered for a 1538-byte frame.
To get the same result as the website, you would need to reduce
your overhead for the last frame to 38/1538*1144 bytes.
Alternatively, you could go through the analysis for a larger
interval than 1 second, say 1000000 seconds, where you have a
steady stream of 1538 byte packets until the very end of the
measurement interval; i.e. a frame smaller than 1538 bytes is
sent only at the end of the 1000000th second.
Nice puzzle :-)
Anoop
Skybuck Flying wrote:
> >
> > >The maximum payload size is 1500 bytes.
> > >The overhead is: 12 gap + 8 preamble + 14 header + 4 trailer = 38
bytes.
> >
> > Maybe add in 4 byte for a VLAN tag header.
>
> Nope that gives:
>
> 1.250.000 bytes / 1542 bytes = 810.6355382619974059662775616083
>
> >
> > >1.250.000 bytes / 1538 bytes = 812,74382314694408322496749024707
> >
> > >I am kinda surprised that it's not a whole number. I was excepting
a
> whole
> > >number for maximum efficiency :D
> >
> > Huh? Why would you gain efficiency by having an integral number of
> > packets fit into one second of realtime? What does Ethernet know
> > about real time seconds? I just don't see it.
>
> The maximum ammount of bits that can be sent per second is 10.000.000
bits.
>
> To minimize overhead it would make sense to send maximum sized
packets only.
>
> In this case 812 packets * 1538 bytes = 1248856 bytes.
>
> Or 1248856 * 8 bits = 9990848 bits.
>
> The last (813th) packet would have to be:
>
> 1.250.000 - 1.248.856 = 1144 bytes.
>
> The interval between the first 812 packets would have to be:
>
> 1538 bytes * 8 bits = 12304 bits.
>
> 1 bit takes 1 second / 10.000.000 bits = 0.0000001 seconds
>
> So 12304 bits * 0.0000001 = 0.0012304 seconds
>
> or 0.0012304 * 1000 = 1.2304 milliseconds per bit
>
> So after (812 packets * 1.2304 milliseconds =) 999.0848 milliseconds
the
> 813th packet would have to be sent ;)
>
> 1144 * 8 bits = 9152 bits for the 813 th packet.
>
> 9152 bits * 0.0000001 = 0.0009152 seconds
>
> or (0.0009152 * 1000 =) 0.9152 milliseconds to send it.
>
> check: 999.0848 + 0.9152 = 1000 milliseconds ;)
>
> Exactly one second ;)
>
> Let's see how much real ethernet payload/data can be sent per second
;)
>
> (812 * 1500) + (1144 - 38) = 1218000 + 1106 = 1219106 bytes
>
> 1219106 bytes * 8 bits = 9.752.848 bits of payload ;)
>
> (9.752.848 / 10.000.000) * 100% = 97.52848%
>
> 97.52848% efficieny ;)
> 2.47152% overhead :D
>
> 1.219.106 / 1024 = 1190.533203125 KByte
>
> 1.219.106 / (1024*1024) = 1.1626300811767578125 Mbyte / sec :D
>
> The funny thing is that the figures on this website are therefore not
> correct ;)
>
> http://sd.wareonearth.com/~phil/net/overhead/
>
> The website reads:
> "
> Ethernet Payload data rates are thus:
> (1500/(38+1500)) * 100 = 97.529258777633289986996098829649 without
802.1q
> tags.
> "
>
> Websites 97.5293 % versus my 97.52848% ;)
>
> De website is assuming 97.5293 efficiency.
>
> Bogus answer: maximum payload bits per second:
> 0.97529258777633289986996098829649 * 10.000.000 bits =
> 9752925.8777633289986996098829649 (half a bit? yeah right ;) :D )
>
> Real answer: maximum payload bits per second:
> 9752848 bits
>
> Difference:
> 9752925.8777633289986996098829649 - 9752848 =
> 77.877763328998699609882964889467 bits.
>
> The amazing thing is ;) de website is off by about 77.8 bits ;D
>
> Bye,
> Skybuck.
|