1. 为什么要网关?
①. 网络架构中,网关是一个核心:
a. 作为接入层,承载了流量转发、负载均衡、服务限流、熔断降级等功能.
(1). 限流:请求QPS限制
(2). 熔断:错误率达阈值则服务熔断
(3). 降级:确保核心业务可用
(4). 权限认证:请求拦截
②. 处理高可用、高并发:
a. 中台服务,如es或redis要覆盖多个业务线.需要做各种的流量统计、权限校验.
③. 大多数网关是与nginx相关.
④. 借助go本身的高并发的优势,适合开发自定义网关.
2. 网关的功能:
①. 支持多种协议代理:
tcp、http、websocket、grpc
②. 支持多种负载均衡策略:
轮询、权重轮询、hash一致性
③. 支持下游服务发现:
a. 主动探测
b. 自动服务发现
④. 支持横向扩容:
加机器就能解决高并发
1. OSI七层网络协议:
①. OSI参考模型:
a. 是为了使网络应用更加普及,用来建议所有的公司使用这个规范来控制网络,可以达到互接的效果.
b. OSI是理论下的模型
②. TCP/IP参考模型:
a. OSI定义7层框架,TCP借鉴了OSI参考模型,建立了TCP/IP的参考模型.
b. TCP/IP是被更广泛使用的互联网标准
③. OSI和TCP/IP:
a. OSI是先有OSI模型,再有协议 => 先有标准,后有实战
b. TCP/IP刚好相反,先有协议,再有模型(参考了OSI模型提出的).
④. 协议:
a. TCP协议的子协议对应提http、http2.
b. UDP协议的子协议对应的是FTP、DNS.
2. TCP数据包:
①. 以太网标头:
a. 主要标注对方mac地址信息.
②. IP标头:
a. 对方IP信息
③. TCP标头:
a. TCP传输的类型和数据包的长度
④. 应用层数据包:
(1). 数据包:
①. 上层的协议数据都是由下层的数据包包含和构成的.
②. TCP段:
a. 是网络抓包工具常用的分析层级,如分析三次握手、四次握手.
b. 如post一个1480的字节的包,可能这个数据包可能会需要多少数据包去传输.
③. 应用数据:
a. 在消费时,都是从应用程序的缓冲区去读取数据.
b. 需要划分清楚数据包的边界.
(1). 如在TCP段里面分两批数据去发送的.
(2). 必须要划分好应用数据的起点头部是哪?结尾是什么?
(3). 这就涉及到数据拆包.