Talk:Core Protocol

From ASSS Wiki
Revision as of 09:23, 14 October 2007 by Doc flabby (talk | contribs) (not all packets can be nested)
Jump to: navigation, search

Note on 0x0a00 packet

I think when asss sends these the total size of each packet is 480 bytes, with the last packet in the stream being the remainder (read: less than 480 bytes).

correct BaK 06:34, Jan 12, 2007 (PST)

Note on login response

sending back the original key without change means no encryption, both to 1.34 and continuum

Packets can be nested(?)


Revision By: Doc Flabby

Smong 13:11, October 13, 2007 (PDT) says:

I'm not sure on this, I think at one point I decided only 00 03 (reliable) and 00 0e (clustered) packets are allowed to contain other core packets. Or put another way, the fragmented packets (small and large streams) cannot contain another core packet. This is important when it comes to implementing a core protocol stack.
An implementation could use a packet object which contains a 520 byte buffer, you could have these packet objects allocated statically or from a resizable pool. If this method is used it is impossible to pass a packet larger than 520 bytes through the core protocol stack without some ugly special case code.
Also since you can only have one small and one large stream at a time you do not need to keep a list of streams. You only need 2 static variables, one for each type of stream (most likely a struct containing a pointer to a dynamically allocated buffer).
Finally ASSS does not expect a core packet to be inside a fragmented packet (it will just ignore it by default).

Smong 13:18, October 13, 2007 (PDT) says:

Additionally I think this phrase already in the page "There is support for reliable ordered packets, large packets and cluster packets" covers the "Packets can be nested (They are usually processed recursively)" phrase. The original intention of the bullet points was for important specifications that would look awkward written as a complete sentence.

--Doc flabby 06:23, October 14, 2007 (PDT) says

I wasn't sure which packets could be nested, but I thought it worth meantioning as It was something that is non-obvious and took me quite a time to find out!