软硬件架构分层总结

一、前言

软件系统很多架构图我们经常看到是这样的三段

就是这三段就可以演化出很多层

二、硬件架构分层

硬件层,基本是计算机硬件的体系结构,包括硬盘设备,cpu,内存,控制器,运算器,寄存器,存储单元,缓存,总线等。 

三、操作架构分层

操作系统层,主要由引导程序,进程管理程序,内存管理程序,异常中断处理程序,文件系统,指令集,系统对外API等组成。

四、应用软件架构分层

最常见的应用软件架构就是数据库,应用程序代码集,页面程序代码集组成。

五、网络架构分层

网络架构七层模型

  • 第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;

  • 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;

  • 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断;

  • 第四层:传输层。管理着网络中的端到端的数据传输;

  • 第五层:网络层。定义网络设备间如何传输数据;

  • 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;

  • 第七层:物理层。这一层主要就是传输这些二进制数据。

1、物理层:物理层的主要任务是透明地传输比特流。物理层不关心比特流的实际意义和结构,只是负责接收和传送比特流。物理层定义网络硬件的特性,包括使用什么样的传输介质以及与传输介质连接的接头等物理特性便于理解:(主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。)物理层的数据传输单元是比特。

2、数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装,在两个相邻节点间的线路上无差错地传送,以帧(Frame)为单位的数据,并要产生和识别帧边界 。数据链路层还提供了差错控制与流量量控制的方法,保证在物理线路上传送的数据无差错。

3、网络层:(主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装)进行路由选择,以确保数据分组(Packet)从发送端到达接收端,并在数据分组发生阻塞时进行拥塞控制。网络层还要解决异构网络的互连问题,以实现数据分组在不同类型的网络中传输。网络层协议的代表有:IP、IPX、RIP、OSPF等。

4、传输层:(主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段)为上一层进行通信的两个进程之间提供一个可靠的端到端服务,使传输层以上的各层不再关心信息传输的问题。传输层从会话层接收数据,形成报文(Message),在必要时将其分成若干个分组,然后交给网络层进行传输。传输层协议的代表有:TCP、UDP、SPX等 

5、会话层:针对远程访问进行管理(比如断点续传), 包括会话管理理、传输同步以及数据交换管理理等。会话层负责维护两个会话主机之间连接的建立、管理和终止,以及数据的交换。通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。(主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)) 

6、表示层:用于处理在多个通信系统之间交换信息的表示方式,包括数据格式的转换、数据加密与解密、数据压缩与恢复等, 主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西(如图片、声音等)。

7、应用层:为网络用户或应⽤用程序提供各种服务,如文件传输、电子邮件、网络管理和远程登录等, 主要是一些终端的应用,比如说FTP(各种文件下载),WEB(IE浏览),QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西.就是终端应用)。 

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

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

相关文章

淘宝API接口(商品信息获取,订单管理,库存管理,数据分析和优化)

淘宝API接口可以用于许多业务场景,以下是一些常见的应用场景: 商品信息获取:通过淘宝API接口可以获取商品的详细信息,包括商品标题、价格、库存、销量、评价等数据。这些信息可以用于在自己的网站或应用程序中展示商品&#xff0…

0基础学习PyFlink——使用PyFlink的SQL进行字数统计

在《0基础学习PyFlink——Map和Reduce函数处理单词统计》和《0基础学习PyFlink——模拟Hadoop流程》这两篇文章中,我们使用了Python基础函数实现了字(符)统计的功能。这篇我们将切入PyFlink,使用这个框架实现字数统计功能。 PyFl…

Vue中使用Web Serial API连接串口,实现通信交互

Vue中使用Web Serial API连接串口,实现通信交互 Web Serial API,web端通过串口与硬件通信; 该API是JS本身 navigator 对象上就独有的,所以与Vue和React框架开发都没有太大的关系, 串口是一个双向通信接口,允许字节发送…

Visual Studio Code (VS Code)安装教程

Visual Studio Code(简称“VS Code”)。 1.下载安装包 VS Code的官网: Visual Studio Code - Code Editing. Redefined 首先提及一下,vscode是不需要破解操作的; 第一步,看好版本,由于我的系…

几个Web自动化测试框架的比较:Cypress、Selenium和Playwright

介绍:Web自动化测试框架对于确保Web应用程序的质量和可靠性至关重要。它们帮助开发人员和测试人员自动执行重复性任务,跨多个浏览器和平台执行测试,并在开发早期发现问题。 以下仅代表作者观点: 本文探讨来3种流行的Web自动化测…

17 结构型模式-享元模式

1 享元模式介绍 2 享元模式原理 3 享元模式实现 抽象享元类可以是一个接口也可以是一个抽象类,作为所有享元类的公共父类, 主要作用是提高系统的可扩展性. //* 抽象享元类 public abstract class Flyweight {public abstract void operation(String extrinsicState); }具体享…

【计算机网络】UDP的报文结构和注意事项

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,它在传输层中提供了简单、不可靠的数据传输服务。与TCP(Transmission Control Protocol,传输控制协议)不同,UDP不需要建立连接&…

使用Redis部署 PHP 留言板应用

使用Redis部署 PHP 留言板应用 启动 Redis 领导者(Leader)启动两个 Redis 跟随者(Follower)公开并查看前端服务清理 启动 Redis 数据库 创建 Redis Deployment apiVersion: apps/v1 kind: Deployment metadata:name: redis-le…

Selenum八种常用定位(案例解析)

Selenium是一个备受推崇的工具。它有着丰富的功能,让我们能够与网页互动,执行各种任务,能为测试工程师和开发人员提供了很大的便利。 要充分利用Selenium,就需要了解如何正确定位网页上的元素。 接下来我将带大家共同探讨Seleni…

google auth2 邮箱登录申请

1.申请地址 https://console.cloud.google.com/apis/credentials?projectlocal-news-390408 选择凭证 创建完成后,添加一个回调地址即可 整个流程 登录google邮箱登录成功会跳转到回调地址,会带code过来根据code 获取token, token 获取邮…

Ubuntu虚拟机部署OpenStack

1、部署环境 系统:ubuntu-22.04.3-desktop-amd64DevStack版本:2024.1VMware Workstation:8G内存、4核处理器、100G硬盘/1、网络NAT模式/1 2、Ubuntu环境设置 点击show applications,选择Software&Updates 跟换Ubuntu的镜像…

flutter 使用FlutterJsonBeanFactory工具遇到的问题

如下图,使用FlutterJsonBeanFactory工具生成的数据类 但是其中 生成的 import package:null/,导致的错误:Target of URI doesn’t exist: ‘package:null/generated/json/asd.g.dart’ 尝试过的方法: 手动添加包名,…

echarts插件-liquidFill(水球图)

echarts插件-liquidFill(水球图) 1.下载2.引入:3.使用 1.下载 echarts.js下载:https://cdnjs.com/libraries/echarts echarts-liquidfill.js下载:https://github.com/ecomfe/echarts-liquidfill 2.引入: …

Django token 认证原理与实战

概述 cookie、session 与token 的区别 Cookie的作用 cookie的存储量很小,一般不超过4Kcookie并不会保存很多信息,一般用来存储登录状态cookie是以键值对进行表示的(keyvalue),例如nameli,表示cookie的名字是name,cookie携带的值是licookie的存储分为会…

WebSocket 入门案例

目录 WebSocket入门案例WebSocket-server新增项目:添加依赖:yml:启动类: frontend-server前端项目:添加依赖:添加yml:启动类:前端引入JS:前端页面:后端代码:测试: WebSocket 入门案…

一句话解释什么是出口IP

出口 IP 是指从本地网络连接到公共互联网时所使用的 IP 地址。这个 IP 地址是由 Internet 服务提供商(ISP)分配给你的,它可以用来标识你的网络流量的来源。如果你使用的是 NAT(网络地址转换)技术,则在 NAT 设备内部会进行地址转换,使得多个设备可以共享同一个公共 IP 地…

在Mac上使用安卓桌面模式

在安装Homeblew的基础上 替换国内源 export HOMEBREW_API_DOMAIN"https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" export HOMEBREW_BREW_GIT_REMOTE"https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" brew update 安装Scrcpy …

DC/DC升压模块电源 高电压稳压输出 12v24v28v48v转600V800V1000V1100V1300V1500V2000V3000V4000V

特点 ● 效率高达 80% ● 2*2 英寸标准封装 ● 单电压输出 ● 价格低 ● 稳压输出 ● 工作温度: -40℃~85℃ ● 阻燃封装,满足UL94-V0 要求 ● 温度特性好 ● 可直接焊在PCB 上 应用 HRA(B) 0.1~30W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为…

conda虚拟环境配置

命令行输入,conda -V 确定conda版本 创建自己的conda虚拟环境 activate 回车 conda create -n 名字 python版本号 执行命令 确认执行命令 输入y 创建完成 激活环境 conda activate 名字 进入python环境 python 退出 exit() conda deactive

Redis -- 基础知识2

1.Redis客户端介绍 1.基础介绍 Redis是一种客户端-服务器结构的程序,通过网络进行互动 客户端的多种形态 1.自带了命令行客户端:redis-cil 2.图形化界面的客户端:依赖windows系统,连接服务器有诸多限制,不建议使用 3.基…