FreeCast Network Architecture


FreeCast Network

In a FreeCast Network, the stream transits via one or more Nodes. Each Node can receive, use (play) and send Packets. All the nodes of a same FreeCast network register themself to the same Tracker.

The Root Node creates the FreeCast stream (a sequence of Packets) from:

  • a classic Ogg stream, see Shoutcast Receiver
  • directly from Ogg files (mainly for test purpose), see Playlist Receiver

A FreeCast Network is hierarchal. All nodes are not equivalent. The Root Node has a Node Order of 0. Nodes which receives directly stream data from the Root Node have an order of 1. Nodes which follow have an order of 2, etc … It represents the count of Nodes throught the stream data transits.

A fine Order Management allows to avoid any loop at a FreeCast Network. In normal condition, a Node can't connect to another Node which has a lower Node Order.

Nodes communicate using UDP transport.


The Tracker has an overview of the network. A FreeCast Node can only participates to a FreeCast Network after being registered into the Tracker of this network. All nodes of the network send periodically information to the Tracker. Nodes communicate with the Tracker via http requests.


The Tracker attributes to each registring Node an unique Node Identifier. If needed, it determines the Peer Reference of the Node, this information is used to contact the Node. Over Internet, this Peer Reference is the ip address and the listen port of the Node.

Node Status refreshing

Periodically (about 30 seconds) each node send its current Node Status to the Tracker. It allows to the Tracker to maintain an uptodate overview of the FreeCast NetworK.

Nodes which doesn't send their status since few minutes are supposed to be lost.

Retrieve Peer References

Nodes use the Tracker to obtain the Peer References of other Nodes.

freecast/network_architecture.txt · Last modified: 2009/04/20 14:55 by
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Run by Debian Driven by DokuWiki