Re: Another Beepcore-c Problem
Darren New <[email protected]> Thu, 25 Mar 2004 13:51:38 -0800
| Newsgroups | gmane.network.beep.beepcore.c.general |
|---|---|
| Message-ID | <[email protected]> |
David C Niemi wrote: > Sending multiple messages in one stream would require me to do my own > message numbering, which is a lot more work. And if I do this switcheroo > per-message, it is just as much overhead (actually one packet more thanks > to the NUL) than if I just sent a RPY back. So for now sending a RPY > seems the thing to do, and serves my purposes for the time being. I think you're misunderstanding. What Bill is describing is this. Right now, you have endpoint X sending a bunch of messages and getting no answers to endpoint Y. X --- msg1 ---> Y X --- msg2 ---> Y X --- msg3 ---> Y X --- msg4 ---> Y BEEP doesn't work that way, because X doesn't know when to free the resources, so you'd normally go X --- msg1 ---> Y X <-- rpy1 ---- Y X --- msg2 ---> Y X <-- rpy2 ---- Y X --- msg3 ---> Y X <-- rpy3 ---- Y X --- msg4 ---> Y X <-- rpy4 ---- Y If the RPY has no actual data in it, you could modify this slightly to go X --- msg1 ---> Y X <-- NUL ---- Y X --- msg2 ---> Y X <-- NUL ---- Y X --- msg3 ---> Y X <-- NUL ---- Y X --- msg4 ---> Y X <-- NUL ---- Y However, an even more efficient way of doing this is to go X <--- msg --- Y X ---- ans1 --> Y X ---- ans2 --> Y X ---- ans3 --> Y ... X ---- NUL --> Y That way, you don't need any acks coming back from Y at all. Of course, you eventually run out of answer numbers. (Mind, "eventually" at 2^32 is a pretty big number, depending on what each message represents.) > However, the reason I don't want to do RPYs is that (per the end-to-end > principle) I want to acknowledge things at a higher application layer, far > above BEEP, so the BEEP-level RPY is not really needed. If you want to do any sort of acks at all, they have to come back *somewhere*. The end-to-end principle doesn't mean you shouldn't do low-level acks. It means that low-level acks aren't sufficient for high-level acks. If Y never sends a frame back to X, then you're not doing end-to-end principle either. :-) > Is the > requirement to do RPYs or ANSes from BEEP spec itself, or from the > Beepcore-C implementation? It would have made sense to me to have a > message type that did not expect a reply at the BEEP level. From the spec. And no, it wouldn't really, because then you couldn't reuse message numbers and you'd eventually run out. > Anyway, the message numbering does seem to have been the issue at hand, > and I am taking care of it now. Thanks to both William and Darren for > pointing it out. Glad I could remember what that message meant. ;-) -- Darren New, San Diego CA USA (PST) I am in geosynchronous orbit, supported by a quantum photon exchange drive.... ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click