Re: Network stack/ethernet driver issues
Re: Network stack/ethernet driver issues
- Subject: Re: Network stack/ethernet driver issues
- From: "Justin C. Walker" <email@hidden>
- Date: Thu, 10 Apr 2008 08:44:02 -0700
On Apr 10, 2008, at 06:45 , Michael Cashwell wrote:
On Apr 9, 2008, at 8:58 PM, William Kucharski wrote:
email@hidden wrote:
If frequently dropping packets with only 40% of the available
bandwidth being utilized and no load on the machine other than an
application listening for and peeking at the contents of said
packets is considered OK then I will stick to Linux for my low
latency, high bandwidth network applications (and encourage others
to do likewise).
UDP can drop as many packets as it wants to, that's why it's UDP.
Incorrect. You are conflating non-retry with low Quality-of-Service.
They are independent things.
Very often UDP is used for data that are time-sensitive where
retrying (even if successful) would result in the data arriving late
enough as to be useless. Using UDP does not mean the data are less
important than TCP data. It just means that retries are not useful.
In fact, UDP data (consider live video conferencing) is often given
a HIGHER Quality of Service level specifically because retrying them
is not an option. If a router along the way is congested it might
preferentially drop a low-QoS TCP packet (since it's not real-time
and can be more easily recovered) than a high-QoS UDP one.
There may be mechanisms within a "stack" (from app to driver/device)
to facilitate QoS, but the fact remains that UDP is not "guaranteed".
In fact your example shows that it is not worthwhile to have the UDP
(or lower) engines keep beating on the system to send a specific
packet. The QoS at a particular level is best handled at that level
(perhaps in terms provided by lower levels, of course).
The point in rimas' case is that just because the data are UDP does
not give the Ethernet driver more permission to drop them than if
they were UDP nor does it mean they are less important.
You are correct that an ethernet driver does not have permission to
drop one kind of packet over another, I don't think you are correct in
your implication that it cares about network-layer packet types: these
are all one to the driver (it's possible for the driver to obey QOS
indicators of some type, but it can't know about the IP frame type: in
particular, it may not know that a particular packet is in fact (part
of) a UDP frame). After all, it's ethernet. Even if the packet gets
to the media layer, there's no guarantee that (a) it will make it out
the door; or (b) even if it gets out the door, it may not survive the
trip across the local link :-}).
Justin
--
Justin C. Walker, Curmudgeon-At-Large
Institute for the Absorption of Federal Funds
--------
Men are from Earth.
Women are from Earth.
Deal with it.
--------
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden