? What are Metacard's UDP (datagram) Limits

Sparticus Zarris, Cross Country Communications spartics at aye.net
Mon Apr 29 23:16:01 EDT 2002


I'm trying to see what the limit is for UDP "packets" sent from Metacard using the form:

open datagram socket to <socketID>
write <myData> to socket <socketID>


Keep in mind this is for UDP packets (datagram).


I set up a sender and a listener using the MetaCard stack "chat.mc" as the shell.



Here's the problem.

I thought there would be a limit of some sort on the packet size -- probably associated with the size of Ethernet frames on my network, or a multiple of that size.

I sent 32K of data, and got it out the other end, exactly.

I then assumed there was no problem, maybe there was NO limit.

Then I wrote a simple app that assumed there was NO limit.

My simple app wouldn't work.

My simple app was sending blocks of about 64K.

I re-tested using the "chat.mc" shell.


Turns out, I can send any amount of data, any kind of data, but no more than EXACTLY 65,507 bytes.


If I sent 65,508 bytes, NO PART OF THE DATA IS SENT.  NO ERROR IS REPORTED.


WHY, is this a MetaCard limit?  I'm sure Scott will explain this away as a feature, so it would be nice to understand the rationale, and if this is identical across all platforms

What kind of a limit is 65,507 bytes.  It is NOT a power of 2.  But is sure dang close.

What does it mean.

Is it yet another flaw in MC.

Has anyone else ever run into this.  Is this a hard-and-fast limit across all platforms?

Is this this way because of some underlying API (like maybe a limit in BerkeleySockets, or some such API that Meta is using).

Or maybe that he is setting a buffer size some place, and it should be set to another value??


I am using PowerPC Macintosh on OS 9.04, and 8.5.1  and MC 2.4.1

Why can't I find this documented anywhere?

Clues?



More information about the metacard mailing list