Difference between revisions of "Talk:Core Protocol"
From ASSS Wiki
(→Packets can be nested(?): another reason) |
Doc flabby (talk | contribs) (not all packets can be nested) |
||
Line 23: | Line 23: | ||
[[User:Smong|Smong]] 13:18, October 13, 2007 (PDT) says: | [[User:Smong|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. | :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. | ||
+ | |||
+ | --[[User:Doc flabby|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! |
Revision as of 09:23, 14 October 2007
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: http://wiki.minegoboom.com/index.php?title=Core_protocol&oldid=5804
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!