DO Packet Format - zeroKilo/GROBackendWV GitHub Wiki
DO Packet Format
These packets are contained in the DATA QPackets for dedicated game server. It's used to send client network interface data and manage session.
Decoding / Encoding
Example: 8D 00 00 00 14 02 00 00 00 32 00 70 72 75 64 70 ...
-
8D 00 00 00
the size of the remaining bytes (excluding the checksum) -
14
id of a called method:public enum METHOD { JoinRequest = 0x0, JoinResponse = 0x1, Update = 0x2, Delete = 0x4, Action = 0x5, CallOutcome = 0x8, RMCCall = 0xA, RMCResponse = 0xB, FetchRequest = 0xD, Bundle = 0xF, Migration = 0x11, CreateDuplicate = 0x12, CreateAndPromoteDuplicate = 0x13, GetParticipantsRequest = 0x14, GetParticipantsResponse = 0x15, NotHandledProtocol = 0xFE, EOS = 0xFF }
-
02 00 00 00
the number of urls sent -
32 00
next string's length -
70 72 75 64 70
beginning of a PRUDP URL string -
method 0x14 sends a list of prudp urls, so more size+string pairs can be appended
-
1-byte checksum at the end
Example Packet Exchange (with DS connection)
2020-05-06 18:21:41 : [05][UDP Dedicated Server] received : UDPPacket { SYN ( WS )}
2020-05-06 18:21:41 : [10][UDP Dedicated Server] received : 11 11 60 00 00 00 00 00 00 00 00 00 00 00 00 00 82
2020-05-06 18:21:41 : [10][UDP Dedicated Server] received : UDPPacket {
From : VPort[port=01 type=DO]
To : VPort[port=01 type=DO]
Flags : [FLAG_NEED_ACK][FLAG_HAS_SIZE]
Type : SYN
Session ID : 0x00
Signature : 0x00000000
Sequence ID : 0x0000
Conn. Sig. : 0x00000000
Payload Size : 0x0000
PayLoad :
Checksum : 0x82
}
2020-05-06 18:21:41 : [05][UDP Dedicated Server] send : UDPPacket { SYN ( A )}
2020-05-06 18:21:41 : [10][UDP Dedicated Server] send : 11 11 08 00 00 00 00 00 00 00 78 56 34 12 3E
2020-05-06 18:21:41 : [10][UDP Dedicated Server] send : UDPPacket {
From : VPort[port=01 type=DO]
To : VPort[port=01 type=DO]
Flags : [FLAG_ACK]
Type : SYN
Session ID : 0x00
Signature : 0x00000000
Sequence ID : 0x0000
Conn. Sig. : 0x12345678
PayLoad :
Checksum : 0x3E
}
2020-05-06 18:21:41 : [05][UDP Dedicated Server] received : UDPPacket { CONNECT ( R WS )}
2020-05-06 18:21:41 : [10][UDP Dedicated Server] received : 11 11 71 CB 78 56 34 12 01 00 01 00 28 7F 0C 00 02 78 9C E3 60 40 00 00 00 6C 00 09 39
2020-05-06 18:21:41 : [10][UDP Dedicated Server] received : UDPPacket {
From : VPort[port=01 type=DO]
To : VPort[port=01 type=DO]
Flags : [FLAG_RELIABLE][FLAG_NEED_ACK][FLAG_HAS_SIZE]
Type : CONNECT
Session ID : 0xCB
Signature : 0x12345678
Sequence ID : 0x0001
Conn. Sig. : 0x7F280001
Payload Size : 0x000C
PayLoad : 08 00 00 00 00 00 00 00 00 00 00 00
Checksum : 0x39
}
2020-05-06 18:21:41 : [05][UDP Dedicated Server] send : UDPPacket { CONNECT ( A )}
2020-05-06 18:21:41 : [10][UDP Dedicated Server] send : 11 11 09 CB 01 00 28 7F 01 00 78 56 34 12 B3
2020-05-06 18:21:42 : [10][UDP Dedicated Server] send : UDPPacket {
From : VPort[port=01 type=DO]
To : VPort[port=01 type=DO]
Flags : [FLAG_ACK]
Type : CONNECT
Session ID : 0xCB
Signature : 0x7F280001
Sequence ID : 0x0001
Conn. Sig. : 0x12345678
PayLoad :
Checksum : 0xB3
}
2020-05-06 18:21:42 : [05][UDP Dedicated Server] received : UDPPacket { DATA ( R WS )}
2020-05-06 18:21:42 : [10][UDP Dedicated Server] received : 11 11 72 CB 78 56 34 12 02 00 00 8D 00 03 78 9C 93 67 64 60 10 61 65 60 60 D0 67 28 28 2A 4D 29 B0 D2 4F 4C 49 29 4A 2D 2E B6 35 B4 34 D2 33 34 B3 D0 33 D4 33 B3 B0 2E C8 2F 2A B1 35 36 30 37 B1 0E 0A 73 F6 74 B1 35 B7 60 D0 C3 A5 01 A8 05 9B 7A 03 9C 16 58 18 61 D7 61 88 4B 87 A9 99 9E A1 01 56 2D 41 10 2D C5 48 7A 8C CC F5 0C 80 10 59 39 48 B1 A1 75 00 90 34 31 33 33 B0 2E CE 4C 01 72 8B 4B 8A 52 13 73 6D 8D AD 4B 2A 0B 52 6D 8D 10 66 26 00 00 C3 28 50 86 06
2020-05-06 18:21:42 : [10][UDP Dedicated Server] received : UDPPacket {
From : VPort[port=01 type=DO]
To : VPort[port=01 type=DO]
Flags : [FLAG_RELIABLE][FLAG_NEED_ACK][FLAG_HAS_SIZE]
Type : DATA
Session ID : 0xCB
Signature : 0x12345678
Sequence ID : 0x0002
Part Number : 0x00
Payload Size : 0x0124
PayLoad : 1F 01 00 00 14 05 00 00 00 2F 00 70 72 75 64 70 3A 2F 61 64 64 72 65 73 73 3D 31 39 32 2E 31 36 38 2E 31 2E 36 38 3B 70 6F 72 74 3D 33 30 37 34 3B 52 56 43 49 44 3D 37 38 00 2E 00 70 72 75 64 70 3A 2F 61 64 64 72 65 73 73 3D 31 39 32 2E 31 36 38 2E 38 2E 31 3B 70 6F 72 74 3D 33 30 37 34 3B 52 56 43 49 44 3D 37 38 00 30 00 70 72 75 64 70 3A 2F 61 64 64 72 65 73 73 3D 31 39 32 2E 31 36 38 2E 31 38 32 2E 31 3B 70 6F 72 74 3D 33 30 37 34 3B 52 56 43 49 44 3D 37 38 00 31 00 70 72 75 64 70 3A 2F 61 64 64 72 65 73 73 3D 31 39 32 2E 31 36 38 2E 35 36 2E 31 30 31 3B 70 6F 72 74 3D 33 30 37 34 3B 52 56 43 49 44 3D 37 38 00 52 00 70 72 75 64 70 73 3A 2F 61 64 64 72 65 73 73 3D 31 32 37 2E 30 2E 30 2E 31 3B 70 6F 72 74 3D 33 30 37 34 3B 43 49 44 3D 31 3B 50 49 44 3D 34 36 36 30 3B 73 69 64 3D 31 3B 73 74 72 65 61 6D 3D 33 3B 74 79 70 65 3D 32 3B 52 56 43 49 44 3D 37 38 00 60
Checksum : 0x06
}