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.
Example file x-fer:
Connection says: Here is a N-byte file, sent in numbered blocks over
UDP port Y.
UDP sender: sends all the file blocks.
Receiver: receives all the UDP data except Z numbered blocks.
Receiver connection says: send me Z numbered blocks.
UDP sender: sends the missing blocks
Receiver: receives all UDP data except Z! numbered blocks.
Receiver connection says: send me Z! numbered blocks.
/// This repeats until there are no missing blocks.
Receiver connection says: Thanks and hangs up.
Now, since every UDP packet is not ACKed in the network layer,
the through-put can be very high. Only the missing data needs
to be replaced. Even with 10 percent missing data, such a transfer
can be much faster than TCP/IP with high-latency links (like satellite).
Cheers,
Dick Johnson
Penguin : Linux version 2.4.1 on an i686 machine (797.90 BogoMips).
I was going to compile a list of innovations that could be
attributed to Microsoft. Once I realized that Ctrl-Alt-Del
was handled in the BIOS, I found that there aren't any.
-
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/
This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:01:04 EST