A gateway is used to connect to two computers with different protocols in such a way that they can communicate with one another. This is sometimes referred to as a communication gateway. Gateways can be useful when attempting to connect computers with different operating systems and functions, but can be difficult to troubleshoot.
Some networks are set up through a router. A router can be used for computers with similar protocols, meaning that they have similar hardware and software installed. A gateway grants more flexibility for your network because it can translate information from computers with different systems. This means that several different kinds of computers can be set up on the same gateway, and the same information can be accessed from each computer.
Gateways can also be programmed to grant or deny certain users privileges. Gateways also allow for user authentication, so that a password or another form of security is necessary before a user has access to the gateway. For networks which contain sensitive information, this can be useful in ensuring that only privileged users have access to information. This kind of security is featured on most networks and is integral to prevent unwanted access.
Since a gateway must translate information from different protocols before passing it on, there may be a time delay when using gateway networks. Instant transfer is almost never possible when using gateways. A gateway may also deliver cached information, or old information that is stored by the gateway, if the cache is not cleared properly. This can lead to further time constraints when using gateways, as time must be taken to clear the cache.
A gateway follows a fairly rigid process and it therefore cannot be easily programmed. Troubleshooting a gateway can be difficult as different tools are necessary for finding problems on computers with different protocols. If a gateway fails, then communication will be lost on the network. This communication cannot be restored until the problem is located, which means going through each computer on the network and troubleshooting them individually until the problem is found.