Register for your free account! | Forgot your password?

You last visited: Today at 16:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Packet 600D

Discussion on Packet 600D within the SRO Coding Corner forum part of the Silkroad Online category.

Reply
 
Old   #1
 
CrystalCoder's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 1,105
Received Thanks: 226
Packet 600D

hello guys

i want to understand how opcode 600D work
i dont know lot on 600D so i be glad if you can help me with my question
CrystalCoder is offline  
Old 10/24/2014, 15:29   #2
 
LastThief*'s Avatar
 
elite*gold: 60
Join Date: Feb 2012
Posts: 3,942
Received Thanks: 6,475
Packet : 0x600D
Encrypted : No
Massive : No

byte flag //1 = data, 0 = header
if(flag == 1)
{
ushort count
ushort command id
}
else if(flag == 0)
{
byte[] data
}
LastThief* is offline  
Thanks
1 User
Old 10/24/2014, 18:41   #3
 
elite*gold: 0
Join Date: Jan 2009
Posts: 312
Received Thanks: 667
If you take a look closer to the structure 0x600D has, you'll notice that you need to send two of these packets.
The first declares the packet's you're massively sending/receiving while the second contains the data for those.
The packets within the massive collection can not be encrypted.

But what's the point of using massive packets?
- Less security handling per packet (because 0x600D holds the SecurityCount/SecurityCRC in it's header)
- Less packets between servers.

The 0x600D is used a lot for internal server communication. A good example are the Customer Administration System (CAS) packets. These packets have to travel a long way though the internal communication. From the ServiceManager (SMC) all the way to the SR_Client.
The route they take looks like this: ServiceManager -> GlobalManager -> FarmManager -> AgentServer -> SR_Client
Because all these servers communicate with the "STP (Silkroad Transport Protocol)", they all enforce security every time a packet is received/send. Using massive packets reduces the amount of encryption/decryption between the servers and the overall server load.

tl;dr
If you're using the SilkroadSecurityApi, these packets don't bother you much when working with the usual client related stuff, there are only a few massive packets in the Server/Client communication.

Properly formatted version:
Code:
        //Command: 0x600D
        //Name: GLOBAL_SERVER_MASSIVE
        //Description:
        //Encryption: false
        //Massive: false
        public const ushort SERVER_GLOBAL_MASSIVE = 0x600D;
        //  1   byte    Flag [0x00 = Data, 0x01 = Header]
        //  if(Flag == 0x01)
        //  {
        //      2   ushort  Count
        //      2   ushort  CommandID
        //  }
        //  else if(Flag == 0x00)
        //  {
        //      *   byte[]  Data
        //  }
Parsing process in SecurityManager.cs (SilkroadSecurityApi by Drew Benton):
Code:
        // Auto process massive messages for the user
        if (command_opcode == 0x600D)
        {
            byte mode = command_data.ReadByte();
            if (mode == 1)
            {
                m_massive_count = command_data.ReadUInt16();
                ushort contained_command_opcode = command_data.ReadUInt16();
                m_massive_command = new NetPacket(contained_command_opcode, command_encrypted, true);
            }
            else
            {
                if (m_massive_command == null)
                {
                    throw (new SecurityException("SecurityManager::Recv->A malformed 0x600D command was received."));
                }
                m_massive_command.WriteByteArray(command_data.ReadBytes(command_size - 1));
                m_massive_count--;
                if (m_massive_count == 0)
                {
                    m_massive_command.Lock();
                    m_incoming_commands.Add(m_massive_command);
                    m_massive_command = null;
                }
            }
        }
DaxterSoul is offline  
Thanks
5 Users
Reply


Similar Threads Similar Threads
Verkauft jemand eine Canon 700d bzw 600d
07/26/2014 - Trading - 4 Replies
Hey Leute suche eine Canon 700D bzw eine Canon 600D für Videos. Meldet euch Preis sollte unter 300 sein
[S] Canon EOS 600D
12/11/2013 - Trading - 0 Replies
Salut, Ich suche eine Canon EOS 600D. Natürlich neuwertig ( und nicht versifft :D ) Meldet euch bitte auf Skype. Bieten tue ich Real-Geld :) Skype: raschedalam Mit freundlichen Grüßen
[B] Canon Eos 600D [S] PSC (AUKTION)
12/08/2011 - Trading - 0 Replies
hallo, ich biete meine Canon Eos 600D mit 32 GB class 10 SD card und einem Objektiv( Canon 18-55mm) suche dafür PSC Startgebot sind 150 PSC Auktion endet am 12.12.11 um 20 uhr abends



All times are GMT +1. The time now is 16:48.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.