Re: Network stack/ethernet driver issues
site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com On Apr 9, 2008, at 8:58 PM, William Kucharski wrote: rimas@cnmat.berkeley.edu wrote: 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 (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... On Apr 10, 2008, at 06:45 , Michael Cashwell 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 :-}). This email sent to site_archiver@lists.apple.com
participants (1)
-
Justin C. Walker