Networking Forums  

Go Back   Networking Forums > Networking Newsgroups > Linux Networking

Determining avaliable bandwidth with _datagrams only_

Reply
 
Thread Tools Display Modes
  #1  
Old 08-12-2007, 03:47 PM
Default Determining avaliable bandwidth with _datagrams only_



I'm currently developing the software for a ROV (remotely
operated vehicle), which has a bunch of sensors and other stuff
on board, everything controlled by a Linux (of course) computer.

By the nature of the project the network connection must be
considered unreliable. Thus the protocols to be used are of
the "fire and forget" nature. If packages arrive it's good, if
they're lost it's noting bad either, as long as some get
through. So datagrams are used (a stream might easyly timeout).

However the avaliable bandwidth may (will?) vary over a wide
range (from a few 10kBit/s up to 5MBit/s), and since there is no
stream connection I don't see an easy way to determine the
actual time a package of given length takes to be transmitted.
There shall also be no ACK datagrams be sent. If the ROV doesn't
recieve control packages within a given time it will simply stop
and wait.

Knowing the actual avaliable bandwidth, remaining after error
correction and stuff, is important, as there are also a few
cameras on board and the amount of compression and framerate
should be dynamically adapted to the avaliavle bandwidth.

Any ideas?

Wolfgang Draxinger
--
E-Mail address works, Jabber: (E-Mail Removed), ICQ: 134682867



Wolfgang Draxinger
Reply With Quote
  #2  
Old 08-13-2007, 04:34 PM
Martin Blume
Guest
 
Posts: n/a
Default Re: Determining avaliable bandwidth with _datagrams only_

"Wolfgang Draxinger" schrieb
>
> [ Re: Determining avaliable bandwidth
> with _datagrams only_ ]
>

If nobody has any idea, I'll throw in some of mine:

- one process regularly transmits the number of bytes
and packets sent. The receiver can determine
what he received and update the sender on how to throttle
bandwidth / chattiness.

- keep at least one TCP communication, observe its
behaviour (on both sides) and update your UDP communication
strategy accordingly.

- read up on how TCP tries to optimize its communication
stuff and try to implement some of it on your platform

FWIW. HTH.
Martin

Reply With Quote
  #3  
Old 08-14-2007, 05:56 PM
phil-news-nospam@ipal.net
Guest
 
Posts: n/a
Default Re: Determining avaliable bandwidth with _datagrams only_

On Sun, 12 Aug 2007 16:47:21 +0200 Wolfgang Draxinger <(E-Mail Removed)> wrote:

| I'm currently developing the software for a ROV (remotely
| operated vehicle), which has a bunch of sensors and other stuff
| on board, everything controlled by a Linux (of course) computer.
|
| By the nature of the project the network connection must be
| considered unreliable. Thus the protocols to be used are of
| the "fire and forget" nature. If packages arrive it's good, if
| they're lost it's noting bad either, as long as some get
| through. So datagrams are used (a stream might easyly timeout).
|
| However the avaliable bandwidth may (will?) vary over a wide
| range (from a few 10kBit/s up to 5MBit/s), and since there is no
| stream connection I don't see an easy way to determine the
| actual time a package of given length takes to be transmitted.
| There shall also be no ACK datagrams be sent. If the ROV doesn't
| recieve control packages within a given time it will simply stop
| and wait.

That should be a time that is an interval between received packets.
Unless you are hitting the bandwidth so hard as keep it saturated
with datagrams, the bandwidth should not have that much of an effect.


| Knowing the actual avaliable bandwidth, remaining after error
| correction and stuff, is important, as there are also a few
| cameras on board and the amount of compression and framerate
| should be dynamically adapted to the avaliavle bandwidth.

If the bandwidth can change fast, you'll have to handle it dynamically.
Since what is probably importabt is usable bandwidth in terms of how
many datagrams successfully arrive, I suggest simple measures based on
that. Measure what is getting through and keep some short and long
term numbers showing this. It won't show literal bandwidth; it will
show effective bandwidth relative to usage (if you are using it too
lightly, it will "look" relatively higher).

--
|---------------------------------------/----------------------------------|
| Phil Howard KA9WGN (ka9wgn.ham.org) / Do not send to the address below |
| first name lower case at ipal.net / spamtrap-2007-08-14-(E-Mail Removed) |
|------------------------------------/-------------------------------------|
Reply With Quote
Reply

Tags
avaliable, bandwidth, datagrams, determining

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 08:48 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.