Messages in this thread | | | Date | Thu, 07 Feb 2002 13:44:53 -0500 | From | Chris Friesen <> | Subject | Re: want opinions on possible glitch in 2.4 network error reporti ng |
| |
"Richard B. Johnson" wrote: > > On Thu, 7 Feb 2002, Perches, Joe wrote: > [SNIPPED..] > > > That is correct UDP behaviour > > > > Do you think this is the correct PacketSocket/RAW behaviour? > > Yes. > > > How does one guarantee a send/sendto/write? > > - > > Easy, you use send() or write(). These work on stream protocol TCP/IP > where there is a "connection". Connectionless protocols, i.e., UDP are > not guaranteed to do anything useful -- but, because of their speed, > they can be useful with some help from user-mode code.
Is there any syscall that can guarantee that a single packet has been sent out over the wire? Suppose I want to broadcast an ARP packet. If I make a packet socket and call sendto() on it, I want a guarantee that the packet will make it out onto the wire, or the sendto() should fail.
UDP failing I can understand (kind of, anyway) but for raw sockets, packet sockets, etc. I think there should be at least some kind of mechanism to bypass all the congestion controls and either shove the packet onto the device's tx buffer or return a failure code.
The possibility of random dropping of packets in the kernel means that an infinite loop on sendto() will chew up the entire machine even if you've only got a 10Mbit/s link. This seems just wrong.
Chris
-- Chris Friesen | MailStop: 043/33/F10 Nortel Networks | work: (613) 765-0557 3500 Carling Avenue | fax: (613) 765-2986 Nepean, ON K2H 8E9 Canada | email: cfriesen@nortelnetworks.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |