Difference between revisions of "Circuit"
Cube Linden (talk | contribs) |
Cube Linden (talk | contribs) |
||
Line 1: | Line 1: | ||
==Circuit Definitions== | ==Circuit Definitions== | ||
A circuit is a two way connection between two nodes, be they the viewer and the simulator, two simulators, or the simulator and a utility server. Two kinds of circuits exist, trusted and untrusted | A circuit is a two-way UDP connection between two nodes, be they the viewer and the simulator, two simulators, or the simulator and a utility server. Circuits are built with no custom session management, so endpoint processes can and do sometimes disappear and restart. Due to this fact, it cannot be accurately predicted if one node trusts another since it may have restarted since it was last contacted. | ||
Two kinds of circuits exist, trusted and untrusted. | |||
===Untrusted Circuits=== | ===Untrusted Circuits=== | ||
All circuits begin as untrusted circuits, and all viewer to simulator connections are made through untrusted circuits. In the message template, messages are flagged as either trusted or untrusted. Any trusted packet going over an untrusted circuit will be discarded by the receiving node. | |||
===Trusted Circuits=== | ===Trusted Circuits=== | ||
Trusted circuits only exist between simulators themselves and/or utility servers (The Userserver, Dataserver, or Spaceserver). These circuits are established in response to the DenyTrustedCircuit message, using the CreateTrustedCircuit message. | |||
==Circuit Establishment== | ==Circuit Establishment== | ||
As all circuits are handled by the Message System, a circuit is established by calling LLMessageSystem::enableCircuit. If a circuit has not already been established, this function is in charge of creating one. While establishment of trust is also a parameter in circuit creation here, a trusted circuit will not be created unless the CreateTrustedCircuit message is sent using the correct handshake protocol. | |||
==Circuit Lifetime== | ==Circuit Lifetime== |
Revision as of 14:21, 17 November 2006
Circuit Definitions
A circuit is a two-way UDP connection between two nodes, be they the viewer and the simulator, two simulators, or the simulator and a utility server. Circuits are built with no custom session management, so endpoint processes can and do sometimes disappear and restart. Due to this fact, it cannot be accurately predicted if one node trusts another since it may have restarted since it was last contacted.
Two kinds of circuits exist, trusted and untrusted.
Untrusted Circuits
All circuits begin as untrusted circuits, and all viewer to simulator connections are made through untrusted circuits. In the message template, messages are flagged as either trusted or untrusted. Any trusted packet going over an untrusted circuit will be discarded by the receiving node.
Trusted Circuits
Trusted circuits only exist between simulators themselves and/or utility servers (The Userserver, Dataserver, or Spaceserver). These circuits are established in response to the DenyTrustedCircuit message, using the CreateTrustedCircuit message.
Circuit Establishment
As all circuits are handled by the Message System, a circuit is established by calling LLMessageSystem::enableCircuit. If a circuit has not already been established, this function is in charge of creating one. While establishment of trust is also a parameter in circuit creation here, a trusted circuit will not be created unless the CreateTrustedCircuit message is sent using the correct handshake protocol.