views:

679

answers:

3

I want to know How does Adobe Stratus work? to get an idea of how to do something like it on my own. So what net hack Stratus uses to work like it works?

A: 

I'm not familiar with adobe stratus, but as far as I can tell this is very equivalent to the way normal NAT traversal works in for instance SIP. You can have a look at the STUN article on wikipedia to get started. In short, you set up one naming server and use keepalive client-initiated connections to a mediating server or UnPnP to open up ports for the clients. Situations where both clients are NAT:ed are tricky, although UnPNP would work for these situations.

EDIT: A description of the Skype protocol is available here

disown
You could also read up on how P2P apps like Skype do this, they usually use an array of hacks to get around NAT.
disown
what array of hacks for example?
Blender
added a link to an analysis of the Skype protocol. It suggests that they use a modified version of STUN and some sort of TURN.
disown
+2  A: 

Adobe calls Stratus a "rendezvous" service. The story goes like this, Version 10 onwards Flash player instances can directly connect to each other (peer-to-peer) using a proprietary protocol called RTMFP.

However for one flash app instance to connect to another, it needs the address of the flash app instance. Every flash app instance can get its own address / fingerprint / nearId by connecting to Adobe stratus. Once a client gets its own nearId, it needs to share it with other clients. Once a flash app instance has another flash app instance's nearId, it can connect and listen in to the other flash app instance stream.

Srirangan
+4  A: 

A common hack used by P2P software is a method called holepunching. This is used to bypass NAT.

When a network uses NAT, you are unable to connect to a computer within the network, from outside of the network, thus making it impossible to make P2P connections.

Say you have two computers, A and B, located in different parts of the world, both behind NAT. To establish a P2P connection A and B will connect to a Stratus server. This connection will open a port in A and B's routers. The stratus server will know these port numbers and will share this information with A and B. A and B can then make a connection to each others open ports thus establishing the P2P connection.

Decko

related questions