Created
April 28, 2014 21:54
-
-
Save rpavlik/11385172 to your computer and use it in GitHub Desktop.
Deduced message sequence for setting up VRPN connections
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
msc { | |
hscale = "2"; | |
a [label="Server"], b [label="Client (UDP Capable)"], c [label="Client (TCP Only)"]; | |
# A little vertical space | |
|||; | |
a box a [label="Listen on TCP port 3883", linecolor="red"]; | |
a box a [label="Bind to UDP port 3883", linecolor="orange"]; | |
...; | |
|||; | |
# Start of client trying to connect. | |
--- [label="Client starts trying to connect to server, with UDP permitted"]; | |
b box b [label="Start listening on arbitrary TCP port X\nvrpn_get_a_TCP_socket", linecolor="blue"]; | |
b->a [label="Send 'clientip X' to UDP 3883", linecolor="orange"]; | |
a->b [label="Connect to clientip X over TCP", linecolor="blue"]; | |
b->a [label="Send client VRPN magic cookie over TCP", linecolor="blue"]; | |
a->b [label="Send server VRPN magic cookie over TCP", linecolor="blue"]; | |
b box b [label="Bind to arbitrary UDP port Y\nvrpn_Endpoint_IP::finish_new_connection_setup", linecolor="purple"]; | |
b->a [label="Send 'clientip Y' over TCP for low-latency connection request\nvrpn_Endpoint_IP::pack_udp_description", linecolor="blue"]; | |
b->a [label="Send type/sender descriptions", linecolor="blue"]; | |
b rbox b [label="status: connected"]; | |
a->b [label="Lossy, low latency (tracker) messages now sent over UDP", linecolor="purple"]; | |
...; | |
|||; | |
# Start of client trying to connect. | |
--- [label="Client starts trying to connect to server with TCP-only"]; | |
c->a [label="Connect to server over TCP", linecolor="red"]; | |
a box a [label="Accepts connection and notes that endpoint is TCP-only."]; | |
a->c [label="Send client VRPN magic cookie over TCP", linecolor="red"]; | |
c->a [label="Send server VRPN magic cookie over TCP", linecolor="red"]; | |
c rbox c [label="status: connected"]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment