Patch

A patch is an update to the game files, and patching is the act of applying a patch. There are two types of patches for World of Warcraft: Tools patch and game patch. Both types of patches are required by the World of Warcraft servers and they will check your tools and game versions before letting you log on.

Tools patch
The tools patch updates non-game files like the Blizzard Launcher, Repair Utility and the Blizzard Downloader.

To download and apply a tools patch, the Launcher does a five step process:
 * 1) Copies self to Launcher.patch.exe
 * 2) Starts Launcher.patch.exe while closing itself
 * 3) Downloads patch
 * 4) Installs patch
 * 5) Switches over to Launcher.exe and deletes Launcher.patch.exe

Game patch
Game patches will update the main executable (wow.exe) to a specific version, and also write game data to your MPQ files. All patches after Patch 4.0.1, the patches now stream parts to your computer at a time.

To download and apply a game patch, the Launcher does a four step process:
 * 1) Downloads a new mfil and tfil (torrent/definition) file
 * 2) Starts the Blizzard Downloader in the background, Launcher listens to Blizzard Downloader messages
 * 3) Blizzard Downloader starts checking your game folder for missing and incomplete files, then starts downloading
 * 4) Calculates red/yellow/green areas based on download speeds

Red areas will disable the Play button from lighting up. Main game files like wow.exe, *.dll and such are updated at this phase. As such, you cannot start the game in the red phase or you will still be at the old version. The remainder of the red calculation will be based off of your download speed to see if you can stream the MPQ files to your computer while playing at a decent rate. If you want to disable this calculation, go to your Launcher's Options menu, click Downloader Preferences, then check Allow quick play regardless of network speed.

If you were to play the game in the yellow and green sections, the Blizzard Downloader will shut down (this is why the Play button takes so long to kick in) and then the game will stream the rest from the Blizzard servers with no Peer-to-peer activity.

Getting patches
As of Patch 4.0.1, the Launcher is the only officially sanctioned way to get patches. Alternate means are available, however, such as downloading the patch from a mirror.

Downloading
Both the Launcher and the Blizzard Downloader will use network settings found under your system's Internet Options and parts of the Internet Explorer engine. There are two big things that will prevent you from downloading:
 * 1) You've set the system up to use a proxy, or your automatic proxy settings does not agree with your network setup
 * 2) Open Internet Explorer
 * 3) Click the Tools menu. If you don't see a menu bar, hit your Alt button and the menus will pop up
 * 4) Click Internet Options
 * 5) Click the Connections tab
 * 6) Click the LAN Settings button towards the bottom of the window
 * 7) Make sure all proxy settings are correct. If you're not using a proxy, make sure nothing is set
 * 8) If the downloader does not work, try toggling the Automatically detect settings checkbox
 * 9) Internet Explorer is set to Offline Mode
 * 10) Open Internet Explorer
 * 11) Click the File menu. If you don't see a menu bar, hit your Alt button and the menus will pop up
 * 12) Make sure Work Offline is not checked

Besides the Internet Explorer and Internet Options settings, there are some other things that will prevent the patch from downloading. These are in no particular order:
 * Antivirus programs - they may block Launcher.patch.exe from being made and the Launcher will just display the Play button without downloading anything.
 * Internet Security/Firewall programs - will block the downloads. This may result in 0kb/sec downloads, You are behind a firewall message or mfil error messages. For most of the programs, adding the latest version of Launcher.exe, Launcher.patch.exe and Blizzard Downloader.exe will let them through. Some may require that the ports be added.
 * Hardware firewall settings - will block the downloads. Port 3724 is the primary download port so make sure that is open. 80 should be open by default so you don't need to edit that. It can also fall back to ports 1119, 4000, 6112-6114, 6881-6999 to increase your speed. If you're at work or at school, you may have an enhanced set of restrictions that you can't work around yourself. Contact your network administrator for more assistance

Installation
Blizzard keeps a list of error messages and how to resolve them on their Technical Support forum. http://us.battle.net/wow/en/forum/topic/933154248#3