Agateway is a piece ofnetworking hardware or software used intelecommunications networks that allows data to flow from one discrete network to another. Gateways are distinct fromrouters orswitches in that they communicate using more than one protocol to connect multiple networks[1][2] and can operate at any of the seven layers of theOSI model.
The termgateway can also loosely refer to a computer or computer program configured to perform the tasks of a gateway, such as adefault gateway orrouter, and in the case ofHTTP, gateway is also often used as a synonym forreverse proxy.[3] It can also refer to a device installed in homes that combines router and modem functionality into one device, used by ISPs, also called aresidential gateway.[4][5][6]
A network gateway provides a connection between networks and contains devices, such as protocol translators,impedance matchers, rate converters,fault isolators, orsignal translators. A network gateway requires the establishment of mutually acceptable administrative procedures between the networks using the gateway. Network gateways, known as protocol translation gateways or mapping gateways, can perform protocol conversions to connect networks with different network protocol technologies. For example, a network gateway connects an office or homeintranet to theInternet. If an office or home computer user wants to load aweb page, at least two network gateways are accessed—one to get from the office or home network to the Internet and one to get from the Internet to the computer that serves the web page.
On anInternet Protocol (IP) network, IP packets with a destination outside a givensubnetwork are sent to the network gateway. For example, if a private network has a baseIPv4 address of 192.168.1.0 and has a subnet mask of 255.255.255.0, then any data addressed to an IP address outside of 192.168.1.0–192.168.1.255 is sent to the network gateway.IPv6 networks work in a similar way. While forwarding an IP packet to another network, the gateway may performnetwork address translation.
In enterprise networks, a network gateway usually also acts as aproxy server and afirewall.[7]
On Microsoft Windows, theInternet Connection Sharing feature allows a computer to act as a gateway by offering a connection between the Internet and an internal network.[8][9]
An Internet-to-orbit gateway (I2O) connects computers or devices on the Internet to computer systems orbiting Earth, such as satellites or crewed spacecraft. Project HERMES, run by the Ecuadorian Civilian Space Agency, was first to implement this kind of gateway on June 6, 2009.[10][11] Project HERMES has a maximum coverage of 22,000 km and can transmit voice and data. TheGlobal Educational Network for Satellite Operations (GENSO) is another type of I2O gateway.
Acloud storage gateway is a network appliance orserver which translates cloud storageAPIs such asSOAP orREST to block-based storage protocols such asiSCSI,Fiber Channel or file-based interfaces such asNFS orCIFS.[12][13] Cloud storage gateways enable companies to integrate private cloud storage into applications without moving the applications into a public cloud,[14] thereby simplifying data protection.[14]
AnInternet of things (IoT) gateway provides thebridge (protocol converter) between IoT devices in the field, the cloud, and user equipment such as smartphones. The IoT gateway provides a communication link between the field and the cloud, and may provide offline services and real-time control of devices in the field.[15][16]
To achieve sustainable interoperability in the Internet of things ecosystem,[17][18] two dominant architectures for data exchange protocols are used: bus-based (DDS,REST,XMPP) and broker-based (AMQP,CoAP,MQTT,JMI). Protocols that support information exchange between interoperable domains are classified as message-centric (AMQP, MQTT,JMS, REST) or data-centric (DDS, CoAP, XMPP).[19][20] Interconnected devices communicate using lightweight protocols that don't require extensive CPU resources. C, Java, Python and some scripting languages are the preferred choices of IoT application developers.[citation needed] IoT nodes use separate IoT gateways to handle protocol conversion, database storage or decision making (e.g. collision handling), in order to supplement the low intelligence of devices.