Firewall software controls connections between an internal computer network and external networks by filtering packet and application data. Firewalls can operate at different layers, with packet filters at the network and transport layers, circuit gateways at the transport layer, and application gateways at the application layer. The FTP protocol is used to transfer files between a client and server over a network, and is commonly used to upload web pages and files to a server or download files from an FTP server. Routers interconnect different networks and exchange IP packets between networks at the network layer, while also providing additional functions.