Zandronum Chat on our Discord Server Get the latest version: 3.2
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002288Zandronum[All Projects] Suggestionpublic2015-06-07 21:342016-04-10 19:18
ReporterWatermelon 
Assigned To 
PriorityhighSeverityfeatureReproducibilityalways
StatusconfirmedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0002288: Packet header
DescriptionTo use LZ4 we'll need a packet header.

Depending on how well this goes, maybe it can even be used for clients? I don't know if we would want to bother having reliable transmission for client pukes (or if we care).
Attached Files

- Relationships

-  Notes
User avatar (0012589)
Watermelon (developer)
2015-06-07 21:34

From previous meetings, was there any discussion on the general protocol/idea behind how this would be done?
User avatar (0012590)
Dusk (developer)
2015-06-08 05:57

The point of the packet header was so that it would be protocol-agnostic. Every packet Zandronum would ever use would contain this header, which would detail which protocol it is for and how it is compressed.
User avatar (0012593)
Watermelon (developer)
2015-06-08 14:45
edited on: 2015-06-08 14:50

Throwing out some stuff:

Header:

[0x01] Type:
    - (0) Reliable
    - (1) Unreliable

[0x02] Compression:
    - (0) LZ4
    - (1) Huffman
    * May not actually be needed right now

[remaining 6 bits unused (for now)]


I figure we need Huffman coding since the unreliable stream would mess up LZ4, therefore meaning all unreliable code from server <-> client needs it.

* The reason I said this may not be needed now is that if LZ4 works, then the reliable channel should always be LZ4, and the unreliable channel will always have to be Huffman.




Body:

Reliable:
    - Sequence number
    - Payload of headers + data

Unreliable:
    - Payload of headers + data


User avatar (0012600)
Torr Samaho (administrator)
2015-06-08 17:52

Here is what I said earlier regarding the header in 0001268:0012193, i.e.
Quote from Torr Samaho

Mandatory contents of the header are the compression type and the packet number (to keep track of lost packets). How exactly they are encoded and if additional things are needed is up for discussion.
User avatar (0012601)
Watermelon (developer)
2015-06-08 18:18
edited on: 2015-06-08 18:53

I'm assuming then this is only for the reliable stream, and the unreliable stream will be handled as it currently is?

If that's the case, the first 2-3 bits of the first byte could be different kind of compression (in case we find any new ones in the future, but I'm guessing we won't keep finding new ones every year), then the sequence number comes after that.

I currently can't think of anything else that would be needed in the header.


I figure if we ever decide in the future for something we need to add, the residual bits in the first byte can be used at a later date. Therefore if nothing is to be added, the unused bits should be set to 0 always for now.


Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: AlienOverlord
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2015-06-07 21:34 Watermelon New Issue
2015-06-07 21:34 Watermelon Status new => needs review
2015-06-07 21:34 Watermelon Note Added: 0012589
2015-06-07 21:52 Edward-san Status needs review => confirmed
2015-06-08 05:57 Dusk Note Added: 0012590
2015-06-08 14:45 Watermelon Note Added: 0012593
2015-06-08 14:48 Watermelon Note Edited: 0012593 View Revisions
2015-06-08 14:49 Watermelon Note Edited: 0012593 View Revisions
2015-06-08 14:50 Watermelon Note Edited: 0012593 View Revisions
2015-06-08 17:52 Torr Samaho Note Added: 0012600
2015-06-08 18:18 Watermelon Note Added: 0012601
2015-06-08 18:53 Watermelon Note Edited: 0012601 View Revisions
2016-04-10 19:18 Torr Samaho Product Version 3.0 =>
2016-04-10 19:18 Torr Samaho Target Version 3.0 =>






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2025 MantisBT Team
Powered by Mantis Bugtracker