本心、输入输出、结果
文章目录
- 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(3)
- 前言
- TCP/IP 封装
- 步骤说明
- 为什么Nginx被称为“反向”代理?
- 转发代理通常用于:
- 反向代理适用于:
- 常见的负载均衡算法有哪些?
- 静态算法
- 动态算法
- URL, URI, URN - 你知道区别吗?
- URI
- URL
- URN
- 弘扬爱国精神
系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(3)
编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263
前言
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节
TCP/IP 封装
数据如何通过网络发送?为什么我们在 OSI 模型中需要这么多层?
下图显示了通过网络传输时如何封装和解封装数据。
步骤说明
步骤1:当设备A通过HTTP协议通过网络向设备B发送数据时,首先在应用层添加HTTP标头。
步骤2:然后将TCP或UDP标头添加到数据中。它被封装在传输层的 TCP 段中。标头包含源端口、目标端口和序列号。
第 3 步:然后在网络层用 IP 报头封装网段。IP 标头包含源/目标 IP 地址。
第 4 步:IP 数据报在数据链路层添加 MAC 标头,其中包含源/目标 MAC 地址。
第 5 步:将封装的帧发送到物理层,并以二进制位通过网络发送。
步骤 6-10:当设备 B 从网络接收到位时,它会执行解封装过程,这是封装过程的反向处理。标头将逐层删除,最终,设备 B 可以读取数据。
我们需要网络模型中的层,因为每个层都专注于自己的职责。每一层都可以依靠标头来处理指令,不需要知道最后一层数据的含义。
为什么Nginx被称为“反向”代理?
下图显示了正向代理和反向代理之间的差异
转发代理是位于用户设备和互联网之间的服务器。
转发代理通常用于:
- 保护客户端
- 避免浏览限制
- 阻止对某些内容的访问
- 反向代理是接受来自客户端的请求,将请求转发到 Web 服务器,并将结果返回到客户端的服务器,就像代理服务器已处理请求一样。
反向代理适用于:
- 保护服务器
- 负载平衡
- 缓存静态内容
- 加密和解密 SSL 通信
常见的负载均衡算法有哪些?
常见的负载均衡算法有哪些? 下图显示了 6 种常用算法
静态算法
1、循环
客户端请求按顺序发送到不同的服务实例。这些服务通常需要是无状态的。
2、粘性循环
这是对循环算法的改进。如果 Alice 的第一个请求转到服务 A,则以下请求也会转到服务 A。
3、加权循环
管理员可以指定每个服务的权重。权重较高的请求比其他请求处理的请求更多。
4、散列
此算法对传入请求的 IP 或 URL 应用哈希函数。请求根据哈希函数结果路由到相关实例。
动态算法
1、最少连接
新请求将发送到并发连接最少的服务实例。
2、最短响应时间
新请求将以最快的响应时间发送到服务实例
URL, URI, URN - 你知道区别吗?
URL, URI, URN - 你知道区别吗?下图显示了 URL、URI 和 URN 的比较
URI
URI 代表 统一资源标识符。它标识 Web 上的逻辑或物理资源。URL 和 URN 是 URI 的子类型。URL 定位资源,而 URN 命名资源。
URI 由以下部分组成: scheme:[//authority]path[?query][#fragment]
URL
URL代表统一资源定位器,HTTP的关键概念。它是网络上唯一资源的地址。它可以与其他协议一起使用,如FTP和JDBC。
URN
URN 代表 统一资源名称。它使用骨灰盒方案。URN 不能用于查找资源。图中给出的简单示例由命名空间和特定于命名空间的字符串组成。