Unnecessary Frame Fragmentation using beepcore-c?

David C Niemi <[email protected]> Wed, 10 Sep 2003 12:55:47 -0400 (EDT)
Newsgroups gmane.network.beep.beepcore.c.general
Message-ID <Pine.LNX.4.44.0309101248230.1016-100000@harappa.oldtrail.reston.va.us>
I have an application that sends potentially large files using beepcore-c.  
It sometimes manages to send them in CHUNKSIZE (4K) frames, but other 
times it sends 4K frames and when they get to the other side they are 
badly fragmented.  This seems rather inefficient and at times downright 
inconvenient; I'd like to be able to count on at least very small frames 
making it intact.

I am using the latest CVS version.

Does anyone know where or why this fragmentation would be introduced, and 
whether it might be remedied somehow?  Here is an example of what is 
happening:

Sender:
Calling send_chunk for 4096 bytes, final=0, msgno=5.
Calling send_chunk for 4096 bytes, final=0, msgno=5.
...
Calling send_chunk for 4096 bytes, final=0, msgno=5.
Calling send_chunk for 3977 bytes, final=1, msgno=5.

Receiver:
SEND frame_available: type=M number=5 answer=-1 more=* size=2788
SEND frame_available: type=M number=5 answer=-1 more=* size=1136
SEND frame_available: type=M number=5 answer=-1 more=* size=172
SEND frame_available: type=M number=5 answer=-1 more=* size=2616
SEND frame_available: type=M number=5 answer=-1 more=* size=1136
SEND frame_available: type=M number=5 answer=-1 more=* size=344
SEND frame_available: type=M number=5 answer=-1 more=* size=2444
SEND frame_available: type=M number=5 answer=-1 more=* size=1136
SEND frame_available: type=M number=5 answer=-1 more=* size=516
...
SEND frame_available: type=M number=5 answer=-1 more=* size=528
SEND frame_available: type=M number=5 answer=-1 more=* size=3568
SEND frame_available: type=M number=5 answer=-1 more=* size=528
SEND frame_available: type=M number=5 answer=-1 more=* size=3568
SEND frame_available: type=M number=5 answer=-1 more=* size=528
SEND frame_available: type=M number=5 answer=-1 more=* size=3568
SEND frame_available: type=M number=5 answer=-1 more=* size=528
SEND frame_available: type=M number=5 answer=-1 more=. size=3449

It seems almost as though the frame sizes are random, although it does 
settle into a rhythm of 3568 + 528 byte frames about halfway through a 1 
MB file.  The entire file does always make it intact, eventually.

-------------------------------------------------------
-- David C. Niemi           Adeptech Systems, Inc.   --
-- Reston, Virginia, USA    http://www.adeptech.com/ --
-------------------------------------------------------



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf