什么是网关
什么是网关?网关概念及类型介绍。
0x01. 网关定义
对网关的印象,来源于 Windows 网卡属性中的 IP 地址设置,但在计算机网络课程中,似乎没怎么介绍过这个概念,当然也有可能是笔者学习不够认真!
维基百科是这么定义:
网关(Gateway)是计算机网络中的一种设备或服务器,用于连接不同网络或协议之间进行数据转发和处理。
网关可以提供多种服务,例如路由、安全、负载均衡、缓存、压缩、加密、认证、授权、过滤、转码等。
工作机制:
网关的工作机制与代理非常相似,它能够接收客户端的请求,并像拥有资源的源服务器一样对请求进行处理或转发。客户端可能无法察觉到通信目标是一个网关,而不是一个源服务器。网关可以根据不同的需求,对请求和响应进行不同的处理,例如修改请求头或响应头,改变请求方法或响应状态码,增加或删除请求参数或响应内容等。网关还可以根据不同的协议,对数据进行编码或解码,例如将 HTTP 协议转换成 FTP 协议,或将 TCP 协议转换成 UDP 协议等。
应用场景:
- 家庭或小型企业网络中的网关:这种网关通常用于连接局域网和互联网,实现内外网的通信。它可以提供路由、防火墙、NAT、DHCP 等功能,保证网络的安全和稳定。
- 物联网中的智能网关:这种网关用于连接物联网设备和云端平台,实现数据的采集、处理和传输。它可以提供协议转换、数据压缩、数据分析、数据安全等功能,提高物联网系统的性能和效率。
- 语音通信中的语音网关:这种网关用于连接传统电话网络和 IP 网络,实现语音信号的转换和传输。它可以提供模拟 / 数字信号转换、编解码器选择、信令协商等功能,保证语音通信的质量和兼容性。
在家庭 Internet 接入场景下,光猫或主路由器起到了网关的作用,其中 Network Address Translation (NAT) 就是典型的网关能力。
0x02. 物联网智能网关
全屋智能解决方案中,需要使用大量的物联网设备,最常见的是智能门锁。这些物联网设备,都需要借助智能网关来进行控制,比如通过手机 App,你可以远程修改密码,或者生成一次性的临时密码。
你也许会有疑问:物联网设备不可以直接接入 Internet 吗?理论上是可以的,但这会导致物联网设备的设计过于复杂。而借助智能网关,物联网设备的设计可以进行极大的简化:
- 物联网设备通常使用蓝牙或者 Zigbee 协议进行通信,网关可以实现协议兼容或转换,充当与 Internet 通信的桥梁
- 物联网设备无需关注身份认证等安全防护机制,网关可以提供统一的身份认证和安全防护
- 物联网设备需要关注自身能耗,必须使自身处于低功耗状态,无法长时间连接 Internet,网关可以实现数据收集、聚合及传输,提升数据传输效率
- 借助网关,可以实现对大量物联网设备的统一管理和配置
可以看出,通过引入网关层,物联网设备层就得到了简化,许多功能统一放置在网关,简化了整个架构设计。
0x03. API Gateway
API Gateway 是服务于 API 的集中式网关。
无论是微服务体系下的系统架构、还是对外界提供的服务接入,面对复杂的接入环境以及服务保障的要求,都要有一层安全、过滤保护的机制,实现诸如安全认证、流量控制、日志、监控等诸多功能。
如果没有 API Gateway,每个服务中就要单独实现,诸多要求和实现逻辑会令开发者繁琐不堪,根本没有整体架构可言。
如果把这些功能统一前移某一层独立支持,实现 API Gateway as a Service,让各个服务直接接入,在管理平台上管理,可视化配置等等, 这样就实现了一个全局的视图统一管理这些功能。这就是 API Gateway。
一般情况下会要求 API Gateway 提供请求路由、服务注册、负载均衡、安全认证、弹力设计(容灾、流控、熔断)、日志等功能。
和物联网智能网关一样,微服务架构中的 API Gateway 同样也大大简化了微服务架构的设计。
美团 Shepherd API Gateway 示意图:
美团 Shepherd API Gateway 架构图: