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

IPv 4

IP协议

网络层主要由IP(网际协议)和ICMP(控制报文协议)构成,对应OSI中的网络层,网络层以实现逻辑层面点对点通信为目的。目前应用最广泛的IP协议为IPv4

基本概念给出
主机:配有IP地址但不具有路由控制能力的设备(广义上有IP就可以称为主机)
路由器:配有IP地址且具有路由控制能力,也叫做网关
节点:主机和路由器的统称

网络层与数据链路层

在已经有MAC地址的情况下为什么还要给出IP地址?原因在于数据包在网络中传输过程中需要经过很多个中间节点,从一个节点到另一个节点的行为称作‘’,必须通过mac地址来判断下一跳的节点,而IP地址为跳转提供了一个全局方向。
总的来说,源IP地址和目标IP地址在整个数据包转发的过程中是保持不变的,为数据传输提供一个全局方向,而源mac地址和目标mac地址在数据包转发过程是时刻变化的,为数据传输提供一个局部方向。
在这里插入图片描述

IPv4

IP地址

IP地址用于网络层中各个主机能够与其他主机相互通信的目标地址,在一个网段中每个主机的IP地址都是全局唯一的,即以IP地址作为域中唯一标识。
对于设有网卡的主机来说,其至少需要配置一个IP地址;
对于路由器来说,其至少需要配置两个IP地址。

路由控制

路由控制旨在将数据包成功地发送到目标地址,由于网络结构复杂,数据包在传输的过程中需要进行多次跳转动作,甚至是跨网段传输,往什么方向跳转,哪个网段跳转,全靠路由控制,没有路由控制会导致数据包在网络中随意跳转造成数据丢包和网络拥塞。
路由器就是负责路由控制的硬件
在这里插入图片描述
由于数据包在传输的过程中往往会经历多次跳转,因此IP路由也被称为多跳路由,多条路由的特点是路由器在转发数据包时仅告知下一跳地址,下一跳路由器仅告知下下一跳地址,直至到达目标主机。
可以参考原书给出的火车旅游例子来类比多跳路由:
在这里插入图片描述

路由控制表

为了将数据包发送给目标主机,路由器内部维护者一张路由控制表,存储其他路由器与IP地址的映射关系,此处的IP地址不是特定的一台主机,而是一个网段,具体之后会讲。
在这里插入图片描述

封装数据帧

网络中不同的数据链路实现相异,如果不进行任何封装就直接交给上层(传输层),那么传输层所要做的工作可就太多了,因此网络层需要对数据链路层的数据帧进行封装后向上统一交付。
不同数据链路最大的区别在于其最大传输单位(MTU)的不同,以太网帧最大正文长度为1500字节,当上层传输的数据大于MTU时,就需要网络层对数据进行分片处理,这个过程称为IP分片,将一个大数据包拆分成多个小于MTU的小数据包进行发送;必要的,网络层也需要有将多个小数据包合并为一个大数据包的能力,这个过程称为IP重组

虽然网络层提供了分片和重组的能力来满足不同的数据链路,但是在实际过程应该尽可能的避免传输数据大于MTU,本质原因在于IP属于面向无连接型,即不提供可靠传输,数据包越多意味着丢包的概率也大。

IPv4格式

IPv4地址在计算机内部以32位正整数表示,人所看到的IPv4地址以点分十进制的格式展示(0.0.0.0~255.255.255.255)
IPv4地址由网络(段)标识主机标识两部分构成,前者用于标识一个网段,后者标识网段中的一个主机
网段和主机位数分配是决定着IP地址的利用率
在这里插入图片描述

IPv4分类

以固定位数进行IP分类可以将IPv4地址划分为A\B\C\D四大类(有些书上是ABCDE五大类,不过E类从未被使用)
A类地址首位为0,前8位代表网段,后24位代表主机 0.0.0.0~127.0.0.0
B类地址前2位为10,前16位代表网段,后16位代表主机 128.0.0.1~191.255.0.0
C类地址前3位为110,前24位代表网段,后8位代表主机 192.168.0.0~239.255.255.0
D类地址前4位为1110,32位均代表网段(由于没有主机标识常用于多播) 224.0.0.0~239.255.255.255

每一类IP地址一个网段中能容纳的最大主机数N=2^主机位数-2
减2的原因在于规定每一个网段中主机位为0活255作保留,0为任意地址,255为广播地址

广播地址

广播地址用于在一个数据链路中相互连接的主机之间发送数据包,将目标IP地址主机标识设置为255,(目标mac地址设置为FF:FF:FF:FF:FF:FF)
广播分为直接广播本地广播
本地广播是一台主机向当前数据链路中的所有节点发送数据包(路由器也会收到,但不会对其进行转发)
直接广播是一台主机向另一个数据链中的所有节点发送数据包
在这里插入图片描述

IP多播

多播是对于广播的优化,频繁的广播会造成网络拥堵,可能会产生大量的垃圾数据包(并不是所有的主机都希望收到广播数据的),因此衍生出了多播技术,多播旨在向多个特定主机发送数据包,而非整个数据链路中的主机,也就不存在垃圾数据包的问题。多播适用D类IPv4地址。
多播可以跨数据链路发送。
单播、广播、多播对比图
在这里插入图片描述

子网掩码

直接只用定长分类的IP地址会造成极大的IP地址资源浪费,例如B类IP地址的一个网段可以容纳6w多台主机,但这一般不可能,A类IP地址的一个网段所浪费的IP地址更是夸张,因此不得不引入新的手段对原有的4大类IP地址进行细粒度的划分,目前普遍采用子网掩码

子网掩码也是一个32位数,比特位为1代表网段标识,为0代表主机标识,1和0必须是连续的,不可能出现101…这种情况,将子网掩码与IP地址本身进行按位或的结果就是一个新的IP类(按位或之后的结果一定是一个前半部分全1后半部分全0的32位数),有了子网掩码就可以更加灵活的动态调整网络标识长度了。
在这里插入图片描述

公网、私网

公网私网的划分也是对IPv4资源不足的一种治标手段

规定给出
10.0.0.0~10.255.255.255(10/8) A类私网
172.16.0.0~172.31.255.255(172.16/12)B类私网
192.168.0.0~195.168.255.255(192.168/16)C类私网

除此之外的所有IPv4称为公网IP,
公网IP是全球唯一的,绝不允许重复,私网IP是在不同网段中可以重复的,现代个人计算机普遍采用私网IP,而路由器和大型服务器采用公网IP,通过NAT技术可以实现私网与公网交互(NAT在后续章节给出解释)

路由控制

上面已经点过路由控制就是路由器通过自身所管理的路由控制表对数据包进行有方向的转发。IP协议始终认为路由控制表是正确的,路由控制表中的数据如何定义由独立的路由协议制作

路由控制表中的数据为网段和下一跳路由器的IP映射,当一个数据包到达路由器时,通过查询路由控制表可以确定下一网段,再将数据包转发给下一网段的路由器即可,直至数据包到达目标主机。如果找不到则会转发给默认路由
在这里插入图片描述

默认路由

任何网段都可以匹配的网段所对应的路由器IP称为默认路由,一般标记为default或0.0.0.0/0

主机路由

如果IP地址的32位全部充当网络标识(没有主机标识,IP/32)参与路由,则称为主机路由,使用主机路由可以精确定位,但是会造成路由表膨大,一般不推荐使用。

本地环回

环回地址用于在同一主机上的进程之间模拟网络通信,这个地址表示为127.0.0.1或localhost,这个IP地址不会流向网络。环回地址常用于调试网络程序以判断是否出现网络问题。

路由控制表的聚合

路由控制表不能太太,否则会影响查询效率。通过网络地址长度的动态调整可以对一些网段进行整合,再通过子网掩码可以对整合后的网段进行拆分
具体可参考原著给出的参考图
在这里插入图片描述
结合图示可以看到聚合前的路由器C表完全没有必要存放多个下一跳地址是路由器A或B的网段,可以把这些网段整合(减少网络标识比特位),更具体的网段划分交给下一跳路由器处理。

相关文章:

IPv 4

IP协议 网络层主要由IP(网际协议)和ICMP(控制报文协议)构成,对应OSI中的网络层,网络层以实现逻辑层面点对点通信为目的。目前应用最广泛的IP协议为IPv4 基本概念给出 主机:配有IP地址但不具有路…...

SQL 注入漏洞 - 学习手册

0x01:SQL 注入前导知识 0x0101:SQL 注入 —— MySQL 数据库概述 知识速查:SQL 注入前导知识 SQL 注入 —— MySQL 数据库概述 获取数据库名 : select schema_name from information_schema.schemata;获取数据表名 : select table_name from …...

AVLTree 旋转笔记(根据平衡因子插入的公式,贼好理解)

平衡因子 avltree是一棵每个节点的左右子树的高度差不超过1的二叉树搜索树,对于avltree最重要的就是对平衡因子的控制。 对于旋转我们重点要注意的是三个节点,以左旋举例,需要注意的就是parent,subr,subrl。而旋转的方…...

STM32(十八):SPI通信

SPI通信: SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)主机输出从机输入、MISO&…...

Redis持久化机制(RDBAOF详解)

目录 一、Redis持久化介绍二、Redis持久化方式1、RDB持久化(1) 介绍(2) RDB持久化触发机制(3) RDB优点和缺点(4) RDB流程 2、AOF(append only file)持久化(1) 介绍(2) AOF优点和缺点(3) AOF文件重写(4) AOF文件重写流程 三、AOF和RDB持久化注意事项 一、Redis持久化介绍 Redis…...

蛋白质结构中pdbx_strand_id和entity_id相互转化

在蛋白质结构中,entity_id 和 pdbx_strand_id 表示的是不同的概念,涉及到不同层次的信息。 1. entity_id (实体 ID): 定义:entity_id 标识蛋白质结构中的一个“实体”(entity)。一个实体可以是一个多肽链、DNA 链、RNA 链,或者某些小分子(如辅因子、配体等)。特点:每…...

【父子线程传值TransmittableThreadLocal使用踩坑-及相关知识拓展】

文章目录 一.业务背景二.TransmittableThreadLocal是什么?三.问题复现1.定义注解DigitalAngel2.定义切面3.TransmittableThreadLocal相关4.线程池配置信息5.Controller6.Service7.测试结果8.问题分析9 解决办法及代码改造10.最终测试: 四.与 ThreadLocal…...

03 快乐树

快乐树 我们由题可以得出结论:一共有三种情况,但实际中第三中情况不存在。 证明第三中情况不存在: 我敲的代码 public boolean isHappy(int n) {int slown;int fastn;while(true) {int sum0;while(slow!0) {sum(slow%10)*(slow%10);slow/1…...

springboot+react实现移动端相册(上传图片到oss/ 批量删除/ 查看图片详情等功能)

相册页面及功能展示: react前端结构及代码: Java后端结构及代码 数据库结构: photo: user 这是首个利用AI自有知识构建的简易相册系统,项目是react构造前端spring boot构造后端。 前端有四个主要页面&#xff1…...

Python、R语言Lasso、Ridge岭回归、XGBoost分析Airbnb房屋数据:旅游市场差异、价格预测|数据分享...

全文链接:https://tecdat.cn/?p37839 分析师:Kefan Yu 在大众旅游蓬勃发展的背景下,乡村旅游已成为推动乡村经济、社会和文化发展的关键力量。当前,乡村旅游接待设施主要以招待所、小宾馆和农家乐等形式存在。然而,一…...

Spring Boot驱动的交互式作业管理系统:师生共评功能实现

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...

基于SSM的旅游网站【附源码】

基于SSM的旅游网站(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 用户管理 5.1.2 …...

Python实现将目标文本批量存入Word,并将文本段落的开头进行缩进处理(11)

前言 本文是该专栏的第11篇,后面会持续分享Python办公自动化干货知识,记得关注。 在用python对目标文本进行批量自动化操作的时候,你可能会遇到这样的需求——“现有大批量的文本内容,需要通过python将其批量存入docx(word)文档中,而且每个段落的开头需要进行缩进处理”…...

el-select 下拉框选项文字过长解决方案

首先给下拉框设置类名&#xff0c;即popper-class属性&#xff0c;并且给el-option增加title属性 <el-selectv-model"item.portrayalItem"v-loadmore"{ method: lazyItemList, item, index }"multiplefilterableremotepopper-class"dropDown-sele…...

C语言基础语法——类型转换

数据有不同的类型&#xff0c;不同类型数据之间进行混合运算时涉及到类型的转换问题。 转换的方法有两种&#xff1a; 自动类型转换&#xff08;隐式转换&#xff09;&#xff1a;遵循一定的规则&#xff0c;由编译系统自动完成强制类型转换&#xff08;显示转换&#xff09;…...

来电无通话界面问题分析

1、问题描述 场测反馈&#xff0c;无法接到电话&#xff0c;被叫失败。 2、Log分析 从Modem log看&#xff0c;空口确实有上报到有相关通话信息 排查AT相关Log&#xff0c;确实有上报AT< EAIC相关命令 查看相关AT指令 /* * EAIC: <call_id>,<number>,<type…...

物理学基础精解【70】

文章目录 加速度平均加速度和瞬时加速度一、定义二、性质三、数学原理与公式四、例子例题例题一例题二 曲线运动中加速度速率&#xff08;速度大小&#xff09;与曲线运动加速度方向与曲线运动总结 加速度和角加速度加速度与角加速度的基本定义圆周运动中的关系其他运动类型中的…...

HCIP--以太网交换安全(三)MAC地址漂移防止与检测

MAC地址漂移防止与检测 一、MAC地址漂移防止与检测知识点 1.1MAC地址漂移的概述 MAC地址漂移是指交换机上一个vlan内有两个端口学习到同一个MAC地址&#xff0c;后学习到的MAC地址表项覆盖原MAC地址表项的现象。 1.2.MAC地址漂移的防止方法 &#xff08;1&#xff09;配置…...

CSS3--美若天仙!?

免责声明&#xff1a;本文仅做分享~ 目录 CSS引入方式 选择器 盒子尺寸和背景色 文字控制属性 单行文字 垂直居中 字体族 font复合属性 文本对齐方式 文本修饰线 color 文字颜色 ----- 复合选择器 伪类选择器 超链接伪类 CSS特性 继承性 层叠性 优先级 Emmet …...

详细版的Jsoncpp的使用,包括在VS环境下配置

目录 准备环境VS 环境下配置编译使用 基础概述Json 数组Json 对象 Jsoncpp 的使用ValueFastWriterReader示例 如果想要 Json 部署在 Linux 上 参考: https://blog.csdn.net/2303_76953932/article/details/142703683?spm1001.2014.3001.5502 C中原生不支持 Json&#xff0c;所…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...