62
SwItChboArd thEory ANd CoNCEptS
Switchboard is useful because it’s not always simple to connect two devices over the internet which are essentially
“peers”. There are two major reasons for this.
First of all, to initiate a stream to a device over the internet requires that you know its IP address. This is the number that
gets applied to the destination field of the IP packet, so internet routers can determine how best to send it along its way.
Every device that connects directly to the public internet must have one.
However, when web browsing, or sending email, this information is usually hidden from the user. In the traditional client/
server scenario, such as web browsing, a Uniform Resource Locator (URL) is used to represent the IP address of the web
page (which is decoded by a DNS server). Once a computer requests a web page from a web server, the web server
can automatically derive the reply address from the request and respond to it. So the traditional four segment decimal
address (e.g. 70.22.155.130) is completely obscured to the user.
Even if you know your IP address, it’s quite possible that address will change over time. This is because the vast majority
of internet users establish their addresses via DHCP, a protocol whereby a server (maintained by the ISP) will deliver one
of their available addresses to the client on initial connection. That address is “leased” from the server for a particular
time period. After the “lease” expires, the server is free to change it.
The commonly used Network Address Translation (NAT) router adds to the confusion, making codecs even harder to find.
Most LAN-based internet connections (as opposed to computers connected directly to ISPs) actually negotiate with a
local router containing its own DHCP server. This router assigns the LAN computer or device a “private” IP address.
We’ll cover more about the challenges of connecting codecs behind NAT routers shortly. For now, remember that one
of the problems NAT servers add is that the private IP address delivered to the codec (and the only address of which the
codec is aware) has no bearing on the public address seen from the internet.
In extreme scenarios, several layers of address locality can be stacked, assuring that the IP address assigned to your
device is several degrees removed from the public IP address used for connections. Also, each address in the stack is
temporary and able to change at any time.