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

Linux:ip和ip协议的初步认识

文章目录

  • ip协议基本认识
  • ip协议的报头
  • 网段划分
  • ip的类型划分

ip协议基本认识

前面对于TCP的内容已经基本结束了,那么这也就意味着在传输层也已经结束了,那么下一步要进入的是的是网络层,网络层中也有很多种协议,这里主要进行解析的是ip协议

前面的TCP协议层把一大堆数据看起来是传输给了对方,那么实际上真的传输过去了吗?实际上只是把数据交给了网络层,而在网络层中也会对应的进行报头的封装等等内容

在对于网络层的认识前,要先明确一个概念,比如我们说有传递报文可靠的能力是代表确实一定能可靠传递吗?其实这两个概念并不等价,在网络协议栈中,TCP扮演的角色是提供可靠性的策略,比如说有对应的超时重传,快重传,流量控制,滑动窗口,阻塞控制等,但这些其实都是所谓的可靠性策略,对于真正进行传输的其实还是对应的网络层,ip协议,因此我们说ip的本质就是有能从主机a到主机b进行传输报文的能力,本质上来说它是一种能力,但是至于能不能传输过去也不敢保证,只是传输过去的概率比较大

那在当代网络的传输来说,ip协议能够保证以较大概率能够传递过去,而TCP又能提供可靠的策略,二者相结合,就能真正做到基本100%可靠的进行网络传输了

在这里插入图片描述
在进行传输的时候,数据包就会在路由器中进行传输,这是宏观上建立起的一个基本的认识

我们平时使用的设备,不管是任何设备,它一定是处于一个子网当中的,那这个子网和子网之间就会借助路由器来进行链接,在子网当中可能会存在很多个设备,例如有主机a和主机b,那主机a要发送数据给主机b,就意味着它一定是会借助路由器进行传输转发,说白了就是会跨越很多的子网,所以对于网络的理解,要首先理解到它是由一个一个的子网构成的,那么宏观上来讲,ip的报文就会在这个网络当中进行不断的转发,最后从源ip地址传递到了目标ip地址,凭借的就是这些很多的路由器进行转发的工作

ip协议的报头

在这里插入图片描述
对于ip协议的理解,必然要涉及到两个问题,这里先进行第一个问题:

1. 报头和有效载荷如何进行分离?

结论是固定长度和自描述字段,这个和TCP协议其实是一样的,这里就不过多进行说明了

2. 报文如何进行交付?

结论是使用8位协议,具体的使用如下所示

下面对于ip协议的协议字段进行理解

8位生存时间

这个字段是什么意思呢?下面我给出这样的一个场景:当一个ip的报文被发送出去之后,那么这个报文就会在网络当中进行转发,假如现在这个目标主机已经离线了,或者有其他原因,反正是处于不可应答的状态了,那么就会导致这个报文会被一直转发,在网络中自然是不会允许这样的情况出现的,所以就会提前设置好对应的8位生存时间这样的概念,使得最终这个报文在路由器的跳数是固定的,如果接受到一个跳数为0的报文,说明这个报文已经没用了,此时就把这个报文直接丢弃掉就可以,所以这个其实就是一个计数器

8位协议

那这个字段是做什么的呢?一句话来说,8位协议就是指的是要把报文交付给上层的哪一个协议,这个字段的作用就是用来表示要交付的协议,比如下面要发送给传输层,那么这个里面就要填写的是TCP协议,表示下一步要交付给传输层

32位源ip地址和32位目的ip地址

在进行TCP协议的学习中有源端口和目的端口,而在ip协议当中存放的是源ip地址和目标ip地址,在报文进行传输的时候是经过路由器进行传输的,而路由器的传输实际上是只会在ip层进行传输的

网段划分

下面要介绍的内容是对于网段划分的概念

在这里插入图片描述
对于路由器来说,它是工作在网络层的,所以这就意味着在原则上,路由器看不到主机上的端口号,它能看到的就是一个一个的ip地址,而在ip地址当中其实是可以分成两个部分的,一个叫做网络号,一个叫做主机号,所谓网络号就是在网络建设的过程当中,为了保证两个相互连接的网站具有不同的标识,而主机号则是在同一个网段中的主机之间具有相同的网络号,但是必须要有不同的主机号

原则上来说,路由器本质上也是一个子网的主机,所以它也是需要配置对应的ip地址的,而路由器是要进行网络传输的,这就意味着它必须要同时存在在至少两个子网当中,所以就意味着路由器起码有两个ip,那如何理解路由器有两个ip?这里可以简单理解为是路由器的内部是有多张网卡的

路由器的一般来说是子网当中的第一个设备,所以它的ip地址一般是网络号.1,而路由器的功能这里抛出一个概念,它不仅仅是用来进行报文的转发,同时它还可以进行构建子网,也就是局域网,换句话说就是子网当中的ip地址都是怎么来的?结论是由路由器进行分配的,在一个子网当中,如果出现了一个新的主机,就要构建一个新的ip地址,子网ip本质上是让路由器来帮你维护的,这样的ip一般就是我们所谓的内网ip,而之前所谈的主机a和主机b进行数据包转发的ip,这个叫做是公网ip,那至于这两个有什么区别,下面的内容会进行理解

所以至此就已经完成了对于路由器的认知,它是可以进行子网的划分的,路由器本身也是一个主机,这就意味着它的上面也有操作系统,那这个操作系统是要管理什么?在路由器上面会进行ip的分配,这就意味着它是能够进行网络的管理,如果让用户手动进行管理ip是非常马粪的一件事,所以就诞生了一种技术叫做DHCP,这种技术就是能够自动给新增的主机派生对应的ip地址,同时可以保证ip地址不重复,所以从某种意义来说,路由器也可以叫做是DHCP服务器,又能构建子网,还能进行ip地址的管理工作

ip的类型划分

下面要进行描述的是ip的划分,那这块要如何进行描述?先聊聊各种ip类型

在这里插入图片描述

ip地址是32位,换算下来最大有42亿多种方案,ip本质上来说是一个有限的资源,全世界只要需要入网的设备都是要有对应的ip资源的,所以换句话说这也可以看成是一份公共资源,每个国家都要对于这份资源进行抢占,才能有使用网络的权利

那这就意味着这块资源不能被随便的使用,要有合适的划分管理的方式,全球为了进行网络资源的管理,因此有了网络地址和主机地址进行划分的依据原则,如上图所示

但是这样的划分方法很快就出现了问题,大多数的组织都喜欢申请b类网络,因为这种网络的主机号和网络号都比较合适,用起来是最舒服的,但是问题是,即便是b类网络,也会面临主机号明显不会被使用的问题,可能申请的这个ip可以容纳很多的主机,但是实际的使用中只用了2个地址,那这就会造成大量的ip地址的浪费,那这必然是不合适的,所以就需要诞生一种新的划分方法:子网掩码

子网掩码

子网掩码可以理解为是一种新的方式来区分网络号和主机号,子网掩码就是一个32位的正整数,只不过是一串01,这个子网掩码的特点是通常把它写成二进制的话,通常是用一串0来结尾,将IP地址和子网掩码进行 “按位与” 操作,得到的结果就是网络号,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关

在这里插入图片描述

可见,IP地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围
IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68,子网掩码的高
24位是1,也就是255.255.255.0

那问题是,这个子网掩码在报文中也并没有体现,实际上这个内容是在路由器的内部进行配置的,所以说通常你的报文在经过路由器转发的时候,要先按照目的网络进行转发,为什么这么说,其原因就是因为路由器会拿着这个目标报文和和自己内部的子网掩码,按位与就形成了网络号,而路由器的内部是可以配置多个ip的,每个路由器连接哪个子网它内部是清楚的,所以就能够把这份报文经过网络进行转发,所以就形成了整个网络世界

相关文章:

Linux:ip和ip协议的初步认识

文章目录 ip协议基本认识ip协议的报头网段划分ip的类型划分 ip协议基本认识 前面对于TCP的内容已经基本结束了,那么这也就意味着在传输层也已经结束了,那么下一步要进入的是的是网络层,网络层中也有很多种协议,这里主要进行解析的…...

Android12 简单的共享内存驱动实现 参考Ashmem

Android12 共享内存驱动实现 SOC:RK3568 system:Android12 概述: 1. 概述 Ashmem(Anonymous Shared Memory,Android 匿名共享内存),它基于 mmap 系统调用,可以让不同进程将同一段…...

物理安全和逻辑安全在信息安全中的重要作用

在信息时代,信息安全已经成为企业和个人不可或缺的重要组成部分。物理安全和逻辑安全作为信息安全的两大支柱,发挥着至关重要的作用。 什么是物理安全和逻辑安全? 物理安全是指通过技术手段,对计算机设备、网络设备、数据中心等…...

每日一题 --- 滑动窗口最大值[力扣][Go]

滑动窗口最大值 题目:239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1…...

TensorBoard可视化+Confustion Matrix Drawing

for later~ 代码阅读 1. 加载trainset import argparse import logging import os import numpy as npimport torch from torch import distributed from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterfrom backbones import get_…...

012——LED模块驱动开发(基于I.MX6uLL)

目录 一、 硬件原理图 二、 驱动程序 三、 应用程序 四、 Makefile 五、操作 一、 硬件原理图 又是非常经典的点灯环节 ,每次学新语言第一步都是hello world,拿到新板子或者学习新的操作系统,第一步就是点灯。 LED 的驱动方式&#xff0…...

基于springboot实现房屋租赁管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房屋租赁系统演示 摘要 房屋是人类生活栖息的重要场所,随着城市中的流动人口的增多,人们对房屋租赁需求越来越高,为满足用户查询房屋、预约看房、房屋租赁的需求,特开发了本基于Spring Boot的房屋租赁系统。 …...

168.乐理基础-中古调式概述

如果到这五线谱还没记住还不认识的话去看102.五线谱-高音谱号与103.五线谱-低音谱号这两个里,这里面有五线谱对应的音名,对比着看 如果不认识调号去看112.五线谱的调号(一)、113.五线谱的调号(二)、114.快…...

【项目实战】【Docker】【Git】【Linux】部署V2rayA项目

今天着手了一个全新领域的项目,从完全没有头绪到成功运行,记录一下具体的部署流程 github项目链接V2rayA 一开始拿到以后完全没有抓手,去阅读了一下他的帮助文档 写着能用docker运行,就去下载了一个Docker配置了一下 拉取代码到…...

mac 切换 jdk

查看 mac 上都有哪些版本 /usr/libexec/java_home -V看准版本切换 按前缀切换 比如 export JAVA_HOME/usr/libexec/java_home -v 1.8这样会随机一个 1.8 的 如果想再确定一个比如 openjdk export JAVA_HOME/usr/libexec/java_home -v 1.8.0_292这个方式是临时的&#xff0c…...

MD5加密返回32位密文字符串

前言: 项目中需要调用其他系统的 api 接口,接口使用的是按一定规则生成 MD5 密文作为签名来进行身份验证,本文仅记录 32 位 MD5 密文的生成方式,仅供参考。 什么是MD5 加密? MD5 加密是一种加密算法,MD5…...

npm常用命令技巧

NPM (Node Package Manager) 是 JavaScript 的包管理工具,广泛用于管理项目中的依赖。无论是前端项目还是Node.js后端项目,NPM 都扮演着重要的角色。本文将介绍 NPM 中常用的几个命令,并提供相应的代码示例。 1. 初始化项目:npm …...

intellij idea 使用git撤销(取消)commit

git撤销(取消) 未 push的 commit Git,选择分支后,右键 Undo Commit ,会把这个 commit 撤销。 git撤销(取消) 已经 push 的 commit 备份分支内容: 选中分支, 新建 分支,避免后续因为操作不当,导…...

【计算机网络】四层负载均衡和七层负载均衡

前言 1、分层方式 首先我们知道,在计算机网络中,常用的协议分层方式:OSI和TCP/IP,以及实际生产中使用的协议划分方式。 在OSI中,各层的职责如下: 应用层:对软件提供接口以使程序能使用网络服…...

IP-guard WebServer 任意文件读取漏洞复现

0x01 产品简介 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 0x02 漏洞概述 由于IP-guard WebServer /ipg/static/appr/lib/flexpaper/php/view.php接口处未对用户输入的数据进行严…...

【IoTDB 线上小课 01】我们聊聊“金三银四”下的开源

关于 IoTDB,关于物联网,关于时序数据库,关于开源...你是否仍有很多疑问? 除了自己钻研文档,群里与各位“大佬”的沟通,你是否还希望能够有个学习“捷径”? 天谋科技发起社区小伙伴,正…...

2024053期传足14场胜负前瞻

2024053期售止时间为4月6日(周六)21点00分,敬请留意: 本期深盘多,1.5以下赔率1场,1.5-2.0赔率8场,其他场次是平半盘、平盘。本期14场难度中等。以下为基础盘前瞻,大家可根据自身判断…...

C语言------冒泡法排序

一.前情提要 1.介绍 冒泡法排序法: 1)冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的列表,一次比较相邻的两个元素,并且如果它们的顺序错误就将它们交换过来。重复这个过程直到没有需…...

C#(C Sharp)学习笔记_Enum枚举类型【十三】

什么是枚举类型 枚举类型(Enum) 是由基础整型数值类型的一组命名常量定义的值类型。枚举包含自己的值,但不能继承或传递继承。 语法 // enum enum_name // enum_name variable enum_name.enum_value// 定义一个枚举类型——例如: enum enum_name {va…...

乐知付-如何制作html文件可双击跳转到指定页面?

标题: 乐知付-如何制作html文件可双击跳转到指定页面? 标签: [乐知付, 乐知付加密, 密码管理] 分类: [网站,html] 为了便于买家理解使用链接进行付费获取密码;现开发个小工具,将支付链接转为浏览器可识别的文件,双击打开即可跳转到…...

电工技术学习笔记——直流电路及其分析方法

一、直流电路 电路的组成 1. 电压和电流的参考方向 电压(Voltage):电压是电场力对电荷产生的作用,表示为电荷单位正电荷所具有的能量。在电路中,电压通常被定义为两点之间的电势差,具有方向性,…...

详解python中的迭代

如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。 在Python中,迭代是通过for ... in来完成的,而很多语言比如C语言,迭代list是通过下标完…...

机器学习模型——集成算法(三)

前面我们说了bagging算法和Boosting算法 接下来我们学习Adaboost算法 Adaboost基本概念: AdaBoost (Adaptive Boosting,自适应提升): 算法原理是将多个弱学习器进行合理的结合,使其成为一个强学习器。 Adaboost采用…...

企业微信企业主体变更认证介绍

企业微信变更主体有什么作用? 说一个自己亲身经历的事情,当时我在一家教育公司做运营,公司所有客户都是通过企业微信对接的。后来行业整顿,公司不得不注销,换了营业执照打算做技能培训,但发现注销后原来的企…...

如何降低AI功耗? —— 超低功耗的仿生硬件

一、背景 仿生硬件(Bionic Hardware)这一术语通常指的是受自然界的生物系统启发而设计制造的电子或机械硬件设备,它们在功能、结构、材料、能源效率等方面模仿生物体的特性,以实现更高效、智能、自适应或环境友好的性能。在人工智…...

原型模式详解

原型模式简单的理解来说,就是复制品,用一个已经做好的成品作为原型,然后通过复制它得到新的产品。就好像细胞分裂一样。用Java来说,就是用对象创建对象,而不是通过类来创建对象。 原型模式的目的是从原型实例克隆出新的实例 ,对于那些有非常复杂的初始化过程的对象或者是…...

嵌入式开发中状态模式实现

文章目录 状态模式代码实现代码解释小结 状态模式 状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变它的行为。在嵌入式系统中,状态模式尤其适用于那些根据外部事件或内部条件频繁改变状态并且每种状态…...

目标检测——车牌数据集

一、重要性及意义 交通安全与管理:车牌检测和识别技术有助于交通管理部门快速、准确地获取车辆信息,从而更有效地进行交通监控和执法。例如,在违规停车、超速行驶等交通违法行为中,该技术可以帮助交警迅速锁定违规车辆&#xff0…...

FOC算法中为啥用PWM触发ADC中断

在FOC(Field Oriented Control,场向量控制)算法中,为什么要使用PWM(Pulse Width Modulation,脉宽调制)触发ADC(Analog-to-Digital Converter,模数转换器)中断…...

2024.4.5学习记录————嵌入式学习内容

2024.4.5学习记录————嵌入式学习内容 C语言 指针,位操作,结构体字节对齐,位段,宏的高级运用 C 基础特性:类,对象,派生,继承,运算符重载,友元&#xf…...

青岛做网站公司哪家好/企业内训机构

1.背景介绍 相信很多人手机上都收到过一些营销短信,短信里面有时候会附带一些网址,如下图 这些网址往往都是非常短,但是当我们打开之后,如果你仔细观察,中间会有跳转,最终浏览器地址栏显示的网址并不是你短…...

永州网站开发公司/疫情最新资讯

AudioTrack可以读取网络上面的,这个需要后面去添加,涉及的东西太多了, 现在看看AudioRecord,查看API : http://developer.android.com/reference/android/media/AudioRecord.html <1> : AudioRecord构造函数: public AudioRecord (int audioSource, int sampleRateInHz,…...

自己做的网站搜索不到/苹果要做搜索引擎

在判断一个网络的基本情况时&#xff0c;我们一般先在命令行下使用Ping命令&#xff0c;探测至目标地址的时延、丢包、MTU等情况。1、直接简单Ping测&#xff0c;可以查看时间和丢包情况2、使用-n参数&#xff0c;设置ping测包数量3、使用-t参数&#xff0c;一直Ping测&#xf…...

阿里云做网站号码/seo兼职工资一般多少

某明网络是一家创业公司&#xff0c;主营业务为盲盒电商。面试还没开始主要是一个笔试。但是笔试有三道题未写出来。 一 SpringBootApplication注解的组成 这道题比较简单&#xff0c;由三个注解组成&#xff0c;但是我忘了。忘了的原因是什么呢&#xff1f;是没有形成长时记忆…...

wordpress音乐列表/网站建设需要多少钱?

使用CentOS7 执行定时脚本&#xff0c;结果提示报错&#xff1a; /bin/sh: root: command not found问题在于文件 /var/spool/cron/root &#xff0c;中无需再写root。 修改之后的脚本&#xff1a; [rootlocalhost cron]# crontab -l */10 * * * * perl /home/awstats/wwwroot…...

张家港高端网站建设公司/临安网站seo

轻量级网络之GhostNet前言动机Ghost模块G-bneckGhostNet网络结构实验性能消融实验Ghost模块 pytorch代码欢迎交流&#xff0c;禁止转载&#xff01;&#xff01;前言 《GhostNet: More Features from Cheap Operations》 论文地址&#xff1a;GhostNet: More Features from Ch…...