22张图带你了解IP地址有什么作用

了解IP地址

1、IP地址的格式

在IP协议的报文中,可以得知IP地址是有32个比特,IP地址在计算机中是以二进制的方式处理的,如果全部以二进制的形式来表示,使用跟表达都非常的困难,所以为了人类方便记忆,采用了点分十进制的方式,将32位的IP地址以8位为一组,分成四个部分,每组以【.】进行隔开,再将每组转换成十进制。

图片

图片

以博主电脑网卡获取的地址举例,计算机系统处理以二进制进行,可以看到非常的长,都是0跟1的组合,在使用中很容易出错也非常难记,换成十进制后,相对来说就轻松很多了。并且可以发现二进制里面0跟1的组合不一样,得到的数值也不一样,总共IP地址有多少个呢?

图片

最大允许差不多43亿的终端连接到网络里面来,看起来已经非常多了!但是,如今的Internet网中,IP地址是枯竭的状态,这也是为什么推出了IPV6的原因,可能IP地址的设计者也没想到,今后的internet网会这么庞大。

IP地址其实是由2个部分组成的,一个是网络号(网段地址)和主机号(主机地址),这个两个组成很关键,网络号是设备所在区域的一种标识区分,网络号相同的设备处于同一个网段内,网络号不同的设备处于不同网段,两个之间通信需要依赖三层设备。主机号是在同一个网段中标识不同终端设备,同一个网段内的终端是不允许出现重复的主机号的,这段很重要,先读几次,有个印象,这对我们排错跟学习都非常有帮助。

举个生活中的例子,一个小区内,有多栋楼,每栋楼都有501、601这样,避免住户搞混冲突,开发商会在前面加一个数字或者字母来进行区分每栋楼,比如2501、3601,这样在找位置的时候就很容易找到了。随着时间久了,可能跟同一栋楼的上下左右邻里相处的不错,经常会相互串门聊聊天,聚聚餐之类的,同一楼层每家独立的门牌号不会重复,很容易就找到了。不同楼就相当于网络号,有不同的标识,而同一栋楼的有很多住户,每个住户的门牌号都是不一样的,不会有重复,这样就方便定位了。

同样的,在网络中也是一样,可能我们访问的目的就在一个区域,也可能在另外的区域,那运行了TCP/IP协议的设备不管是PC、手机、路由器还是交换机,都得有一个判断规则,来对比要去的目的跟自己是不是一个网络区域,那就是通过上面的网络号来进行区分。

图片

以我们最容易接触到的家用网举例,每个人家里都有无线路由器,可能有的下面接了电脑、手机、电视、PAD、有的甚至有个人服务器/NAS等。像上面的图,路由器左边是家庭局域网网,比如有三个终端,地址分别是192.168.255.1、192.168.255.2、192.168.255.240,不管是相互传文件以及访问个人的服务器,直接输入对方的地址就可以了,并且还有这样的情况,就算宽带接入出现故障,互联网访问不到了,但这些局域网之间的互访是不影响的。

图片

另外可以发现图里面有相同的特征,都是192.168.255开头,变化的是最后一位,现在还没学介绍到地址分类,假设192.168.255相同的前缀为网络号,同一个网段,而最后一位1、2、240为主机号,数字都不是重复的。

图片

比如这里192.168.255.1访问192.168.255.240,这里192.168.255.1设备系统通过自己网卡的参数读取到对应的IP信息与目的的IP比较,发现网络号相同,则在同一个网段内,直接发送给对方,并且二层封装目的主机的MAC地址。

PS:(在同一个局域网内就是上一篇学习的二层,通过MAC封装,交换机通过MAC学习到目标MAC的接口发送出去,当然这里会留下个疑问,终端之间怎么在会实现知道对方的MAC地址是多少呢,这里还没讲解ARP协议,暂时当成它已经事先知道了。另外家用路由器有多个LAN口,其实这LAN就相当于交换机的工作模式一样,可以学习MAC的功能,自然就能知道某个设备在哪个口)

图片

如图 192.168.255.1去访问互联网上的百度 181.55.6.6, 假设对比前三段,终端判断目的与自己的网络号不一致,那么它该怎么处理呢?

图片

如果终端判断目的与自己的网络号不一致就会丢给网关处理,比如图上面丢给192.168.255.254(家用路由器的网关),家用路由器通过查询路由表中的网络号,查询交给Internet的网关,最终Internet中的路由器也通过查询网络号来层层传递,最终抵达目的地。

通过这个分析,可以得到这些有用的知识点总结。

IP地址的网络号用于区分源目IP是否在同一个网段还是不同网段,主机号用于标识同一个网段内的不同终端,并且不能重复,比如192.168.255(网络号),主机号可以是1、2、3 ……等
设备终端,比如PC、手机、平板运行了TCP/IP协议的,它都有判断的功能,如果目的IP与我网络号相同,判断在一个网段内,直接在同一个区域内完成通信;如果网络号不同,则判断为不同网段,这个时候直接交给网关处理,如果没有网关信息,则通信失败,数据包发送不出。
路由器这些三层设备在处理转发这个数据包的时候,查询路由表根据目的IP的网络号进行查询转发,这样的好处是能够提高效率,不用具体到主机位,否则Internet这么庞大的网络,每个网路设备都存放在路由表中,对设备的压力以及查询的效率就非常低了。
终端设备访问不同网段依靠的是网关,而路由器等三层设备转发数据包去往不同目的地依靠的是路由表中的条目。

图片

这些“规则”一定要有一个认知,后续在学习路由交换的时候非常有用,甚至排错的时候,比如某个设备上不了网,那我们知道了上网是得有网关的,是不是就先检查网关设置了吗,设置的对吗。当然这些会在后续中反复提到,数据包的通信离不开这些“规则”。

明白了网络号与主机号的概念,那在IP地址中,哪几位是网络号?哪几位是主机号呢?下面就来了解下地址分类以及子网掩码的概念。

2、IP地址分类

在internet诞生初期,IP地址是非常充裕的,计算机科学家们进行了分类地址,把IP地址分为了5大类,分别是A类、B类、C类、D类、E类。

图片

早期沿用的是地址分类的方法,A、B、C作为全局可用唯一地址进行分配,每个列别定义了网络号以及主机号的范围大小,由于这种方式早就不在使用,只有考试以及很多书籍还在介绍,所以这里就简单介绍下。

(1)A类地址

A类IP地址以首位为“0”开头,前面8位是网络号,网络号范围是0~127(0和127属于保留地址)。

图片

算下来就2^(8-1)-2=126,其中8位中最开始0是固定的,所以只有7个可以变化,0与127是保留需要-2,最终有126个网段。

后24位是主机号,表示可容纳的终端数量,2^24次方=16777216个地址。

图片

(2)B类地址

B类IP地址前两位以“10”固定开头,116位为网络号,网络号的范围128.0191.255,其中169.254为保留地址,算下来2^(16-2)-1,有16383个可用网段。

图片

后16位主机号,表示可容纳的终端数量,2^16次方=65536个地址。

图片

(3)C类地址

C类IP地址前三位“110”固定,从124位为它的网络号,范围是192.0.0223.255.255.255,其中192.0.0属于保留地址,所以有2^(24-3)-1=2097151

图片

后8位是主机号,标识可容纳的终端数量,2^8=256个地址。

图片

(4)D与E类地址

D类IP比较特殊,它属于组播地址,不区分网络号与主机号,用于各种协议中以及某些特殊场景,后续会慢慢熟悉,范围是224.0.0.0~239.255.255.255。而E类属于科研方面等方面,不用于互联网使用。

(5)了解网段地址、网段广播地址、以及单播地址

当主机号全为0时,表示某个网段,叫做网段地址,比如192.168.255.0,表示192.168.255.1到192.168.255.254所有地址,这也是以后在项目中经常遇到的表示方法,用于表示某个网段。

当主机号全为1时,它表示的网段广播地址,发往这个地址的数据包,该网段内所有主机都能收到,比如:网段192.168.255.0,广播地址是192.168.255.255。

图片

所以,在每个网段中,主机号全0的网段地址以及主机号全1的广播地址是不能被使用,每个网段实际可用的地址是对应的地址数-2。

图片

那什么是单播地址呢?每个网段内除去网段地址以及网段广播地址以外,剩下的就是单播地址,单播地址也就我们终端PC、手机以及网络设备路由器、交换机设备上使用的地址了,通信双方就一个发送方与接收方,而广播则是一个发送方,其余同网段的主机都为接收方,但是不会发往其他网段,中间三层设备会隔离广播,不会进行转发。

(6)二进制与十进制转换

上面介绍了一大堆地址范围,可能很多朋友有点犯迷糊,怎么就计算出这么多的网段跟主机了,首先,要明白二进制与十进制的换算。

图片

二进制到十进制的换算,可以参考上面表格,也可以借助计算器,采用程序员的模式,输入对应的数值即可,其中BIN表示二进制,DEC表示十进制,HEX表示十六进制。

图片

按照上面的表格,把每一段“置1”的数值相加就得了每一段的十进制,最终就是192.168.255.4,这个是C类地址,因为网络号前三位固定为110,同样的A与B类的地址,都有前面固定的值,范围都不一样,只要知道了固定值的位置,然后就可以计算出每个类的范围。

图片

(7)IP地址分类的好处

判断方便,网络设备需要解析一个IP地址的时候,只需要判断网络位的前四位就可以知道是网络号与主机地址的范围。
图片

这样的地址分类好处就是简单、选路查询方便,减轻中间设备的压力,但是也带来了很多的问题,也是导致这种分类在如今的环境下无法使用的原因。

问题一:灵活性

一个企业可能根据需求以及区域不同会划分成办公区、生产区、会议区等,而IP分类是没有这种区域层次的划分功能的,缺少灵活性。

问题二:与现实网络不匹配

从上面的分类的网段以及每个可以容纳的终端数来看,A、B、C中间差距太明显,比如一个C类的网段可以容纳254个主机,一个小型办公环境可能够用了,稍微有点规模的就显得不够,而一个B类地址对应一个企业来说又达不到这样大的规模,很多地址就浪费了,注意,公网地址是要花钱购买的,并不是免费使用的。

问题三:安全性问题

比如A公司与B公司是是同行竞争关系,同时向运营商购买了自己需要数量的IP地址,有一天,A公司的技术发现它竟然能看到B公司的数据包?原因就是运营商给它们分配的都是C类同一个网段,比如给A公司分配的是202.100.1.1到202.100.1.50,B公司分配的是202.100.1.101到202.100.1.180,通过地址分类,202.100.1.0属于C类,而且是同一个网段,那么数据通信A与B之间其实是可以直接通信的,有可能B的数据发送了广播报文的,导致A收到了,同样A发送的某些数据包,B也收到了,对于这样的场景,可能客户为了安全性就会选择去其他运营商购买,并且要求独立的网段,这问题对于运营商来说就头疼了,一个C内网段最少也有254个地址,一个公司有又不需要购买这么多,一部分给A,一个部分给B呢,又说不安全,空着吧,又浪费了。

问题四:地址浪费

其实从上面的三个问题中都可以看出来,地址的分类根本无法根据不同的场景需求来定制需要的,不是一个网段多了,就是少了,怎么都会造成地址浪

费空闲的,并且在划分的时候,很多A类地址就被美国的公司或者运营商占据了,像我们中国作为全球第一的人口庞大的国家,都没有一个”完整”的A类地址。而一个A类想想上千万个地址,一个公司怎么可能用得了这么多,剩下的就白白的浪费了。

重点回顾

IP地址采用点分十进制表示,分为四个部分。
IP地址由网络号与主机号组成,网络号表示具体的某一个网段,同一个网段内的主机可以直接通信,不同网段的主机互访则交给网关处理,是否在于同一个网段的判断依据就是依赖网络号。主机号表示这个网段内的终端数量,每个地址都不能相同。
路由器等三层设备在处理数据包转发的时候,也是通过网络号进行查询转发,这样效率更高,对设备压力更小。
每个网段都存在一个网段广播地址,一个网段地址,这两个地址是不能被使用的,其中网段地址表示某个整体网段,而网段广播地址是指,发往该地址的数据包,该网段内所有主机能收到,就像广播一样,但是只能在该网段内广播,穿越不了路由器,也可以理解路由器天生隔离广播。
IP地址早期采用分类地址,分为了A、B、C、D、E 五大类,其中在后续经常会接触到的有A、B、C三类,分类的好处就是规划了网络号与主机号的范围,并且为不同场景规模的环境提供了不同的网段数量以及主机数量。网关以及互联网设备在转发数据查询的时候也很容易进行判断。
分类地址的方法存在很多弊端,最大的弊端就是地址的浪费,导致IPV4地址枯竭的重大原因。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP/UDP协议

写在前面 下面我们继续说我们传输层的协议,这个协议我们重点看TCP协议,注意TCP是我们经常使用的额,而且也是我们在面试最容易被问到的,所以我们要重点分析,下面是一张图,让我们回忆一下我们知识点到协议的哪一层了. 再谈端口号 我们知道端口号(Port)标识了一个主机上进行通信的…

字符串的反转以及巧用反转 ------关于反转,看这一篇就足够了

目录 一.本文介绍 二.反转字符串 1.题目描述 2.问题分析 3.代码实现 三.反转字符串 II 1.题目描述 2.问题分析 3.代码实现 三.反转字符串中的单词 I 1.题目描述 2.问题分析 3.代码实现 四.反转字符串中的单词 III 1.题目描述 2.问题分析 3.代码实现 五.仅仅反…

【Python入门第三十五天】Python丨文件打开

在服务器上打开文件 假设我们有以下文件,位于与 Python 相同的文件夹中。 demofile.txt Hello! Welcome to demofile.txt This file is for testing purposes. Good Luck!如需打开文件,请使用内建的 open() 函数。 open() 函数返回文件对象&#xff…

Linux驱动开发——串口设备驱动

Linux驱动开发——串口设备驱动 一、串口简介 串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距…

基于uniapp+u-view开发小程序【技术点整理】

一、上传图片 1.实现效果&#xff1a; 2.具体代码&#xff1a; <template><view><view class"imgbox"><view>职业证书</view><!-- 上传图片 --><u-upload :fileList"fileList1" afterRead"afterRead"…

C语言蓝桥杯刷题:修剪灌木

题目链接 解题思路&#xff1a; 本题需要注意的是树是白天长&#xff0c;然后爱丽丝傍晩对某棵树进行修剪&#xff0c;也就是说树高度是可能在白天达到最大值而在傍晩变成0。我一开始也有一个误区&#xff0c;以为是要修剪的那棵树当天就变成0而不能生长&#xff0c;其实是先…

vue后台管理系统

后面可参考下&#xff1a;vue系列&#xff08;三&#xff09;——手把手教你搭建一个vue3管理后台基础模板 以下代码项目gitee地址 文章目录1. 初始化前端项目初始化项目添加加载效果配置 vite.config.js2. 使用路由安装路由配置路由配置别名和跳转安装pathvite.config.jsjsco…

C++类和对象(上篇)

目录 1.类的定义 2.类的访问限定符及封装 2.1类的访问限定符 2.2封装 3.类的作用域 4.类的实例化 5.类的大小 6.this 指针 1.类的定义 class className {// 类体&#xff1a;由成员函数和成员变量组成}; // 一定要注意后面的分号 class为定义类的关键字&#xff0c;Clas…

Golang每日一练(leetDay0012)

目录 34. 查找元素首末位置 Find-first-and-last-position-of-element-in-sorted-array &#x1f31f;&#x1f31f; 35. 搜索插入位置 Search Insert Position &#x1f31f; 36. 有效的数独 Valid Sudoku &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 …

VsCode SSH远程连接服务器【内网穿透公网连接】

文章目录1.前言2.VS code的安装和设置2.1 VS code的下载安装2.2 OpenSSH的启用2.3 为VS code配置ssh2.4 局域网内测试VS code的ssh连接2.5 Cpolar下载安装3.Cpolar端口设置3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语1.前言 记得笔者小时候看电视&#xff0c;看…

【安全与风险】密码学介绍

密码学介绍密码历史密码换位&#xff08;Transposition&#xff09;与置换&#xff08;Substitution&#xff09;替换密码&#xff08;Substiution Cipher&#xff09;凯撒密码 &#xff08;100BC 公元前100年&#xff09;移位密码破坏替换密码维吉尼亚密码现代密码学核心原理从…

TCP三次握手/四次挥手

TCP三次握手 任何基于TCP的应用&#xff0c;在发送数据之前&#xff0c;都需要由TCP进行“三次握手”建立连接示意图 第一次握手&#xff1a;客户端PC发送一个SYN位置1&#xff08;SYN1代表请求服务端建立连接&#xff09;的TCP报文发送给要建立TCP连接的Server&#xff0c;此…

23种设计模式

参考链接&#xff1a; 【狂神说Java】通俗易懂的23种设计模式教学&#xff08;停更&#xff09;_哔哩哔哩_bilibili 23种设计模式【狂神说】_狂神说设计模式_miss_you1213的博客-CSDN博客 1. 单例模式 参考链接&#xff1a; 【狂神说Java】单例模式-23种设计模式系列_哔哩哔哩…

Linux(网络基础---网络层)

文章目录0. 前言1. IP协议1-1 基本概念1-2 协议头格式2. 网段划分2-1 基本概念2.2 IP地址分五大类2-3 特殊的IP地址2-4 IP地址的数量限制2-5 私有IP地址和公网IP地址2-6 路由0. 前言 前面我们讲了&#xff0c;应用层、传输层&#xff1b;本章讲网络层。 应用层&#xff1a;我…

GPT-4是个编程高手,真服了!

上周给大家发了一个GPT-4教数学的介绍&#xff0c;很多人都被震撼了&#xff0c;感觉有可能在教育行业引发革命。它在编程领域表现如何&#xff1f;先不说能否替代程序员&#xff0c;这个还有待更多的测试和反馈&#xff0c;我想先试试它能不能像教数学那样教编程。我找了个Jav…

Docker的可视化界面工具

Docker的可视化界面工具1. Portainer1.1 Introduction1.1.1 Official1.2 Download And Deploy1.3 Dashboard1.3.1 Dashboard2. Shipyard2.1 Introduction2.1.1 Character2.1.2 Official2.2 Download And Deploy2.2.1 脚本下载镜像2.2.2 执行脚本2.2.2 查看下载的镜像2.3 Dashbo…

“工作三年,跳槽要求涨薪50%”,合理吗?

如果问在TI行业涨工资最快的方式是什么&#xff1f;回答最多的一定是&#xff1a;跳槽&#xff01;前段时间&#xff0c;知乎上这样一条帖子引发了不少IT圈子的朋友的讨论 &#xff0c;有网友提问 “程序员跳槽要求涨薪50%过分吗&#xff1f;”截图来源于知乎&#xff0c;如侵删…

【百面成神】多线程基础16问,你能坚持到第几问

前 言 &#x1f349; 作者简介&#xff1a;半旧518&#xff0c;长跑型选手&#xff0c;立志坚持写10年博客&#xff0c;专注于java后端 ☕专栏简介&#xff1a;纯手打总结面试题&#xff0c;自用备用 &#x1f330; 文章简介&#xff1a;多线程最基础、重要的16道面试题 文章目…

【百面成神】Redis基础11问,你能坚持到第几问

前 言 &#x1f349; 作者简介&#xff1a;半旧518&#xff0c;长跑型选手&#xff0c;立志坚持写10年博客&#xff0c;专注于java后端 ☕专栏简介&#xff1a;纯手打总结面试题&#xff0c;自用备用 &#x1f330; 文章简介&#xff1a;Redis最基础、重要的11道面试题 文章目录…

AI 未来已至,向量数据库站在新的节点上

“AI 的 iPhone 时刻已经到来。” 在刚刚结束的 NVIDIA GTC Keynote 中&#xff0c;这句话被 NVIDIA CEO 黄仁勋反复提及&#xff0c;长达 1 个多小时的分享中&#xff0c;生成式 AI 相关的内容占据了绝大部分比重。他表示&#xff0c;生成式 AI 的火热能力为企业带来了挑战&a…