Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Don Y <this@isnotme.com> |
|---|---|
| Newsgroups | comp.arch.embedded, comp.realtime |
| Subject | UDP timers |
| Date | 2014-01-03 14:03 -0700 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <la78id$buf$1@speranza.aioe.org> (permalink) |
Cross-posted to 2 groups.
Hi, I've been discussing this in another forum and we haven't (yet!) come up with any generic approaches that can be bent to the task. So, I figured it was worth exploring, here... I've got some UDP-based protocols that try to be really lean (hence the avoidance of TCP!). They also must provide certain timeliness guarantees for the mechanisms that rely on them. And, reliable delivery (heh heh heh). Deployed, the network configuration is either known a priori or network discovery *at* deployment suffices (thereafter, networks are *very* static!). Networks are intended to be private and contain only "well behaved" devices. I currently use RTT estimates based on information that the device, AS AN INTEGRATED ENTITY, can gleam from the *set* of protocols running thereon. (This lets me avoid adding extra traffic as "overhead" -- low information content per octet). I.e., instead of explicit acknowledgements (which add overhead), the acknowledgements are *inferred* from other observable behaviors in the device as a whole. While I can get a rather precise metric for the temporal costs of the *fabric*, I'm having a harder time trying to factor in the variance in the processing times on the (remote) node without artificially tightening its deadline constraints. Specifically, I'm trying to (dynamically) maintain the functional equivalent of the RTO at the minimum level that *just* catches a lost datagram without waiting wastefully too long *or* "correcting/recovering" prematurely. The algorithms used in commodity stacks tend to be very naive in their expectations (of necessity!) so you don't get a finely tuned response. There, the cost of a dropped packet is inconsequential. I want to dynamically alter the deadline that invokes the "recovery handler" for these particular protocol instances -- not too soon (wasted effort as the "dropped" datagram may be arriving *as* the handler starts running!) nor too late (threatens performance). I guess this boils down to filters to guesstimate runtimes of specific (remote!) tasks? Thx, --don
Back to comp.realtime | Previous | Next | Find similar | Unroll thread
UDP timers Don Y <this@isnotme.com> - 2014-01-03 14:03 -0700
csiph-web