There is a new feature in Flash Player 8 that allows auto discovery of an Edge server on your local network without actually having knowledge of the server. When the connection is created a broadcast is sent on port 67 (DHCP port) and the Edge server answers the request and the Flash Player reconnects through the edge server. The following explanation was provided by Woojin Choi.
The feature in Flash Player 8 is called FPAD if you do not want to use it you need to set NetConnection.fpadZone = -1, to avoid any side effect.
[FPAD]
Player 8 introduced UDP broadcasting capability with FMS2 release. This UDP broadcasting happens when NetConnection is trying RTMP connection. Player sends UDP packet to the network which is called FPAD (named to differentiate from WPAD). If there is FMS on the network listening, it will respond to the request with proxy information. Player will receive the response, open it, reconstruct rtmp url with proxy information and try to connect fms through this proxy server(FMS Edge server). This feature is supposed to work with FMS AutoDiscovery function in Server.xml. This AutoDiscovery allows server to listen on FPAD UDP packets in the network and respond to it.
[FPAD config in client side]
There are several configurations. They can be configured through ActionScript NetConnection object. Here is a code snippet with default value.
var nc:NetConnection = new NetConnection();
nc.fpadZone = 0; // default is 0.
nc.fpadWait = 250; // in milliseconds
nc.fpadOnly = false; // boolean. true/false
nc.fpadPort = 67; // Target port to broadcast
nc.fpadInfo.ip = edgeip; // only available if proxy is detected
nc.fpadInfo.port = edgeport; // only available if proxy is detected.
Default behavior is that player broadcasts FPAD to port 67 in the network with fpadZone=0 value. These can be modified and should be modified before NetConnection.connect() is called.
fpadZone = -1 disables this broadcasting mechanism. So if this isn't required, it must be set to '-1' before call connection.
fpadOnly=true will only detect proxy in the network and won't connect to the server.
fpadInfo object is available only when player detect the proxy in the network. You can trace it out in onStatus if proxy is available. Player reconstruct url based on this value fpadInfo.ip and fpadInfo.port. If there is a misconfigured FMS for example, this information can possibly tell you why connection is not working.
fpadPort can be changed to some other port if target FMS proxies are listening on different port other than 67.
fpadWait is timeout for detection. If player doesn't get response back within this timeout from any FMS in the network, it will connect to FMS directly in nc.connect() information. For example, even if there is a FMS to listen on and it is slow to respond, player will still have a chance to connect directly FMS Origin.
[FPAD in server side]
FMS need to be configured to work with FPAD packet. It is called AutoDiscovery function. This only makes sense for FMS Edge server because FMS Edge can redirect the call, but Origin won't redirect it. If this is turned on in Origin server, client won't be able to establish connection.
Server.xml -> AutoDiscovery -> Enable : true // enable autodiscovery
Server.xml -> AutoDiscovery -> ProxyInfo : edgeserverip:port // ip:port for player will use to connect through. It is ip of Edge server and port edge server is listening for RTMP connection, which is 1935 as usual.
Vhost.xml -> Proxy -> Mode : remote // enable server as Edge server
Server.xml -> AutoDiscovery -> AllowZone : 0 // default allowZone is 0
Server.xml -> AutoDiscovery -> MyZone : 0 // default MyZone is 0
Server.xml -> AutoDiscovery -> BindInfo : :67 // 67 is default port FMS is listening, which is a well known port for DHCP
This Zone information is very important for Edge server clustering. For now, it can be tweaked for client UDP broadcasting. It can be changed to any number for MyZone. For example, if MyZone is 8 and AllowZone is 8, it would allow only flash clients to broadcast to fpadZone=8. Default flash clients(fpadZone=0) won't be able to go through this FMS Edge server.
FMS Edge server config has many benefits. One is to get better performance by distributing load from origin to edge servers. Second is to save bw for internet from intranet by caching data in Edge server. Third can help an organization to get around web proxy config when they can deploy FMS Edge in the network. FPAD is useful when FMS Edge is launched in the network and clients can work seamlessly without knowing it.
Thanks Woojin for this posting.
compared with Flash Media Server, i prefer Flash Player 8! http://www.yaodownload.com/video_t/videoplayer/quickflashplayer/
So where, on the computer, do I make the changes needed to disable this? Ie, where do I find the "FPAD config in client side" so that I can set "NetConnection.fpadZone = -1" and stop the flash player from spamming my dhcp server with DHCPINFORM requests? Is it in a file? A registry entry? What?
Thanks!
Hello!
I've seen some packets of these DHCP-Broadcasts. Our problem is, that we use PXE and the DHCP broadcasts must reach this machine (via relay). This DHCP-Packages brings the PXE-Server down! Without any further messages the pxe-deamon is gone.
Obviously the PXE-Server (RedHat 0.1-36) is not perfectly written for fault tolerance, so that one false bit could bring him down.
What else can we do, that this cannot happen? Is there any registry key to change for it?
Thanks for these pages!
Unfortunately, no registry key to modify. It's application level. It's better to contact the app provider to fix the behavior of NetConnection by adding this.