mldonkey-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-users] Re: mld 2.02-16 with MTU 1500 | was: FYI:CVS2.02-16


From: Brett Dikeman
Subject: [Mldonkey-users] Re: mld 2.02-16 with MTU 1500 | was: FYI:CVS2.02-16
Date: Fri, 21 Feb 2003 14:09:48 -0500

At 11:09 AM +0100 2/21/03, Sven Hartge wrote:

Why does mldonkey need to know the MTU anyway? All other programs using
the IP-Stack don't need this value and work perfectly.

I got the impression from the emails traded back+forth that the value is used for bandwidth estimation.

If I'm wrong and it's actually used for assembling packets, that's -quite- bad.

Here's an explanation for those who don't know- MTU is a function of layer 2 on the ISO model(see below). MLdonkey (being an application) is level 7. Or, if you prefer the tcp/ip 4-layer model, it's layer 1 vs 4.

In both cases, the whole point of a layered approach is to isolate each layer from the peculiarities/specifics of the level(s) below it(or above it, to boot).

The application does not need to know how to interact with a wireless card vs. a modem versus an ethernet connection; the network drivers(layer 2) handle that sort of thing. Similarly, my ethernet switch(layer 1) really doesn't give a hoot what kind of TCP/IP traffic I pass through it.

This sums it up nicely:

http://www.uwsg.iu.edu/usail/network/nfs/network_layers.html

Fun stuff :-)

Oh, also- the Maximum Transmission Unit is a "maximum" for a reason. It is not what you should use all the time for your packets- it has to be dynamic, like window size. If the link between two users happens to get more congested, packet size and window size are supposed to drop until things start flowing again.

It sounds counterintuitive from an efficiency standpoint, especially if the link is congested...until you look at the cost of loosing an entire packet's worth of data(and hence the window!), and the handshake and retransmission involved as a result.

Dropping a packet from 1500 to 1000 bytes only results in a loss of about 1% in efficiency, but having to retransmit just one packet results in a much more dramatic loss of efficiency- at least 50%.

B
--




reply via email to

[Prev in Thread] Current Thread [Next in Thread]