The signature for our protocol is probably not super-easy to detect. The first UDP packet will always be a UseCircuitCode from the viewer to the simulator. The viewer usually binds to an ephemeral port. The simulators are always bound to either 12035 or 1300 to 1350.

Sadly, those funny numbers are close to written in stone.

It possible that we could fix the packet id for UseCircuitCode so that finding that packet in an outgoing stream would be easier.



On 2006 Oct 12, at 09:27, Jesse Nesbitt wrote:
SL's not set up as a totaly traditional client-server system. LL hosts
the Simulator, a server that hosts the Region that you're in and all
its objects. The Viewer is the client that you use to access Second
Life, be it the original or libsl-based.

As far as I can tell (and from what some Linden told me [It might have
been Pheonix]), the client starts sending packets to the server on
that port range, trying to "bust through" NAT and firewalls by making
the server traffic act like a response.

On 10/12/06, Donna Dionne <[EMAIL PROTECTED]> wrote:

HI!

Thanks so much for the reply!

I am a bit confused about the terminology used here.

Can you correct me about my understanding below?

viewer = client
simulator = server
viewer = game site ?
simulator = subscriber/user site?
1st packet is from client to server
server typcially use these fixed ports: 12035, 12036, 13000-13050?
any port requirement on the client side?

We are studying the second life protocol as a list of protocols which we are
trying to recongize.

Thanks so much for your help!

Donna



John Hurliman <[EMAIL PROTECTED]> wrote:
Donna Dionne wrote:
> HI!
>
> From some captures we have, it looks like the 1st packet from the
> server to client has the following header
> 40 00 00 01 FF FF 00 03 and the total size of the packet (header and
> payload) is 44.
>
> This seems to indicate this is a UseCircuitCode packet, with the
> following fields (in order)
> ID (16 bytes)
> SessionID (16 bytes)
> Code (4 bytes)
>
> There is then an ack packet going from the client to the server
> 00 00 00 01 FF FF FF FB 01 00 00 00 01
> the ack is of size 13
>
> Can I assume that these are the characteristic of the second life
> protocol communication in all cases?
>
> Thanks so much!
> Sincerely,
> Donna
>
>
--------------------------------------------------------------------- ---

You have both of those packets correct; the viewer (client) first opens a connection to the sim by sending a UseCircuitCode and waiting for an
ACK. Note that it's possible for the order of the message_template
packets to change around in a future release, which would change the
packet id numbers of packets. So you can't always assume that low id 3 is UseCircuitCode, you have to decode the message_template each time. In the latest libsecondlife code we're working on, the message template is
converted in to C# classes (about 100,000 lines of code), and new
classes are generated every time a message_template.msg is released.

John


Attachment: PGP.sig
Description: This is a digitally signed message part

_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev
http://www.libsecondlife.org/

Reply via email to