网络层协议 --- IP

序言

 在这篇文章中我们将介绍 IP协议,经过这篇文章的学习,我们就会了解运营商到底是如何为我们提供服务的以及平时我们所说的内网,公网到底又是什么,区别是什么?

IP 地址的基本概念

1. IP 地址的定义

 每一个设备接入互联网时,都会被分配一个或多个唯一的 IP 地址,用于在网络上设别和定位该设备。这句话放在学习本章内容之前肯定是没问题的,但是在认识了 NAT 技术之后就要打个问号了。
IP 地址(IPv4 地址)由 32 位二进制数(8个字节)来表示:
在这里插入图片描述

但是这种表示方式非常不便于我们阅读比较,于是将每一个字节以十进制数表示:
在这里插入图片描述

现在看起来舒服多了,为了避免数字混淆在一起,最后加上 . 来分割:
在这里插入图片描述
这就变成了我们熟悉的表达方式了,便于我们查看以便于我们和其他的 IP 比较。

2. IP 地址的分类

 为了更好地适应不同网络规模、主机数量以及特殊应用需求,国际网络组织将 IP 分成了五类,分别是:
在这里插入图片描述

💡知识补充:网络号就像你的班级号,主机号就像你在你班级里面的序号一样。

D,E 类主机,前者多用于多播通信(比如直播,视频通信,在线游戏等场景),后者为将来使用保留的地址,两者都不属于今天的讨论范畴之内。

 不同类的网络所能容纳的主机数目也是大相径庭的,如下图:

类别所能容纳最大主机数
A16,777,214
B65,534
C254

是怎么计算的呢?我们所计算的结果是一个类型的网络在同一个网络下(网段相同)所能容纳最大主机数:2 ^ (主机号) - 2。咦,你在这里为什么要减 2 呀?

就拿 C 类网络举例吧,现在一个 C 类网络的网络号是:

他能表示的主机号的范围是:
在这里插入图片描述
但是请记住,这里存在两个十分特殊的主机号,主机号全为 1 和 全为 0 地址。

  • 主机号全为 1 指定某个网络下的所有主机,用于广播
  • 主机号全为 0 指定某个网络

 这样的分配在当初看来是没有什么大问题的,但是现在弊端慢慢显现出来了。为什么呢?特别是 A 这种划分方式在小型网络中显得过于浪费,因为即使一个网络只有几十台主机,也需要分配一个 A 类地址,导致大量的IP地址资源被闲置‌。现在本来就 IP 短缺


CIDR 技术

 为了解决 IP 分类中存在的利用率不高的问题,提出了 无分类地址 CIDR 的技术。但是请记住,这个技术只是 提高了 IP 的利用率,本质是 IP 还是存在缺乏的问题。
 这个技术的亮点我认为是将 定长的网络号 变得灵活起来,他引入了 子网掩码(subnet mask) 来区分网络号和主机号,具体的表示方式为:

  • 将子网掩码和 IP 地址按位计算 AND,就可得到网络号,比如:在这里插入图片描述
    网络号 = 10.201.111.197 & 255.255.0.0 = 10.201.0.0

  • 还有一种表达方式为:a.b.c.d/x。在这里的 a.b.c.d 代表 IPx 代表前 x 位是网络号

这样的网络号更灵活,我们可以在现有的 A,B 类网上进行更加精细的划分子网,使 IP 得到充分地使用。


私有 IP 地址和公网 IP 地址

 通常遇到不会的问题,我们一般都可以通过三联问:这是什么?为什么?怎么样?来解决问题。在这里我们也采取这样的方式。

1. 这是什么

 私有 IP 地址是指在私有网络中使用的 IP 地址,这些地址仅在私有网络内部使用,不能在公共网络(如互联网)上路由。
 使用私有 IP 地址可以节省并优化公共 IP 地址的分配和使用。不同的私有网络下 私有 IP 是可以重复的
 如果一个组织内部组建局域网,IP 地址只用于局域网内的通信,而不直接连到 Internet 上, 并且规定了用于组建局域网的私有 IP 地址:

10.*,前 8 位是网络号,共 16,777,216 个地址
172.16.*到 172.31.*,前 12 位是网络号,共 1,048,576 个地址
192.168.*,前 16 位是网络号,共 65,536 个地址

包含在这个范围中的, 都成为私有 IP, 其余的则称为全局 IP(或公网 IP)。

2. 为什么需要私有 IP

 为什么需要私有 IP ,很显然是 IP 不够用了。我们简单计算一下,IPV4 所能最大容纳的 IP 数量是 42亿左右,但是大家可以通过下述的数据可以看到:
在这里插入图片描述
早就不够用了,CIDR 方式只是提高使用率,治标不治本。

3. 怎么样工作的

 现在知道了他产生的原因,现在我们需要知道他为什么可以做到?
在这里插入图片描述

 这是一个很简单的网络结构图,我们的家庭路由器直接就连上了运营商服务器。但是实际情况要复杂的多,比如你家的路由器会先接上小区的路由区,再连上区里的,市里的,省里的…最后再到运营商的服务器。

 你需要上网,也就是你需要一个 IP 地址,这才能向你发送数据。但是我们并没有去手动的配置一个呀。没关系,当你连上你家的路由器时,他自动的给你分配一个 IP 地址。路由器会对每个连上他的设备都执行该操作,这叫构建子网。这种技术叫做:DHCP,能够自动的给子网内新增主机节点分配 IP 地址,避免了手动管理IP的不便。

 一般家用的路由器都是采用第三种私有 IP,因为你家连接数很少嘛。好的,现在,你家有网,我家也有网,请问我们的网络号会相同吗?答案是我们都是家用的路由器,最终构建的子网网络号是一样的,甚至我们的 IP 都可能完全一样。因为家里使用的人很少,所以我们相同的概率就大了。

 好的,现在我的问题又来了,既然我们的 IP 都可能是一样的,并且 IP 不是在网络上唯一的标识符吗,那么我们的身份不会混淆出错吗?所以我们规定 私网 IP 不能出现在公网上就是这个原因,那我们怎么上网的呢?答案是:NAT(Network Address Translation,网络地址转换)是一种将私有网络地址(如局域网内部地址)转换成公共网络地址(如互联网地址)的技术。

 总结来说,就是你家的路由器会自动构建子网,不同私网下的 IP 是可以重复的,这节省了公共 IP 资源。最终通过 NAT 技术来保证你可以正常接发数据。


NAT 技术

1. NAT 技术原理

NAT 技术通过将私网 IP 转化为公网 IP 的方式,缓解了 IP 耗尽的问题,但是大家仔细想一下,会发现这有一个漏洞:
在这里插入图片描述
在这里假如主机 A 想要访问公网,当他的报文经过路由器时,会将他的源地址(内网地址)转化为一个公网 IP,并且记录在 NAT 表中(该表用于记录地址转换的映射关系)。当外部想要给内网中的设备发送消息时,就会根据该表的转换拿到目的内网中的设备。

 但是如果我这里有三个设备想要访问外网呢,也转化为三个外网地址吗?这也没节省公共 IP 地址呀。以这样的方式确实不能解决问题,肯定不能这样。大家想一下,我们一般都是采取 IP + 端口 的方式来进行通信,所以我们将该子网下的所有设备通用一个公共 IP,并且使用端口来区别每一次不同的通信:
在这里插入图片描述

2. NAT 技术的缺陷

  • 无法从外到内,很多的联网服务都是需要大家先登录才能正常使用,因为你登陆的过程也是你向该服务器发送数据的过程,才构建了一条从你的内网到外网的路径。
  • 通信过程中,如果 **NAT** 路由器重启了,所有的 **TCP** 连接都将被重置。为什么没有 UDP 呢,它不受影响吗?这是因为 UDP 是面向无连接的协议不依赖于连接状态。

网段划分

1. 什么是网段划分

 网段划分,简单来说,就是将一个大的 IP 地址空间分割成多个小的、独立的地址段。这通常通过子网划分(Subnetting)来实现,即利用子网掩码将 IP 地址分为网络部分和主机部分。 让我们网路细粒度更高,更好的被利用,避免出现闲置的情况。

2. 为什么需要网段划分

 除了提高 IP 的利用率之外,更重要的更好的进行管理,举个例子吧:大家在学校肯定都有学号吧,学号可不是随机生成的一串数字,他的每一个字段都包含着自己的含义。比如,哪个年级的,哪个学院的,哪个专业的,哪个班的,第几号。现在你在操场是捡到一个钱包,里面就有失主的学号信息,如果学号没有意义的,我们只能遍历整个学校的学生。但是该学号有着详细的信息,帮助我们快速的找到失主。
IP 不是也是如此吗,当发出信息时,计算机会首先检查目标 IP 地址是否在当前网段内。如果目标IP地址与本地网络地址在同一子网内,则数据包将直接在本地网络中传输。然而,如果目标 IP 地址不在当前网段内,计算机会将数据包发送到默认网关(通常是路由器)。路由器会查看其路由表,以确定如何将数据包转发到目标网络。路由表包含了不同网络之间的路径信息,路由器会根据这些信息将数据包发送到下一个路由器,直到数据包到达目标网络。


总结

 这篇文章快结束了,请问大家一个问题,运营商怎样给我们提供服务的:

  • 首先最基本的通信设备,没有光纤,路由器,服务器等基础设施,没有这些设备就没有最基本的通信环境
  • 数据传输,我们每天网络上传输的数据都是在人家的线路上传输

所以总结就是,此山是我开,此树是我栽,要想过此路,留下过路财😂。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【进阶OpenCV】 (4)--图像拼接

文章目录 图像拼接1. 读取图片2. 计算图片特征点及描述符3. 建立暴力匹配器4. 特征匹配5. 透视变换6. 图像拼接 总结 图像拼接 图像拼接是一项将多张有重叠部分的图像(这些图像可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分…

AI学习记录 - L2正则化详细解释(权重衰减)

大白话: 在反向传播时,加入额外的损失值,让总损失值变得比原来更大,并且加入的损失值要关联到神经网络全部权重的大小,当出现权重的平方变大的时候,也就是网络权重往更加负或者更加正的方向走的时候&#…

【答疑解惑】图文深入详解undo和redo的区别及其底层逻辑

题记:最近有些人问我,undo和redo到底是什么关系,他们中不乏已经入行3-4年的同学,今天咱们就来深入探讨下到底什么是undo和redo,他们分别做什么,底层逻辑原理是什么等等。 1. undo 1.1 undo的存储结构 Un…

叶国富“推翻”马云新零售,零售新王此刻登基?

63亿入主永辉超市,拿到29.4%股份,坐上永辉超市第一大股东的宝座,名创优品创始人叶国富,成为了新科“零售之王”。 很是霸气外漏。 有投资者表示费解,不明白为何此时入局超市行业,叶国富当即召开电话会议&…

Selenium自动化测试的显示等待

在进行UI自动化测试的时候,我们为了保持用例的稳定性,往往要设置显示等待,显示等待就是说明确的要等到某个元素的出现或者元素的某些条件出现,比如可点击、可见等条件,如果在规定的时间之内都没有找到,那么…

我们如何构建 ClickHouse 内部的数据仓库:一年回顾的思考 【Part2】

本文字数:4105;估计阅读时间:11 分钟 作者:Mihir Gokhale 本文在公众号【ClickHouseInc】首发 一年前,我的同事 Dmitry Pavlov 介绍了我们如何在 ClickHouse Cloud 上构建了公司内部的数据仓库,简称 “DWH”…

外贸财务管理必备,6款热门软件优势对比

外贸企业的财务管理面临着多币种结算、汇率波动、跨境支付等复杂问题。本文将盘点Zoho Books、KashFlow、Sage Intacct等六款热门的外贸财务软件,并探讨它们各自的优势与特点,以帮助外贸企业做出明智的选择。 一、Zoho Books Zoho Books是一款面向中小企…

RNN(循环神经网络)简介及应用

一、引言 在深度学习领域,神经网络被广泛应用于各种任务,从图像识别到语音合成。但对于序列数据处理的任务,如自然语言处理(NLP)、语音识别或时间序列预测等,传统的前馈神经网络(Feedforward N…

docker compose入门5—创建一个3副本的应用

1. 定义服务 version: 3.8 services:web:image: gindemo:v2deploy:replicas: 3ports:- "9090" 2. 启动服务 docker compose -f docker-compose.yml up -d 3. 查看服务 docker compose ps 4. 访问服务

如何使用jmeter进行压测

简介: 1.概述 一款工具,功能往往是很多的,细枝末节的地方也很多,实际的测试工作中,绝大多数场景会用到的也就是一些核心功能,根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲…

相亲交友系统源码开发:构建高效互动平台的技术探索

在数字化时代,相亲交友系统已成为人们寻找伴侣、拓展社交圈的重要方式之一。这类平台不仅促进了人与人之间的连接,还通过算法匹配、兴趣筛选等功能,提高了用户找到合适伴侣的效率。本文将从技术角度出发,探讨相亲交友系统源码开发…

[paddle]paddleseg快速开始

快速开始 为了让大家快速了解PaddleSeg,本文档使用一个简单示例进行演示。在实际业务中,建议大家根据实际情况进行调整适配。 在开始下面示例之前,请大家确保已经安装好PaddleSeg开发环境(安装说明)。 1 准备数据 …

Java->优先级队列(堆)

一、优先级队列 1.概念 数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数 据结构就是优先级队列(Priority Queue)。 2.堆的概念 把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中 3.堆的性质 …

python中,try-except捕获异常的意义(通过ai智库学习)

python中,不但可以用try-except捕获异常, 还可以自定义异常提示字符串,更可以自定义捕获异常后的处置。 (笔记模板由python脚本于2024年10月03日 06:47:06创建,本篇笔记适合喜欢研究python的coder翻阅) 【学习的细节是欢悦的历程】…

基于SSM车位租赁系统【附源码】

基于SSM车位租赁系统 效果如下: 注册页面 首页展示 车位租赁订单展示 车位列表页面 公告信息管理页面 公告类型管理界面 研究背景 随着经济的持续增长和城市化进程的加速,土地资源变得日益紧缺,停车难问题已成为许多城市面临的共同挑战。随…

【JavaEE】——文件IO

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:认识文件 1:文件的概念 2:文件的结构 3:文件路径…

No package nodejs available.No package npm available.

安装nodejs时出现的报错 这个错误的原因是当前的 yum 源没有包含 Node.js 和 npm 的安装包。 解决方法 使用 NodeSource 仓库 curl -fsSL https://rpm.nodesource.com/setup_14.x | bash -运行 yum install 安装 Node.js 和 npm: yum install -y nodejs使用 E…

登录注册静态网页实现(HTML,CSS)

实现效果图 实现效果 使用HTML编写页面结构,CSS美化界面,点击注册,跳转到注册界面,均为静态网页,是课上的一个小作业~ 使用正则表达式对输入进行验证,包括邮箱格式验证,用户名格式验证。 正则…

YOLO 二元分类器

YOLO 二元分类器 在评估二元分类器性能时,TP、FP、TN和FN是四个核心指标,它们分别代表真阳性、假阳性、真阴性和假阴性。以下是这些指标的定义、计算方法以及在实际应用中的意义: 定义 TP(真阳性):模型正…

嵌入式 c 内存堆栈增长方向往低地址方向好处

如下是堆和栈内存空间使用方式有如下好处: 1、stack从高地址向低地址扩展,这样栈空间的起始位置就能确定下来;如果反向,则要考虑这个起点从哪里合适,要确定堆的大小。 2、可以共用中间部分区域空间,最大化…