![]() | ![]() |
The advantage of using them instead of simply distributing audio or video files is twofold. First, if a web browser encounters an audio or video file, it needs to download the entire file before playing it. This can mean a long and extremely boring wait if the file is eventually going to play for more than a few seconds. Few people are willing to hang around watching a transfer progress meter move for 20 minutes in order to watch a 10-second movie. Second, because the files are downloaded, users are not only able to make their own copies, they're encouraged to do so; once they've waited the 20 minutes, they're certainly not going to delete the local copy of the file! If you want to keep track of who's watching the file when, and you don't want copies of it floating around, this is extremely undesirable.
Protocols for distributing audio and video tend to based on UDP because people are more tolerant of having small amounts of data lost than of having pauses. With TCP, if a packet is lost, there will be a wait for retransmission, which is much more annoying than just going on to the next packet. Audio and video protocols also tend to use multiple ports in order to maximize efficiency. Because of these characteristics, these protocols tend to be difficult to support through firewalls.
Direction | Source Addr. | Dest. Addr. | Protocol | Source Port | Dest. Port | ACK Set | Notes |
---|---|---|---|---|---|---|---|
In | Ext | Int | TCP | >1023 | 7070 |
[50]
|
Request, external client to internal server |
Out | Int | Ext | TCP | 7070 | >1023 | Yes | Response session control, internal server to external client |
Out | Int | Ext | UDP |
6970-7170[51]
|
>1023 |
[52]
|
Response data, internal server to external client |
Out | Int | Ext | TCP | >1023 | 7070 | [50] | Request, internal client to external server |
In | Ext | Int | TCP | 7070 | >1023 | Yes | Response session control, external server to internal client |
In | Ext | Int | UDP | 6970-7170[51] | >1023 | [52] | Response data, external server to internal client |
[50]ACK is not set on the first packet of this type (establishing connection) but will be set on the rest.
[51]The client may select a specific port number in this range or may allow the server to choose any port in the range; if the latter, multiple ports may be used for the same session.
[52]UDP has no ACK equivalent.