I think that keeping the networking portion as a part of the non-realtime
task (kernel) running at low priority is not a good idea. Now days, many (most)

of the real-time systems depending upon the network connectivity. Making
networking stack as low priority task will result  in a non-reliable
communication.
Also, may systems are designed to provide the connectivity, say routers. Ffor
such
system, this approach is highly un-reliable. May be I am wrong, but in that
case pls
correct me.

Regards,
Yusuf

Paul Koning wrote:

> >>>>> "Aleksandar" == Aleksandar Bakic <[EMAIL PROTECTED]> writes:
>
>  Aleksandar> David Schleef <[EMAIL PROTECTED]> writes:
>  >> Even though it leads you down the dark path of "reinventing TCP",
>  >> I would suggest switching to a UDP connection.  One of the things
>  >> UDP offers over TCP is that you can effectivly hog the network --
>  >> TCP tries to be nice.  TCP has a feature called "slow start",
>  >> which makes it ramp up the bandwidth it tries to use.  This can
>  >> cause problems if you expect to be able to use a lot of bandwidth
>  >> quickly.
>
>  Aleksandar> I thought about this, but a friend, who has more
>  Aleksandar> experience with the network configurations at my
>  Aleksandar> university, said that he had had too many dropped packets
>  Aleksandar> when using UDP (around 90%). And I don't need quick
>  Aleksandar> one-time connections, but just the opposite (periodic
>  Aleksandar> sending of data, 225kBps on average).
>
> Your friend's comment misses the point.
>
> If you do not need reliable delivery (i.e., your application will
> still work if n% of the packets never get to their destination) then
> UDP is unquestionably the right answer -- provided your network
> delivers a loss rate comfortably below n%.
>
> If you have a network loss rate of k% and you need an application loss
> rate less than that, you need some sort of error recovery mechanism.
>
> The traditional one is TCP: ACK, timeout, and retransmit ("ARQ").  You
> can use TCP, if the built-in algorithms meet your needs.  Or you can
> roll your own "TCP equivalent" out of UDP.  As David mentions, you can
> use your preferred algorithms that way, for example not use slow start
> or not use congestion avoidance (back down if loss rates go up).
>
> If you have a network with a 90% loss rate, is is severely broken. No
> normal protocol will work acceptably on such a network.  You need to
> repair it first.  As a rule of thumb, going back about 30 years, a
> packet loss rate of 1% will cut your application throughput by 50%,
> possibly more.  Note that UDP isn't the issue here; TCP won't get any
> useful work done on such a network either.  Normal ARQ algorithms just
> aren't designed to work under such abuse.
>
> There's an alternative to ARQ that's sometimes useful: FEC (Forward
> Error Correction).  That doesn't use retransmission, but relies
> instead on redundant transmission to ensure things still get through
> in the presence of errors.  A very simple example is sending every
> packet twice.
>
> You can easily construct FEC on top of UDP.
>
> The reason you might use FEC is that it lets you deal with a lossy
> network without introducing extra delays when packets are dropped.
> The price you pay is that you always send extra data even when packets
> are not being dropped.  The classic application is satellite data
> transmission, where you can't afford waiting for the round trip time.
> (ARQ to Mars would be absurd...)
>
>         paul
> --- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> ----
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/~rtlinux/

--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to