计网第四章(网络层)(二)
目录
IPV4地址编址
第一历史阶段(分类编址):
A类地址:
B类地址:
C类地址:
D类地址(多播地址):
E类地址(保留地址):
第二历史阶段(划分子网):
划分子网的工具(子网掩码):
第三历史阶段(无分类编址):
路由聚合(构造超网):
最长前缀匹配:
IPV4地址编址
IPV4总共有32个比特。
第一历史阶段(分类编址):
分类编址的IPV4地址分为A、B、C、D、E五类。
其中只有前三类地址可以分配给网络中的主机或路由器的各接口。
总体上而言,是将地址的一部分作为网络号,另一部分作为主机号。不同的类分配的各部分的位数不同。
主机号为全0的为网络地址,不能分配给主机或者路由器的各接口。
主机号为全1的为广播地址,也不能分配给主机或者路由器的各接口。
注意:A类地址中还有一些特殊的地址也不能分配给主机或者路由器的各接口。这些在A类地址中说明。
地址0.0.0.0是一个特殊的IPV4地址,只能作为源地址使用,表示本网络的本主机。
地址255.255.255.255只能作为目的地址使用,表示只在本网络上进行广播(各路由均不转发)。
A类地址:
32个比特中,网络号占8位,主机号占24位;其中网络号最高位固定为0,即0xxxxxxx。
可以看到,当这个固定位变为1的时候,就不再是A类地址了。所以A类地址的网络号的范围为0~127。
在A类地址中,最小网络号0,保留不指派。最大网络号127,作为本地环回测试地址,不能指派。最小的本地环回测试地址为127.0.0.1(主机号为全0是网络地址,所以从1开始)。最大的本地环回测试地址为127.255.255.254(主机号为全1是广播地址,所以最大只能是254)。
所以第一个可以指派的网络号是1,网络地址为1.0.0.0 。最后一个可指派的网络号是126,网络地址为126.0.0.0 。
可指派的网络数量为:个,式中的7是因为A类地址最高位固定为0,并且网络号占8位,那么可以更改的只有后7位,所以是
个,减去2的原因是要去除前面所述的不能指派的两个网络号(0和127)。
每个网络中可分配的IP地址数量为:个,式中的24为主机号的位数,减2是因为主机号全1和主机号全0不能分配。
B类地址:
32个比特中,网络号占16位,主机号占16位;其中网络号最高位固定为10,即10xxxxxx。
B类地址网络号的第一个字节的范围为128~191。
在B类地址中,最小网络号也是第一个可以指派的网络号是128.0,网络地址为128.0.0.0 。最大的也是最后一个可指派的网络号为191.255,网络地址为191.255.0.0 。
可指派的网络数量为:个,式中的14是因为B类地址最高位固定为10,并且网络号占16位,那么可以更改的只有后14位,所以是
个。
每个网络中可分配的IP地址数量为:个,式中的16为主机号的位数,减2是因为主机号全1和主机号全0不能分配。
C类地址:
32个比特中,网络号占24位,主机号占8位;其中网络号最高位固定为110,即110xxxxx。
C类地址的网络号的第一个字节的范围为192~223。
在C类地址中最小网络号也是第一个可以指派的网络号是192.0.0,网络地址为192.0.0.0 。最大的也是最后一个可指派的网络号为223.255.255,网络地址为223.255.255.0 。
可指派的网络数量为:个,式中的21是因为C类地址最高位固定为110,并且网络号占24位,那么可以更改的只有后21位,所以是
个。
每个网络中可分配的IP地址数量为:个,式中的8为主机号的位数,减2是因为主机号全1和主机号全0不能分配。
D类地址(多播地址):
最高位固定为1110。
D类地址的网络号的第一个字节的范围为224~239。
E类地址(保留地址):
最高位固定为1111。
E类地址的网络号的第一个字节的范围为240~255。
第二历史阶段(划分子网):
该阶段的核心思想就是在分类编址的基础之上,从主机号部分借用一部分作为子网号。这样的话就可以避免新增网络时,申请新的网络号会带来的弊端,比如,原有网络的IP地址大量浪费等。
此时,IPV4地址就从二级结构变为了三级结构:
划分子网的工具(子网掩码):
32位比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号。
子网掩码使用连续的比特1来表示网络号和子网号,使用连续的比特0来表示主机号。
(从这一点结合不同类的地址网络号所占位数我们可以推理出,
A类地址的子网掩码至少为255.x.x.x ,B类地址的子网掩码至少为255.255.x.x ,C类地址的子网掩码至少为255.255.255.x 。)
将划分子网的IPV4地址与子网掩码进行逻辑与运算就能得到相应的IPV4地址所在子网的网络地址。
(现在给你一个IP地址,根据逻辑与运算的特点,主机号部分最后全部会被清0,而网络号和子网号会被保留下来。由前面可以知道,主机号部分全为0即为所在网络的网络地址,所以就可以得知所在子网的网络地址。)
其实要进行逻辑与运算最重要的是子网掩码中第一个不为255的字节,算出来这个地址的值,在它前面的字节照抄,后面的直接为0。 原因是因为掩码是用连续的比特1来表示网络号的,
比如:假设某个主机的IP地址为180.80.77.55,子网掩码为255.255.252.0,求主机所在子网的网络地址。
首先判断这是哪类地址,从IP地址进行判断,B类地址的网络号的第一个字节的范围为128~191。该IP地址的第一个字节为180,所以为B类地址。
直接找到掩码第一个不为255的字节,也就是第三个字节,相应地,IP地址的第三个字节为77。
转换为二进制后进行逻辑与,算出所在的子网的网络地址为180.80.76.0。
在此基础上再加一问,如果向其所在子网发送广播分组,则目的地址可以是?
从前面我们可以知道,广播地址应该是主机号全为1。如图:
由此可以得出,目的地址可以是:180.80.79.255
第三历史阶段(无分类编址):
无分类域间路由选择CIDR消除了传统的A类地址、B类地址、C类地址,以及子网划分的概念。它可以更有效地分配IPV4地址空间。
CIDR采用斜线记法,又叫CIDR记法。即在IP地址后面加上斜线“/”,斜线后面写上网络前缀所占比特的数量(设为x)。 主机号所占比特的数量就等于32-x。
CIDR实际上是将网络前缀都相同的连续的IP地址组成了一个“CIDR地址块”。
在这个地址块中,只需要知道其中任何一个地址,就可以知道该地址块的全部细节:
1.地址块的最小地址和最大地址(这里并不区分是否为可分配的地址,所以最小地址应该是主机号全为0,最大地址应该是主机号全为1)。
2.地址块中的地址数量( 这里n为主机号的位数)。
3.地址块中聚合某类(A类、B类、C类)网络的数量( 其中
为地址块中的地址数量,u为主机号的位数,
为该类一个网络的地址的数量,A类应该为
,B类应该为
,C类应该为
个)。
4.地址掩码(又称为子网掩码)(网络前缀用连续的比特1表示,主机号用连续的比特0表示)。
比如:CIDR地址块 128.14.35.7/20 的全部细节
首先得出网络前缀为20位,即前两字节加第三个字节的前四位为网络前缀,那么主机号的位数为12位。
最小地址:主机号全为0 ,则最小地址为128.14.32.0
注意:人家要是问最小的可分配的地址,那就应该是128.14.32.1
最大地址:主机号全为1 即最大地址为128.14.47.255
注意: 同上,最大的可分配地址应该为128.14.47.254
地址块中的地址数量:
聚合C类网的数量:
地址掩码:
前两个字节不用犹豫,直接写255,第三个字节前四位变为1,剩余位数全部变为0。
则地址掩码为255.255.240.0。
路由聚合(构造超网):
路由聚合可以减少路由记录对路由表的占用。其核心思想是找地址的共同前缀。
比如:
转发接口相同的4条路由表项,目的地址分别为35.230.32.0/21,35.230.40.0/21,35.230.48.0/21,35.230.56.0/21。进行路由聚合。
最长前缀匹配:
网络前缀越长,地址块也就越小,路由就越具体。
如果路由器查表转发分组时发现有多条路由可以选择,那么就选择网络前缀最长的那条。
相关文章:

计网第四章(网络层)(二)
目录 IPV4地址编址 第一历史阶段(分类编址): A类地址: B类地址: C类地址: D类地址(多播地址): E类地址(保留地址): 第二历史阶…...

原生微信小程序使用 wxs;微信小程序使用 vant-weapp组件
1.原生微信小程序使用 wxs 1.内嵌 WXS 脚本 2. 定义外链 wxs 3. 使用外连wxs 在这里插入图片描述 2. 微信小程序使用 vant weapp 1.安装步骤 2. 安装包管理(package.json)文件的方法 操作顺序 :文档地址 如果使用 typescript 需要操作步骤3,否则不…...

qml相关知识1
qml相关知识1 QtQuick.Controls 哪个版本支持TreeModel 和 TreeItemqt5.12开始,TreeItem 类被删除,无法使用delegate 什么时候可以用Qt5.15中没有 import QtQuick.Controls 1吗,哪个版本有control1qml如何两种版本的controls混用(…...

linux+c+qt杂记
虚拟机网络选择; 桥接模式:设置window宿主机的IP/dns,把虚拟机设置为桥接即可。 切换到终端:我的是 ctrlaltFnF1? 问题解决: Ubuntu系统下载(清华大学开源软件镜像站)(ubuntu-20.…...

shouldComponentUpdate有什么作用?
触发时机 当props或state发生变化时,shouldComponentUpdate() 会在渲染执行之前被调用。 作用 根据shouldComponentUpdate()的返回值,判断react组件的输出是否受当前state或props更改影响。默认行为是state每次发生变化组件都会重新渲染。 shouldCompo…...

华为OD-滑动窗口最大值
题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例一 输入:nums [1,3,-1,-3,5,3,6,7], k 3 输出…...

Linux:ansible自动化运维工具
环境介绍 当前所有执行权限我是在root下执行的,如果提示权限之类的,可以在每句命令前 加上 sudo ansible主服务器 192.168.0.194 另外两个客户端分别为 192.168.0.193 192.168.0.192 软件只需要在主服务器上安装,客户端不需…...

前端如何使用WebSocket发送消息
系列文章目录 文章目录 系列文章目录前言一、WebSocket的基本原理二、在前端使用WebSocket1.创建WebSocket实例2.监听事件3.发送消息三、实际应用场景总结前言 WebSocket是一种在Web应用程序中实现双向通信的技术,它允许服务器和客户端之间实时交换数据。在本篇博客中,我们将…...

纸贵科技连续三年蝉联IDC中国 FinTech 50榜单
近日,国际权威市场研究机构IDC公布了“2023 IDC中国FinTech 50榜单”。作为领先的区块链技术和解决方案服务商,纸贵科技凭借过硬的区块链技术和丰富的金融科技创新成果,连续第三年荣登IDC中国FinTech 50榜单。 IDC中国FinTech 50榜单是金融科…...

台积电美国厂施工现场混乱,真令人头痛 | 百能云芯
近日,英伟达公司的财报表现异常亮眼,摩根士丹利不仅点名了台积电成为最大的受益者,还预测每售出一颗H100英伟达芯片,台积电就能获得900美元的利润。然而,美国媒体却曝出了一则不利的消息,称美国亚利桑那州的…...

React绑定antd输入框,点击清空或者确定按钮实现清空输入框内容
其实实现原理和vue的双向绑定是一样的,就是监听输入框的onChange事件,绑定value值,当输入框内容发生变化后,就重新设置这个value值。 示例代码:我这里是统一在handleCancel这个函数里面处理清空逻辑了,你们…...

Springboot整合liquIbase组件
liquIbase方式 1、添加依赖 <!-- Liquibase 依赖 --> <dependency><groupId>org.liquibase</groupId><artifactId>liquibase-core</artifactId> </dependency>2、添加配置项 spring:# datasource 数据源配置内容,对应…...

Apache Paimon 实时数据湖 Streaming Lakehouse 的存储底座
摘要:本文整理自阿里云开源大数据表存储团队负责人,阿里巴巴高级技术专家李劲松(之信),在 Streaming Lakehouse Meetup 的分享。内容主要分为四个部分: 流计算邂逅数据湖 Paimon CDC 实时入湖 Paimon 不止…...

计算机网络(10) --- 高级IO
计算机网络(9) --- 数据链路层与MAC帧_哈里沃克的博客-CSDN博客数据链路层与MAC帧https://blog.csdn.net/m0_63488627/article/details/132178583?spm1001.2014.3001.5501 1.IO介绍 1.IO本质 1.如果数据没有出现,那么读取文件其实会被阻塞住…...

学习中ChatGPT的17种用法
ChatGPT本质上是一个聊天工具,旧金山的人工智能企业OpenAI于2022年11月正式推出ChatGPT。那么,ChatGPT与其他人工智能产品相比有什么特殊呢? 它除了可以回答结构性的问题,例如语法修正、翻译和查找答案之外。最关键的是它能够去解…...

融合CDN 如何有效的抵抗DDoS攻击
绝大部分对外网站所有者都离不开CDN的支持,据统计,全球高达70%的互联网流量都是通过CDN来进行缓存和加速的,不论是国外知名的CDN厂商:如Cloudflare、AWS、Akamai等,还是国内主流的CDN厂商阿里云华为云腾讯云等…...

Git 原理与使用
1.版本控制器 所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。 ⽬前最主流的版本控制器就是 Git 。Git 可以控制电脑…...

如何批量加密PDF文件并设置不同密码 - 批量PDF加密工具使用教程
如果你正在寻找一种方法来批量加密和保护你的PDF文件,批量PDF加密工具是一个不错的选择。 它是一个体积小巧但功能强大的Windows工具软件,能够批量给多个PDF文件加密和限制,包括设置打印限制、禁止文字复制,并增加独立的打开密码。…...

【Unity 工程化】unity一些资源路径用途
Resources Resources 目录用于存放可以通过 Unity 的 Resources.Load 函数进行加载的资源。这些资源会在构建时被打包为一个单独的资源包,因此它们必须满足一些 Unity 所要求的命名和文件夹结构规则。由于这些资源被打包在一起,因此在构建后的游戏中可以…...

使用Docker进行模型部署
一、常见的模型部署场景 实时的、小数据量的预测应用 部署方式:采用python-httpserve应用部署(如flask, fastApi, django),缺点是可能需要跨环境,从Java跨到Python环境实时的、大数据量的预测应用 部署方式࿱…...

第59步 深度学习图像识别:误判病例分析(TensorFlow)
基于WIN10的64位系统演示 一、写在前面 本期内容对等于机器学习二分类系列的误判病例分析(传送门)。既然前面的数据可以这么分析,那么图形识别自然也可以。 本期以mobilenet_v2模型为例,因为它建模速度快。 同样,基…...

【Vue框架】基本的login登录
前言 最近事情比较多,只能抽时间看了,放几天就把之前弄的都忘了,现在只挑着核心的部分看。现在铺垫了这么久,终于可以看前端最基本的登录了😂。 1、views\login\index.vue 由于代码比较长,这里将vue和js…...

Python21天打卡Day16-内置方法map()
在 Python 中,map() 方法是一个内置的函数,用于将函数应用于可迭代对象(如列表、元组等)中的每个元素,返回一个包含结果的迭代器。 map() 方法的语法如下: map(function, iterable)function:表…...

伦敦银和伦敦金的区别
伦敦银河伦敦金并称贵金属交易市场的双璧,一般投资贵金属的投资者其实不是交易伦敦金就是交易伦敦银。相信经过一段时间的学习和投资,不少投资者都能分辨二者的区别。下面我们就来谈谈伦敦银和伦敦金有什么异同,他们在投资上是否有差别。 交易…...

【从零学习python 】92.使用Python的requests库发送HTTP请求和处理响应
文章目录 URL参数传递方式一:使用字典传递参数URL参数传递方式二:直接在URL中拼接参数获取响应头信息获取响应体数据a. 获取二进制数据b. 获取字符数据c. 获取JSON数据 进阶案例 URL参数传递方式一:使用字典传递参数 url https://www.apiop…...

Python requests实现图片上传接口自动化测试
最近帮别人写个小需求,需要本地自动化截图,然后图片自动化上传到又拍云,实现自动截图非常简单,在这里就不详细介绍了,主要和大家写下,如何通过Pythonrequests实现上传本地图片到又拍云服务器。 话不多说&a…...

【LeetCode-面试经典150题-day13】
目录 141.环形链表 2.两数相加 21.合并两个有序链表 138.复制带随机指针的链表 92.反转链表Ⅱ 141.环形链表 题意: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,…...

taro.js和nutui实现商品选择页面
1. 首先安装 Taro.js 和 NutUI: npm install -g tarojs/cli npm install taro-ui 2. 创建 Taro 项目并进入项目目录: taro init myapp cd myapp 3. 选用 Taro 模板一并安装依赖: npm install 4. 在页面目录中创建商品选择页: taro cre…...

数据结构--算法的时间复杂度和空间复杂度
文章目录 算法效率时间复杂度时间复杂度的概念大O的渐进表示法计算实例 时间复杂度实例 常见复杂度对比例题 算法效率 算法效率是指算法在计算机上运行时所消耗的时间和资源。这是衡量算法执行速度和资源利用情况的重要指标。 例子: long long Fib(int N) {if(N …...

Vue中使用element-plus中的el-dialog定义弹窗-内部样式修改-v-model实现-demo
效果图 实现代码 <template><el-dialog class"no-code-dialog" v-model"isShow" title"没有收到验证码?"><div class"nocode-body"><div class"tips">请尝试一下操作</div><d…...