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
    }