架构师之路(十四)计算机网络(网络层)

news2024/9/28 11:16:57

前置知识(了解):计算机基础。

作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。

网络层提供主机到主机的通信服务,是一种尽力而为的通信服务。网络层两个重要的两个功能:

转发:当一个分组达到路由器的一个输入端口时,路由器将该分组移动到适当的输出端口,概念偏重于落在路由器本地。

路由选择:当分组从发送方流向接受方时,网络层决定决定分组实际的路径(即需要经过哪些路由器达到接受方)

IP地址

A类:0.0.0.0~127.255.255.255

     私有:10.0.0.0~10.255.255.255 环回地址:127.0.0.1/8

     网络号占一个字节,只有7位可供使用,第一位固定为0,实际上共有2^7-2=126个网络号可被指派

     主机号占3个字节,即24位,主机数共有2^24-2个,全0或全1分别被用于网络地址和广播地址

  B类:128.0.0.0~191.255.255.255

     私有:172.16.0.0~172.31.255.255

     网络号占2个字节,共14位可用,前两位固定为10,实际上共有2^14-1位可用(128.0.0.0不指派)

     主机号占2个字节,共16位,共有2^16-2位可使用

  C类:192.0.0.0~223.255.255.255

     私有:192.168.0.0~192.168.255.255

     网络号占3个字节,只有21位可供使用,前三位固定为110,实际上共有2^21-1位可用

     主机号占1个字节,有2^8-1位可使用

  D类:224.0.0.0~239.255.255.255 不标识网络,用于组播,即一对多通信

  E类:224.0.0.0~255.255.255.255 暂时保留,用于实验和将来使用

子网

随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。

这里主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。

什么是子网掩码?子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。

在计算子网掩码时,我们要注意IP地址中的保留地址,即" 0"地址和广播地址,它们是指主机地址或网络地址全为" 0"或" 1"时的IP地址,它们代表着本网络地址和广播地址,一般是不能被计算在内的。

子网掩码的计算:对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。

子网掩码有两种表示方式,例如以 172. 20. 100. 52为例

1.  将IP地址和子网掩码的地址分别用两行来表示

2.  在IP地址的后面追加网络地址的位数, 用 ”/“ 隔开

CIDR超网

CIDR是伴随着子网掩码出现的地址分配策略(Classless Interdomain Routing, CIDR)。

正如前面所提及的问题,直到20世纪90年代中期, 向各种组织分配IP地址都以A类,B类,C类等分类单位进行。对架构大规模网络的组织,一般会分配一个A类地址。反之,在架构小规模网络时候,则分配C类地址。然而A类地址的派发在全世界最多也无法超过128个,加上C类地址的主机标识最多只允许254台计算机相连, 这导致众多组织开始申请B类地址,结果是B类地址也开始严重缺乏。 于是乎, 人们开始放弃IP地址的分类, 而是采用任意长度分割IP地址的网络标识和主机标识。这种方式就是CIDR,即“无类型域间选路” 

根据CIDR,连续多个C类地址就可以划分到一个较大的网络内,从而更有效地利用了当前的的IPv4地址,同时又通过路由集中降低了路由器的负担。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

45. 跳跃游戏 II - 力扣(LeetCode)

题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 题目示例 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。从下标…

算法基础之树状数组

文章目录 树状数组 树状数组 树状数组能解决的最关键的问题就是能够 O ( log ⁡ n ) O(\log n) O(logn)内,给某个位置上的数,加上一个数,或者求前缀和 他和前缀和数组的区别就是,树状数组支持修改原数组的内容,而前缀…

web安全学习笔记【09】——算法2

基础[1] 入门-算法逆向&散列对称非对称&JS源码逆向&AES&DES&RSA&SHA #知识点: 1、Web常规-系统&中间件&数据库&源码等 2、Web其他-前后端&软件&Docker&分配站等 3、Web拓展-CDN&WAF&OSS&反向&负载…

Allegro PCB如何关联原理图?

在用Allegro进行PCB设计时,我们可以点击Orcad原理图上的器件,然后PCB会自动跳转到该器件。那如何操作PCB上的器件点击跳转到原理图呢? 这种方式可以提高设计的效率。具体操作如下。 选择菜单栏Display

springboot农机电招平台源码和论文

随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单,变高效。…

node多版本管理工具nvm安装

开发前端项目,有时候新老项目交替,不同项目需要不同的node.js,本机电脑需要安装多个版本的nodejs,手动切换十分麻烦,有了nvm就可以轻松解决这个问题,nvm全名node.js version management 它是一个nodejs的版…

使用redisson控制多个springboot实例负载同时只有一个实例执行任务

一 redisson依赖 <!-- redisson 依赖--><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.23.4</version></dependency> 二 定时任务代码 pack…

1、【vue篇】vue框架快速上手

注意事项&#xff1a; methods必须要加s 导入vue&#xff1a;<script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>导入Axios:<script src"https://unpkg.com/axios/dist/axios.min.js"></script> 简单Vue程序…

【grafana】使用教程

【grafana】使用教程 一、简介二、下载及安装及配置三、基本概念3.1 数据源&#xff08;Data Source&#xff09;3.2 仪表盘&#xff08;Dashboard&#xff09;3.3 Panel&#xff08;面板&#xff09;3.4 ROW&#xff08;行&#xff09;3.5 共享及自定义 四、常用可视化示例4.1…

探索编程世界的利器!选择哪个IDE,成就新手开发之路?

文章目录 一、IDE的概念和作用IDE是什么&#xff1f;为什么说选择一款IDE对开发者来说可以起到事半功倍的作用&#xff1f; 二、当下备受推崇的IDE有哪些&#xff1f;1. Visual Studio Code2. PyCharm3. IntelliJ IDEA 三、如何选择一个适合自己的IDE&#xff1f;四、IDE的使用…

1.17堆模板,黑匣子(对顶堆应用,找动态第i大的数),合并果子(哈夫曼树),荷马史诗(多叉哈夫曼树,补空叶子结点)

二叉堆树状数组 P3378 【模板】堆 向上调整唯一&#xff0c;向下调整要看孩子 #include<iostream> #include<iomanip> #include<vector> #include<string> using namespace std; const int maxn 1e6 3; int h[maxn], n, op, num, cnt 0; void swa…

【C++入门到精通】智能指针 shared_ptr循环引用 | weak_ptr 简介及C++模拟实现 [ C++入门 ]

阅读导航 引言一、std::shared_ptr的循环引用1. 概念2. 示例分析 二、std::weak_ptr1. 简介2. weak_ptr模板类提供的成员方法3. 使用示例&#xff08;1&#xff09;weak_ptr指针的创建&#xff08;2&#xff09;完整示例&#xff08;解决上面循环引用问题&#xff09; 4. C模拟…

幻兽帕鲁PalWorld服务器搭建教程,1分钟开服,纯小白教程,无需基础

雨云面板服快速开幻兽帕鲁PalWorld服务器的教程&#xff0c;配置文件修改方法和配置项中文注释。 最近这游戏挺火&#xff0c;很多人想跟朋友联机&#xff0c;如果有专用服务器&#xff0c;就不需要房主一直开着电脑&#xff0c;稳定性也好得多。 幻兽帕鲁简介 《幻兽帕鲁》…

Revit二次开发 设置材质

设置此处材质&#xff0c;需要在材质浏览器中创建材质&#xff0c;根据材质名字设置此材质。 代码如下&#xff1a; Material material new FilteredElementCollector(doc).OfClass(typeof(Material)).FirstOrDefault(x > x.Name "窗框") as Material; Element…

掼蛋的文化价值

近几年&#xff0c;掼蛋成为人们在各种场合休闲娱乐时的首选&#xff01;掼蛋的魅力在于它不仅是一款简单有趣的游戏&#xff0c;更是中国传统文化和智慧的缩影&#xff01;它所积淀的文化价值、所蕴含的文化元素、所散发的文化气息具体包括&#xff1a; 1.社交文化&#xff1a…

android camera的使用以及输出的图像格式

一、Camera 1.1、结合SurfaceView实现预览 1.1.1、布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-au…

3d导模型赋予材质方法---模大狮模型网

给3D模型赋予材质的方法可以根据您使用的软件和工作流程而有所不同。以下是一般的步骤&#xff0c;您可以根据自己的情况进行调整&#xff1a; 准备模型&#xff1a;首先&#xff0c;确保您的模型已经完全建模并进行了UV映射。UV映射是将2D纹理坐标应用到3D模型表面的过程&…

对 MODNet 网络结构直接剪枝的探索

文章目录 1 写在前面2 遇到问题3 解决方案4 探索过程4.1 方案一4.2 方案二4.3 方案三 5 疑惑与思考5.1 Q15.2 Q2 1 写在前面 在前面的文章中&#xff0c;笔者与小伙伴们分享了对 MODNet 主干网络部分以及其余分支分别剪枝的探索历程&#xff0c;即先分解、再处理、后融合的手法…

DB2数据库,时间类型插入数据

DB2数据库,时间类型插入数据 1、TIMESTAMP类型 1.1、创建表 CREATE TABLE BI_varchar ( id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1 ), hide_zero varchar(1000), simulation_cphone_de varchar(1000), disorder_de varchar(…

Cortex-M4 处理器 内存模型

内存模型 处理器有一个固定的默认内存映射&#xff0c;提供最多4GB的可寻址内存。 SRAM和外设的区域包括可选的位带区域。 位带提供了对位数据的原子操作 处理器为核心外设寄存器保留专用外设总线&#xff08;PPB&#xff09;地址范围的区域。 内存区域、类型和属性 内存映…