当前位置: 首页 > news >正文

【系统架构设计】计算机网络

【系统架构设计】计算机网络

  • 网络架构与协议
    • 网络互联模型
      • OSI/RM 结构模型
      • TCP/IP结构模型
      • IPv6
  • 局域网与广域网
    • 局域网特点
  • 网络互连与常用设备
    • 网络互联设备
    • 交换技术
    • 路由技术
  • 网络存储技术

网络架构与协议

网络互联模型

OSI/RM 结构模型

1977年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(Open System Interconnection/Reference Model ,OSI/RM),形成了网络架构的国际标准。OSI/RM构造由下到上的7层模型:

  • 物理层

主要功能:透明地完成相邻节点之间原始比特流的传输,其中透明 表示物理层不需要关心比特代表的具体含义,而要考虑如何发送 0 和1 ,以接收端如何识别。该层在传输介质基础上作为系统和通信介质的接口,为数据链路层提供服务。

  • 数据链路层

负责在两个相邻节点之间的线路上无差错地传送以帧为单位的数据,通过流量控制和差错控制,将原始不可靠的物理层连接变成无差错的数据通道,并解决多用户竞争问题,使之对网络层显现一条可靠的链路。

  • 网络层

是通信子网的最高层,主要任务是在数据链路层服务基础上,实现整个通信子网内的连接,并通过网络连接交换网络服务数据单元(packet)。主要解决数据传输单元分组在通信子网中的路由选择、拥塞控制和多个网络互联的问题。

  • 传输层

是负责数据通信的最高层,也是面向网络通信的低三层(物理层、数据链路层、网络层)和面向信息处理的高三层(会话层、表示层、应用层)之间的中间层,是资源子网和通信子网的桥梁。主要任务是为两台计算机的通信提供可靠的端到端的数据传输服务。传输层反映并扩展了网络层子系统的服务功能,并通过传输层地址为高层提供传输数据的通信端口,使系统之间高层资源的共享不必考虑数据通信方面的问题。

  • 会话层

利用传输层提供的端到端数据传输服务,具体实施 服务请求者与服务提供者之间的通信、组织和同步它们的会话活动,并管理它们的数据交换过程。

  • 表示层

处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含语义和语法两个方面:语义是数据的内容及其含义,它由应用层负责处理;语法是与数据表示形式有关的方面,例如,数据的格式、编码和压缩等。表示层主要用于处理应用实体面向交换的信息的表示方法,包括用户数据的结构和在传输时的比特流(或字节流)的表示。这样即使每个应用系统有各自的信息表示法,但被交换的信息类型和数值仍能用一种共同的方法来描述。

  • 应用层

是直接面向用户的一层,是计算机网络和最终用户之间的界面。在实际应用中,通常把会话层和表示层归入应用层,使OSI/RM成为一个简化的五层模型

TCP/IP结构模型

由于OSI/RM 结构过于复杂,实际系统中采用OSI/RM的并不多,目前使用最广泛的可互操作的网络架构是TCP/IP(Transmission Control Protocol /Internet Protocol ,传输控制协议/网际协议) 。与OSI/RM 结构不同,不存在一个正式的TCP/IP结构模型 ,但可根据已开发的协议标准和通信任务将其大致分为4个比较独立的层次,分别是:

  • 网络接口层

大致对应于 OSI/RM的数据链路层和物理层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。

  • 网络互联层

也称为网络层、互联网层或网际层 ,负责将数据报独立地从信源传送到信宿,主要解决路由选择、阻塞控制和网络互联等问题,在功能上类似于OSI/RM中的网络层。主要协议有 IP、ICMP(网际控制报文协议)、IGMP(网际组管理协议)、ARP(地址解析协议)、RARP(反向地址解析协议)等。

  • 传输层

负责信源和信宿之间提供端到端的数据传输服务,相当于OSI/RM中的传输层。主要协议是TCP 和UDP。TCP有助于提供可靠性,而UDP则有助于提高传输效率。UDP一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合

  • 应用层

直接面向用户应用,为用户方便地提供对各种网络资源的访问服务,包含了OSI/RM会话层和表示层中的部分功能。常见的协议有:FTP(文件传输协议)、TFTP(简单文件传输协议)、HTTP(超文件传输协议)、SMTP(简单邮件传输协议)、DHCP(动态主机配置协议)、Telnet(远程登录协议)、DNS(域名系统)、SNMP(简单网络管理协议)等。

IPv6

解决Ipv4 地址空间耗尽、路由表急剧膨胀、缺乏对QoS的支持 、本身并不提供任何安全机制、移动性差等问题。全称是“互联网协议第6版”。

QoS(Quality of Service)即服务质量。在有限的带宽资源下,QoS为各种业务分配带宽,为业务提供端到端的服务质量保证。例如,语音、视频和重要的数据应用在网络设备中可以通过配置QoS优先得到服务

一个32位的Ipv4 地址以8个位为一段分成4段,每段之间用点“.”分开;Ipv6地址的128位是以16位为1段,共分为8段,每段的16位转换为一个4位的16进制数字,每段之间用冒号“:"分开

在这里插入图片描述
为方便书写,对于每一段中的前导 0可以进行省略,如前面的地址经过一次压缩,可以得到:

2001:da8:d001:10001

对于连续2段以上都是0的字段,可以用 "::"表示,再次压缩得到

2001:da8:d001:1::1

但要注意,**每个Ipv6地址只允许有一个:: **

局域网与广域网

局域网特点

  1. 地理分布范围小
  2. 数据传输速率高
  3. 数据误码率低
  4. 一般以PC为主体,还包括终端和各种外设,网络中一般不架设主骨干网系统
  5. 协议相对简单、结构灵活,建网成本低、周期短,便于管理和扩充。

构成局域网的网络拓扑结构主要有星形结构、总线结构、环形结构、网状结构

网络互连与常用设备

网络互联设备

在这里插入图片描述

交换技术

按照实际的数据传送技术,交换技术又可分为电路交换、报文交换、分组交换

  • 电路交换:在数据传送之前必须先设置一条通路。在线路释放之前,该通路将由一对用户独占;
  • 报文交换:报文从源点传送到目的地采用存储转发的方式,在传送报文时,同时只占用一段通道。在交换节点中需要缓冲存储,报文需要排队。因此,报文交换不能满足实时通信的要求。
  • 分组交换。交换方式和报文交换方式类似,但报文被分成分组传送,并规定了最大的分组长度。在数据报分组交换中,目的地需要重新组装报文;在虚电路分组交换中,在数据传送之前必须通过虚呼叫设置一条虚电路。分组交换技术是在数据网络中使用最广泛的一种交换技术

根据各自的特点,不同的交换技术适用于不同的场合。例如,
对于交互式通信来说,报文交换肯定是不适合的;
对于较轻和间歇式负载来说,电路交换是最合适的,因此,可以通过电话拨号线路来实行通信;
对于较重或持续的负载来说,使用租用的线路以电路交换方式通信是合适的;
对必须交换中等数据到大量的数据时,可用分组交换方法。

路由技术

路由器的主要功能就是进行路由选择。当一个网络中的计算机要给另一个网络中的计算机发送分组时,它首先将分组送给同一个网络中用于网络之间连接的路由器,路由器根据目的地址信息,选择合适的路由,将该分组传递到目的网络用于网络之间连接的路由器中,然后通过目的网络中内部使用的路由选择协议,该分组最后被递交给目的计算机。

网络存储技术

目前,主流的网络存储技术主要有三种,分别是;

  • 直接附加存储(Direct Attached Storage,DAS)、
  • 网络附加存储(Network Attached Storage,NAS)\
  • 存储区域网络(Storage Area Network,SAN)。

相关文章:

【系统架构设计】计算机网络

【系统架构设计】计算机网络 网络架构与协议网络互联模型OSI/RM 结构模型TCP/IP结构模型IPv6 局域网与广域网局域网特点 网络互连与常用设备网络互联设备交换技术路由技术 网络存储技术 网络架构与协议 网络互联模型 OSI/RM 结构模型 1977年,国际标准化组织为适应…...

《中国数据库前世今生》——历史的深度与未来的展望

在探索科技与历史的交织中,我有幸观看了《中国数据库前世今生》这部纪录片。影片开头它不仅是一段技术演进的回顾,更是中国IT领域从跟随到引领的壮丽史诗。后续深刻研读了专家们的深刻讨论,通过这部纪录片,我深刻感受到了数据库技…...

web前端之实现霓虹灯背景魔术卡、旋转的背景动画、模糊效果、边框、变量、filter

MENU 前言效果图htmlstyle 前言 代码段定义一个名为Magic Card的卡片&#xff0c;并通过一系列CSS属性和动画效果来美化和增强该卡片的视觉效果。 效果图 html <div class"card">Magic Card </div>style 代码 property --rotate {syntax: "<a…...

几款免费的时序数据库对比

InfluxDB、TDengine、OpenTSDB、QuestDB都是当前主流的时序数据库&#xff0c;它们在性能、功能、适用场景等方面各有特点。下面将从多个维度对这四个数据库进行对比分析&#xff1a; 一、性能 InfluxDB&#xff1a; 高效的时间序列数据写入性能&#xff0c;自定义TSM引擎&am…...

基于springboot的乐享田园系统

TOC springboot181基于springboot的乐享田园系统 第1章 绪论** 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不…...

深入解析Objective-C中NSParagraphStyle的段落样式处理艺术

标题&#xff1a;深入解析Objective-C中NSParagraphStyle的段落样式处理艺术 在Objective-C的世界中&#xff0c;文本排版是一个复杂但至关重要的话题。NSParagraphStyle作为其中的核心组件&#xff0c;扮演着决定文本段落外观和布局的关键角色。本文将深入探讨NSParagraphSty…...

Qt编程技巧小知识点(2)GPIB缓存区数据读取

文章目录 Qt编程技巧小知识点&#xff08;2&#xff09;GPIB缓存区数据读取小结 Qt编程技巧小知识点&#xff08;2&#xff09;GPIB缓存区数据读取 大端小端的问题&#xff0c;其主要表现如下例子&#xff1a; 例如&#xff1a;输入为QByteArray str "#14M\xB6q\xC1\n&qu…...

数的个位相加

给定一个非负整数 num&#xff0c;反复将各个位上的数字相加&#xff0c;直到结果为一位数。返回这个结果。 示例 1: 输入: num 38输出: 2 解释: 各位相加的过程为&#xff1a; 38 --> 3 8 --> 11 11 --> 1 1 --> 2 由于 2 是一位数&#xff0c;所以返回 2。…...

专业技能(挖坑填坑)——MYSQL的索引、日志、事务、存储引擎、锁机制等相关原理

熟悉MySQL的使用&#xff0c;熟悉MYSQL的索引、日志、事务、存储引擎、锁机制等相关原理。 1.mysql索引&#xff0c;索引的底层数据结构实现 索引就是目录可以帮助快速的找到对应的资源。 MySQL默认的InnoDB存储引擎使用的索引底层数据结构是BTree。BTree是一种多路搜索查找树…...

C++(27): 线程池

目录 1. 概述 2. 例程 &#xff08;1&#xff09;ThreadPool.h &#xff08;2&#xff09;ThreadPool.cpp &#xff08;3&#xff09;Start.cpp &#xff08;4&#xff09;编译 1. 概述 线程池技术绝不是C独有的&#xff0c;Java和Python都有比较晚完善的线程池构造接口…...

每日一题-贪心算法

122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 这个题目一开始肯定是会懵&#xff0c;就比如说一开始先跳几步&#xff0c;之后再怎么跳&#xff0c;其实我们就可以用最大范围来算就行了&#xff0…...

PSO 算法实例(手动推导过程)

PSO 算法实例 引言正文PSO 算法步骤PSO 实例步骤1 定义目标函数步骤2 初始化每个粒子的位置和速度步骤3 使用目标函数进行评估步骤4 更新单个粒子的最佳位置(局部最优值)步骤5 更新全局最佳位置(全局最优值)步骤6 更新每个粒子的位置和速度步骤7 使用目标函数评估新的位置步…...

解决antd TreeSelect 返回值不包含父节点问题 -自定义组件(react)

在写一个表单时使用了antd的 TreeSelect&#xff0c;在对TreeSelect的值提交时发现&#xff0c;父节点的值在半选状态时未提交&#xff0c;在选中状态时&#xff08;子节点全选&#xff09;&#xff0c;子节点不提交&#xff0c;只提交父节点&#xff0c;这与后端需求不符&…...

花四小时,写了个在线实时绘制等值面图小软件,明晚上线,喜欢的小伙伴关注哦

科研党的福音&#xff0c;绘图再也不需要安装一堆软件了&#xff0c;可以在线绘图了&#xff1b; 只需要传入绘制的区间、色值、以及所需要绘制的数据就可以直接出图了&#xff0c;可绘制各种等值面图&#xff0c;比如降水分布&#xff0c;高温分布&#xff0c;人口分布&#x…...

c++的vector用法

文章目录 1. 创建和初始化 std::vector2. 添加和删除元素3. 访问和遍历元素4. std::vector 的其他常用操作 std::vector 是 C 标准库中的一个动态数组容器&#xff0c;提供了灵活的存储和访问功能。 1. 创建和初始化 std::vector #include <iostream> #include <vect…...

【Linux网络】Linux网络初探:开启网络世界的大门

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#xff1a;我们已经系统的学习了Linux的基本操作、进程、线程、文件、通信等待&#xff0c;但是在如今社会没有网络通信方式是万万不行的&#xff0c;今天我们就走进网络中&#xff0c;系统的学习一下有关Linux网…...

目录、用户与组、出错相关函数、时间函数

一、目录相关函数及属性 1、 opendir()函数 opendir 用于打开一个目录&#xff0c;并返回一个目录流指针。name&#xff1a;要打开的目录的路径。 返回值&#xff1a;成功时返回指向目录流的指针&#xff0c;失败时返回 NULL。 #include <dirent.h> DIR *opendir(con…...

<keep-alive> 一分钟了解

<keep-alive> 一分钟了解 <keep-alive> 是 Vue.js 提供的一个抽象组件&#xff0c;它的主要用途是在页面或组件切换时保留其状态&#xff0c;避免重复执行昂贵的渲染操作&#xff0c;从而提升应用性能。 文章目录 <keep-alive> 一分钟了解 一、 <keep-ali…...

Android 启动动画太生硬

跟 android:launchMode"singleTask"属性无关系 请禁用路由 ARouter.getInstance() .build(Routes.Main.MAIN) .withTransition(R.anim.activity_anim_in, R.anim.activity_anim_out).navigation() 正确做法是 val intent Intent(thisSplashActivity,MainActivit…...

深度学习中常用概念总结

最近在做深度学习&#xff0c;里面涉及到很多概念&#xff0c;有的名称都差不多容易记混。所以写这篇文章总结一下。眼过千遍不如手过一遍。 1. 轮数&#xff08;Epochs&#xff09;: 一轮&#xff08;Epoch&#xff09;指的是整个训练数据集在训练过程中被完整使用一次。…...

进 程

1.进程&#xff1a;进行中的程序。 微观串行&#xff0c;宏观并行。 程序的一次执行过程 进程是程序的一个实例 一个程序可以对应一个或多个进程。 2.为什么需要进程&#xff1f; 3.进程的组成部分&#xff1a; 进程 pcb 块 栈|堆|bss|data|text 其中&#xff1a; 家族…...

Taro-UI

一、安装Taro UI 进入项目文件&#xff0c;执行项目 //使用yarn安装taro-ui yarn add taro-ui//使用npm安装taro-ui npm install taro-ui//注&#xff1a;因为要支持自定义主题功能&#xff0c;需要将样式从组件中抽离出来&#xff0c;在微信小程序中依赖 globalClass 功能&a…...

TypeScript 之 JavaScript文件类型检查

启用对 JavaScript 文件的类型检查 在 TypeScript 编译选项 compilerOptions 全部配置项 中&#xff0c;可以通过以下2个属性配置 JavaScript Support&#xff1a; allowJs 是否允许编译 JavaScript 文件。默认值是 false。在默认情况下&#xff0c;TypeScript 编译器只处理 .…...

基本数据类型变量间的自动提升与强制转换以及进制的转换

基本数据类型变量间的自动提升与强制转换 测试基本数据类型的运算规则 这里基本类型不包括布尔 运算规则 自动类型提升 当容量小的变量与容量大的变量做运算时&#xff0c;结果自动转换容量大的数据类型 说明&#xff1a;此时容量大小&#xff0c;指的是数据范围大小&…...

SparseConv 的学习笔记

安装 环境设置在74.183 sdfstudio 里面,SparseNeus 推荐的版本是是 torchsparse 2.0.0版本 命令行如下&#xff1a; 需要 C 的 sudo 权限指定安装&#xff1a; ## 安装依赖项 conda install -c conda-forge sparsehash sudo apt-get install libsparsehash-dev 进入官网下…...

vscode 快速生成vue 格式

1.用快捷Ctrl Shift P唤出控制台 输入“Snippets”并选择 Snippets: Configure User Snippets 2.输入vue&#xff0c;选中vue.json vs code自动生成vue.json文件 3.在 vue.json 中添加模板 {"Print to console": {"prefix": "vue2","b…...

react笔记:redux

redux状态管理 安装redux&#xff1a;num i redux 新建redux文件夹&#xff1a; store.jscount_reducer.js count_action.js constant.js (常量&#xff09; 1. store.js文件&#xff1a; // 该文件专门用于暴露一个store对象&#xff0c;整个应用只有一个store对…...

数据结构与算法--图的应用

文章目录 回顾提要连通图生成树最小生成树构造最小生成树的算法普里姆(Prim)算法克鲁斯卡尔(Kruskal)算法 最短路径狄杰斯特拉 (Dijkstra) 算法当前最短路径的更新拓扑排序拓扑排序方法拓扑排序示例总结 回顾 图的遍历方法&#xff1a; 深度优先遍历 (DFS)&#xff1a;从任意…...

【leetcode图文详解】特殊数组II : 空间换时间的“记忆化”,越多越好吗?

题目详解 需求&#xff1a;判断给定区间内的元素是否满足“特殊数组”要求 尝试: 暴力求解? 如果试着直接对每个queries中的区间进行检测而不做其他处理&#xff0c;那么最后不出意外地超时了。。 细想优化策略&#xff0c;不难察觉到其中可能存在大量的重复运算 那还等什…...

离线安装prometheus与Grafana实现可视化监控

简介 prometheus 是一个专为云环境设计的开源系统监控和警报工具&#xff0c;它收集并存储多维度的时间序列数据&#xff0c;通过PromQL查询语言提供强大的数据检索能力&#xff0c;并支持可视化及警报功能。而 Grafana 则是一个开源的数据可视化平台&#xff0c;能够与包括Pr…...