系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(3)

本心、输入输出、结果

文章目录

  • 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(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 不能用于查找资源。图中给出的简单示例由命名空间和特定于命名空间的字符串组成。

弘扬爱国精神

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/164698.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光伏三相并网逆变器的控制策略与性能分析(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

垃圾回收器

垃圾回收器 问题:为什么分代GC算法要把堆分成年轻代和老年代 系统中有部分对象被创建使用后很快就不再使用了,比如订单数据,返回给用户后就不怎么使用了 老年代中会存放长期存活的对象,比如Spring中的bean对象,在程序启动后就不会被回收了 JVM默认设置中,年轻代的大小要远小…

FPGA的通用FIFO设计verilog,1024*8bit仿真,源码和视频

名称:FIFO存储器设计1024*8bit 软件:Quartus 语言:Verilog 本代码为FIFO通用代码,其他深度和位宽可简单修改以下参数得到 reg [7:0] ram [1023:0];//RAM。深度1024,宽度8 代码功能: 设计一个基于FPGA…

2023.10.20期中考核复现(misc)

杂项题就是2023陇剑杯的题目,可能还是不感兴趣吧,自从打完蓝帽杯之后除了web以外什么都没看 flow analysis 1 题目:What is the backdoor file name that comes with the server?( Including file suffix) 服务器附带的后门文件名是什么&am…

Leetcode 21 合并两个有序链表 (链表)

Leetcode 21 合并两个有序链表 (链表) 解法1 复杂的第一版本(优化大于和等于合并见方法二)解法2 注意注意:先添加元素toadd.next list1,添加之后才可以移动指针toadd toadd.next 解法1 复杂的第一版本&a…

C++之this指针

前言 C中对象模型和this指针是面向对象编程中的重要概念。对象模型描述了对象在内存中的布局和行为,包括成员变量、成员函数的存储方式和访问权限。this指针是一个隐含的指针,指向当前对象的地址,用于在成员函数中引用当前对象的成员变量和成…

zabbix-proxy代理服务器配置

下载zabbix源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 安装 yum -y install zabbix-proxy-mysql zabbix_get 查看相关文件路径 rpm -ql zabbix-proxy-mysql 创建数据库 mysq -uroot -proot mysql> create database…

分析并实现Android中的MVC、MVP架构模式

架构是什么 架构是为了解决特定的问题而提出来的,而且它还有特定的规则,能够把整个应用的整体进行角色的划分。并且他还能够约定角色之间的联系沟通机制。 所以学习架构要带着以下三个问题去理解: 。架构解决了什么问题? 。架…

Pytorch深度学习 - 学习笔记

文章目录 Pytorch深度学习1. Pytorch加载数据初认识2. TensorBoard3. Transforms常见的transform 4. torchvision中的数据集使用5. DataLoader使用6. 神经网络6.1 神经网络的基本骨架6.2 卷积层6.3 最大池化的使用6.4 非线性激活6.5 线性层及其他层6.6 小实战及Sequential 7. 损…

Python学习笔记——存储容器

食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位! 列表 列表类似数组,其中可以包含不同类型的元素,写法如下: list1 [Google, Runoob, 1997, 2000] list2 [1, 2, 3, 4, 5 ] list3 ["a", …

antd的RangePicker设置默认值,默认近七天(andt+react)

import moment from "moment";state {initData:[moment().startOf(day).subtract(6, d), moment().endOf(day)], }<FormItem label"产生时间" {...tailItemLayout}>{getFieldDecorator("produceTime", {initialValue: initData})(<Ran…

VR航天科普主题公园模拟太空舱体验馆vr航天模拟体验设备

VR航天航空体验馆巡展是一项非常受欢迎的展览活动&#xff0c;可以让公众在现场体验到航天飞行的乐趣。 普乐蛙VR展览组织者会设计一个航天航空主题的VR体验馆&#xff0c;并在馆内设置各种航天航空相关的展示内容&#xff0c;如太空舱、火箭发射、星际航行等。 其次&#xff0…

信息检索与数据挖掘|(四)索引构建

目录 &#x1f4da;硬件基础 &#x1f4da;基于块的排序索引方法 &#x1f407;BSBI算法(blocked sort-based indexing) &#x1f4da;内存式单遍扫描索引构建方法 &#x1f407;SPIMI算法(single-pass in-memory indexing) &#x1f4da;分布式索引构建方法 &#x1f4d…

linux常见命令-时间日期类、搜索查找类、压缩和解压类

一、时间日期类 1.date 指令-显示当前日期 基本语法 1) date (功能描述:显示当前时间) 2) date %Y (功能描述:显示当前年份) 3) date %m (功能描述:显示当前月份) 4) date %d (功能描述:显示当前是哪一天) 5) date "%Y-%m-%d %H:%M:%S" (功能描述:显示年月…

《java 桌面软件开发》swing 以鼠标为中心放大缩小移动图片

swing 使用Graphic2D 绘制图片&#xff0c;要实现对图片进行缩放和自由拖动。 1.以鼠标所在的位置为中心&#xff0c;滚轮控制缩放 2.缩放后再支持鼠标拖动。 基本原理&#xff1a; 利用scale() 函数。进行缩放。但是要注意的地方是&#xff0c;如果是在 public void paintCom…

Flutter——最详细(CustomScrollView)使用教程

CustomScrollView简介 创建一个 [ScrollView]&#xff0c;该视图使用薄片创建自定义滚动效果。 [SliverList]&#xff0c;这是一个显示线性子项列表的银子列表。 [SliverFixedExtentList]&#xff0c;这是一种更高效的薄片&#xff0c;它显示沿滚动轴具有相同范围的子级的线性列…

【持续更新】tutorial-Linux-Markdown-etc(Linux、命令、Markdown、md、Tex、LaTex)

1. Linux命令 1.1 常用 查看文件夹下文件数量: ls -l | wc -l7zip: 解压&#xff1a;7z x compressed_file.7z -o/path/to/destination # 注意-o和目标路径是连起来的&#xff0c;没有空格压缩&#xff1a;7z a compressed_file.zip destination_path conda 查看 conda 拥有的…

Cornerstone for Mac:高效SVN管理的黄金标准

在当今的软件开发领域&#xff0c;版本控制系统是不可或缺的一部分。其中&#xff0c;Subversion&#xff08;SVN&#xff09;是一个广泛使用的版本控制系统&#xff0c;有助于团队协同工作&#xff0c;实现代码的版本管理和追踪。对于Mac用户来说&#xff0c;Cornerstone是一款…

服务器数据恢复-linux+raid+VMwave ESX数据恢复案例

服务器数据恢复环境&#xff1a; 一台某品牌x3950 X6型号服务器&#xff0c;linux操作系统&#xff0c;12块硬盘组建了一组raid阵列&#xff0c;上层运行VMwave ESX虚拟化平台。 服务器故障&#xff1a; 在服务器运行过程中&#xff0c;该raid阵列中有硬盘掉线&#xff0c;linu…

【cmake】cmake生成Visual Studio工程后的INSTALL项目使用

很多开源项目使用CMake生成Visual Studio工程后会有INSTALL项目。 这个INSTALL项目是为安装编译产物&#xff0c;作用类似于make install。其使用与其他工程并不相同。 想安装编译产物&#xff0c;需右键INSTALL工程&#xff0c;在弹出的菜单中&#xff0c;选择“仅用于项目”…