IP 协议(网络层协议)

news2024/11/13 7:57:33

IP协议

  • IP 协议作用
  • 地址管理
    • 动态分配 IP 地址
    • NAT 机制
    • IPv6
    • IP 地址的组成
  • 路由选择

IP 协议作用

主要有两点 :

  1. 地址管理

为每个上网的设备分配一个唯一地址.

  1. 路由选择

两台主机间的信息交互, 具体走哪条线路.

地址管理

先来看看 IP协议 报文格式 :
在这里插入图片描述
IP 协议最主要就是 32 位的源 IP 和目的 IP 地址.
源 IP 描述这个数据报从哪里来的, 目的 IP 描述数据报去哪里.

IP 地址本质上是 32 位的二进制整数, 但是通常写成点分十进制形式, 便于观察数据.
点分十进制就是用三个点, 将 32 位整型分成 4 个部分, 每个部分都是一个字节, 每个部分的取值范围是 0 ~ 255.

那 32 位的二进制整数能表示多少个不同的地址呢 ?
它可以表示 2^32 个不同的数, 即大概有 42 亿 9 千万的不同地址.
这么多地址在以前是完全够用的, 但现在随着科技的进步, 电子设备也越来越多了, 凡是能上网的都需要一个 IP 地址, 那不够怎么办呢 ?

这里采取三种措施 :

  1. 动态分配 IP 地址
  2. NAT 机制
  3. IPv6

动态分配 IP 地址

动态分配顾名思义, 就是上网就分配, 不上网就不分配 IP 地址, 这样就可以节省一大批 IP 地址.
但这也仅仅是解决了燃眉之急, 并没有解决根本问题 IP 地址并没有增加, 早晚有一天会用完的.

NAT 机制

NAT 技术是当前解决 IP 地址不够用的主要手段,是路由器的一个重要功能.
NAT 机制规定 :
内网(局域网)IP :

10.*
172.16.* - 172.31.*
192.168.*

外网IP则是剩下的 IP.

注意 :
外网 IP 必须是唯一的.
内网 IP 在不同的局域网中可以重复.

当内网设备要访问外网时, 路由器就会给它分配一个外网 IP, 这个外网 IP 并不是这个设备独占的, 而是这个内网中所有设备都共用的. 一个外网 IP 就代表了一系列设备.
像我们的手机, 电脑等, 连上路由器就是处在内网中了.

也可以通过电脑来查看当前内网 IP, 和外网 IP.
内网 IP : 打开命令提示符(按住 win + r, 然后输入 cmd 即可), 输入 ipconfig.
在这里插入图片描述
这个便是我当前所在局域网给我这个设备分配的内网 IP 地址了.

外网 IP : 打开浏览器, 输入 IP 地址.
在这里插入图片描述
点击即可查询当前设备的外网 IP, 这个外网 IP 是当前局域网内设备共用的.

一台设备上网流程大概如下 :

在这里插入图片描述
① : 我的主机构造数据报, 发送给路由器.
② : 路由器将数据报的内网 IP 换成它的 IP 地址, 也就是外网 IP, 然后发送给搜狗服务器.
③ : 搜狗服务器收到数据报后, 就知道了请求来源的 IP 地址是 4.3.2.1, 构造数据报时就将其作为目的 IP.

注意 : 当路由器拿到搜狗返回的数据报后, 就会返回给我的主机, 它具体是如何识别的呢 ? 如果有别的设备也通过路由器发送请求会不会串了呢 ?

这里路由器是根据端口号来识别不同主机发的请求的, 当路由器接收到局域网的请求时, 就会记录该设备具体是哪个端口号发送的, 等到收到响应时, 再比对发送给对应端口.

总结 :

NAT机制是内网访问外网才会触发的, 由路由器执行.
内网设备可以通过 NAT 机制访问外网设备 ; 反之, 外网设备不能直接访问内网设备.
不同内网之间的主机不能直接通信, 需要借助外网作为中转.
同一个内网之间可以直接通过内网 IP 进行通信.

在我们现实生活中, 其实是采用 动态分配 + NAT机制 来解决 IP 地址不够用的问题的.
本质上也还是提高了 IP 地址的利用率, 没有在根本上改变 IP 地址不够用问题.

IPv6

IPv6 不一样了, 它从根本上解决了 IP 地址不够用的问题.

IPv4 是传统的 IP 协议, 由 4 个字节, 32位来表示 IP 地址.
IPv6 则是新的 IP 协议, 由 16 个字节, 128 位来表示 IP 地址.

IPv4能提供 2^32 个 IP 地址, 而 IPv6 则能提供 2^128 个IP 地址, 想想就恐怖, 这已近可以为我们地球上的每粒沙子都提供一个唯一的 IP 地址了, 从根本上解决了地址不够用问题.

当然了, 虽然 IPv6很强, 但我们现在都不用它, 还是用的 IPv4, 为啥呢 ?
因为 IPv4 与 IPv6 不兼容.
一个普通路由器想要支持 NAT, 只需要在升级下系统就行.(成本低)
一个普通路由器想要支持 IPv6, 不光得升级软件了, 还得升级硬件.(成本高)
这样就导致了一个问题, 想升级就得换新的路由器, 但不升级也能用, 就没人愿意掏这钱了, 也就导致大家都还是用的 IPv4.

当然我国 IPv6 的普及率还是很高的, 只是没有开启而已, 现在购买的路由器都支持 IPv6. 很多应用都支持了 IPv6, 大家可以进淘宝, 支付宝时观察一下, 下面都会标志 IPv6.

如果大家想对 IPv6 的发展多加了解可以去看看这个视频(强烈推荐) : 链接

IP 地址的组成

IP 地址分为两个部分 : 网络号和主机号.
网络号 : 标识网段(局域网). 保证相互连接的两个网段具有不同的标识.
主机号 : 标识主机. 同一网段内, 主机间具有相同的网络号, 但主机号一定不同.

一个路由器其实由两个 IP 地址(WAN 口 IP 和 LAN 口 IP), 分别在不同的局域网中, 路由器的作用就是将两个局域网连接起来.
在这里插入图片描述
一般来说一个路由器有一个 WAN口 和多个 LAN口, 具体路由器之间是如何相互连接的呢 ?

在这里插入图片描述
LAN口 接的是内部设备, WAN口 接的是另一个路由器.
图中, 被同一个路由器连起来的相邻局域网, 就叫做 "相邻"局域网, 这两个局域网网络号不能一样.

一个 IP 地址中, 哪部分是网络号, 哪部分又是主机号呢 ?
上面我们是按前三个字节是网络号, 但一定如此吗 ?
这个不一定, 对于网络号与主机号的划分主要有两种方式.

  1. IP 地址分类(ABCDE)
  2. 子网掩码
  1. IP 地址分类

在这里插入图片描述
每个类别的前缀都不一样, 每个类别下网络号与主机号长度都是固定的.
这种分类方式已经淹没在历史的长河中, 现在都是用的子网掩码来划分.

  1. 子网掩码

再打开命令提示符, 输入 ipconfig.

在这里插入图片描述
子网掩码是 : 255.255.255.0, 也就是 1111 1111 1111 1111 1111 11111 0000 0000
子网掩码, 左侧都是 1, 右侧都是 0, 不会出现 10101 这种参杂现象, 左侧有几个 1, 就表示 IP 地址哪些位是网络号, 家用网络子网掩码一般是 255.255.255.0, 一些大型网络就不一定了.(这个事情归网管管)
依照子网掩码来看, 上面的 IP 地址前 24 位是网络号, 后面 8 位是主机号.

在子网掩码是 255.255.255.0 的情况下, 有很多特殊的 IP 地址.

  1. 主机号为 0 的 IP : 如 192.168.0.0, 这就是网络号, 局域网里的主机号不应该为 0.
  2. 主机号为全 1 的 IP : 如 192.168.0.255, 这是广播地址, 往这个地址上发送 UDP 数据报就会被转发给该局域网的所有主机.(TCP 不支持广播)
  3. IP 为 127 开头的 IP : 127.* 被称为环回 IP, 其中 127.0.0.1 是最常用的.(注:其他的环回IP也能用)

环回 IP 对应虚拟网卡, 通过环回 IP 传输的数据, 是走虚拟网卡, 这个过程没有 IO 操作, 纯内存操作, 因此比一般普通的 IP 传输要快.

  1. 主机号为 1 的 IP : 如 192.168.0.1, 被称为网关 IP, 也就是局域网的出入口.
    (可以看到上面 LAN口 IP 都是网关 IP)

路由选择

路由选择其实就是路径规划, 就是从 A 到 B 具体路线怎么走.(A 到 B 的路线不止一条)
就像我们用地图导航一样, 我们可以很直观的找到最短路径, 但网络不一样, 网络环境更复杂.
单个路由器无法将整个网络环境都记录下来, 它只能记录周围的情况.(路由器使用路由表来记录周围路由器信息)
实际的信息转发过程是渐进式的, 类似于边走边问, 最终接近目标.
如果信息转发过程一直找不到目标信息, 那它会不断询问更高级路由器, 直到找到方向.
其实路由器也有大型的, 它可以记录更多信息.

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

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

相关文章

2.9寸NFC卡片

应用广泛 无需电池 可挂、可横向/纵向摆放,适合多种场所 使用2.9寸电子纸墨水屏,持续显示不耗电 本产品无电池,节能环保,助力实现碳中和 ​ 基于电子纸墨水屏作为显示屏,符合当下节能环保、护眼的需求。质地轻薄、大…

Flameshot (火焰截图)截图无法插入汉字

前不久,Debian11升级至Debian12后,发现fcitx5无法用了,好似包也被删除了。于是重新安装了fcitx5,但发现了一个问题,利用Flameshot(火焰截图)截取图片时,无法对图片进行文字注释。如下图所示&…

HTML常用标签

1、HTML HTML Hyper Text Markup Language 超文本标记语言 Markup Language 标记语言 XML Extensible Markup Language 可扩展标记语言 HTML2HTML3HTML4XHTML1XHTML2HTML5 2 、HTML基本结构 3 、网页 header header 文档的开始部分 网页加载时,首先加载header…

Spring Cloud Config: 了解、原理和使用

Spring Cloud Config: 了解、原理和使用 Spring Cloud Config 是 Spring Cloud 生态系统中的一个重要组件,它提供了一种分布式配置管理的解决方案,能够集中管理应用程序的配置,支持多种后端存储,如 Git、SVN、本地文件系统、Vaul…

ADG环境下统计每天的归档

现场项目经理反馈,使用日常的归档查询sql看到每天的归档量都快2T了,截图出来确实 很大 查看每天的归档文件总量比当天的归档量少了一半左右,百度了很多案例,最后发现问题该环境是ADG一主一备,每天的归档量也传输到备库…

JavaScript(JS)的引入方法

内部脚本 JS代码必须位于<script></script>标签之间在HTML文档中&#xff0c;可以在任意地方&#xff0c;放置任意数量的<script>一般会把脚本置于<body>元素的底部&#xff0c;可以改善显示速度 外部脚本&#xff1a;将JS代码定义在外部JS文件中&…

0基础学习VR全景平台篇 第55篇:专业版功能-数据统计

使用蛙色VR平台数据统计功能&#xff0c;可以统计分析整个账号下【所有作品】的访问数据&#xff1b; 亦可分析单个作品中【每个场景】的访问数据。 账号数据统计功能位置 单作品数据统计功能位置 一、本功能将用在哪里&#xff1f; 数据统计功能&#xff0c;可实现对作品总访…

自发二元行为预测人际神经同步(INS)的出现

导读 人际神经同步(INS)正在成为预测多人协调、沟通和合作成功等社会互动的有力标志。由于对INS的起源知之甚少&#xff0c;本研究测试了INS是否以及如何从自发的二元行为中产生。要求一对参与者在不说话或做出共同语言手势的情况下互相看着对方&#xff0c;并记录他们的神经活…

网络分层模型以及通信流程

2.1OSI模型和tcp/ip模型 Tcp/ip模型早于ISO的OSI模型 2.2网络为什么要分层&#xff1f; 将一个大的问题进行拆分&#xff0c;分而治之&#xff0c;专门的层处理专门的事情。而且那层出现问题只需对该层进行处理&#xff0c;不会影响到其他层。就相当于做菜的过程&#xff0c;…

满足数字化转型对无线网络性能需求,锐捷全场景 Wi-Fi 7 方案

数字化转型深入了各行业&#xff0c;对于算力、数据、网络的需求也水涨船高。其中&#xff0c;无线网络对于生产办公等等场景数据传输的保障&#xff0c;愈加重要。 例如生产场景里&#xff0c;工厂增设各类自动化、智能化的传感器&#xff0c;都需要以无线&#xff08;甚至全部…

我的《CSDN铁粉宝典》

完成一篇如何获得铁粉&#xff0c;或者相关的文章且质量分达到80分以上即可 一 什么是铁粉&#xff1f; 顾名思义&#xff0c;就是你的铁杆粉丝&#xff0c;但是这个只是过通俗的解释&#xff0c;那么在CSDN规则中&#xff0c;什么是铁粉呢&#xff1f;官方给了一系列解释 “为…

新发布的 DBeaver 23.1.1 版本正式支持时序数据库 TDengine

众所周知&#xff0c;DBeaver 是一个流行的开源数据库管理和 SQL 客户端工具&#xff0c;为管理和使用各种类型的数据库&#xff08;包括多个时序数据库&#xff09;提供强大而灵活的平台。为了让大家在应用上更加便捷&#xff0c;我们与 DBeaver 达成合作&#xff0c;新发布的…

蓝桥杯专题-试题版含答案-【字母统计】【计算球体积】【16进制的简单运算】【C小加随机数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

子元素比父元素 z-index高低的问题

一.大坑---设置父relative z-index:0 .parent {position: relative;z-index:0; } .child {position: absolute;z-index:9999; }子元素居然比父元素的兄弟元素低一个层级&#xff01; 原因&#xff1a; 当你将父元素的 position 属性设置为 relative 并且 z-index 属性设置为…

美团落子泛娱乐

配图来自Canva可画 据工信部发布的《泛娱乐产业白皮书》显示&#xff0c;中国泛娱乐核心产业&#xff0c;已成为数字经济的重要支柱和新经济发展的重要引擎。因此&#xff0c;构建一个多产业联动的泛娱乐生态体系&#xff0c;便成为了企业发展的共同目标。比如&#xff0c;腾讯…

剑指 Offer 65: 不用加减乘除做加法

这道题想着使用一位一位进位的方法做&#xff0c;写这个的时候忘记了异或运算符&#xff01;&#xff01; 这道题看了解答发现很好想&#xff0c;什么位置有进位&#xff1f;就是两个相同位置数值都为1的时候&#xff0c;那么就会往前进一位&#xff1b;同理&#xff0c;没有进…

open*w*r*t +dnspod ddns动态解析ipv6 远程控制移动内网路由器

1.修改openw*r*t web https管理端口为8443 修改ipv6 https 监听端口list listen_https [::]:8443 cd /etc/config/vi uhttpdvi /etc/config/uhttpdconfig uhttpd mainlist listen_http 0.0.0.0:80list listen_http [::]:80list listen_https 0.0.0.0:443list listen_https [:…

视觉SLAM十四讲需要提前知道的数学基础知识

学习视觉SLAM十四讲之前的必备数学基础知识 1. 正交矩阵2. 线性关系3. 求矩阵的逆4. 叉乘5.反对称矩阵6. 复数 1. 正交矩阵 定义&#xff1a; 设n阶矩阵A满足AATATAI &#xff0c;则称A为正交矩阵 性质&#xff1a; 以下为手写&#xff0c;从小字丑&#xff0c;请多担待。。 …

第二阶段、数据库的使用

数据库&#xff1a;在这里一mysql为例 首先使用数据库就必须安装 安装数据库&#xff08;mysql&#xff09; 数据库的安装和下载 数据库的使用和命令 连接和断开服务器 启动mysql服务&#xff1a; sudo service mysql start 停止mysql服务&#xff1a; sudo service mysql …

加载Bert预训练模型时报错:huggingface_hub.utils._validators.HFValidationError

具体报错情况如下&#xff1a; huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form repo_name or namespace/repo_name: ./bert/bert_base_cased_ICEWS14. Userepo_typeargument if needed. 很简单&#xff0c;我download下来的代码没有并没有…