The term gateway is applied to any device, system, or software application that can perform the function of translating data from one format to another. The key feature of a gateway is that it converts the format of the data, not the data itself.
You can use gateway functionality in many ways. For example, a router that can route data from an IPX network to an IP network is, technically, a gateway. The same can be said of a translational bridge that, as described earlier in this chapter, converts from an Ethernet network to a Token Ring network and back again.
Software gateways can be found everywhere. Many companies use an email system such as Microsoft Exchange or Novell GroupWise. These systems transmit mail internally in a certain format. When email needs to be sent across the Internet to users using a different email system, the email must be converted to another format, usually to Simple Mail Transfer Protocol (SMTP). This conversion process is performed by a software gateway.
Another good (and often used) example of a gateway involves the Systems Network Architecture (SNA) gateway, which converts the data format used on a PC to that used on an IBM mainframe or minicomputer. A system that acts as an SNA gateway sits between the client PC and the mainframe and translates requests and replies from both directions. Figure 3.15 shows how this would work in a practical implementation.
Figure 3.15 An SNA gateway.
If it seems from the text in this section that we are being vague about what a gateway is, it’s because there is no definite answer. The function of a gateway is very specific, but how the gateway functionality is implemented is not.
No matter what their use, gateways slow the flow of data and can therefore potentially become bottlenecks. The conversion from one data format to another takes time, and so the flow of data through a gateway is always slower than the flow of data without one.