IP协议的相关特性
IP协议主要干两件事:
1.地址管理。给每个设备分配一个IP。
2.路由选择。选择网络中数据传输的路线。
1.地址管理
在IP协议报文格式中,可以看到IP地址是由32位二进制数构成的。
通常用点分十进制的形式表示,比如:192.168.0.1。
32位的IP地址被分成了四个部分,每个部分有8位,也就是一个字节。
每个字节表示成十进制数的范围就是0~255。
32位IP地址所带来的问题
这32位IP地址能表示的IP个数最多是232,大约是43亿个IP地址。
这放在以前应该够用了,但是放到现在远远不够用。因为世界上有那么多的主机,那么多的路由器,那么多的手机,那么多的路由器。网络中的设备已经远远超过了43亿亿,所以网络中的IP地址是不够用的。如何解决这个问题呢?
1.1 动态分配IP地址
世界上那么多设备,并不是每一台设备都时时刻刻上网的。设备上网才分配IP,设备不上网就不分配IP,这样就可以省下一些IP。但是这样子做并没有增加IP地址的数量,并不能彻底解决问题。
1.2 NAT机制
NAT英文全称是“Network Address Translation”
,中文意思是“网络地址转换”。
NAT把IP地址分成了两类:1.内网IP 2.外网IP
-
内网IP包括:
10.*
172.16.* - 172.31.*
192.168.*
-
外网IP包括除内网IP以外,剩下的IP
内网IP在不同的局域网中是可以重复的,外网IP则必须要求唯一。
但是这个外网IP并不是一个设备独占的,而是一个内网中的很多设备都共用一个外网设备。
比如:
一个网吧中的所有电脑都处在一个内网中,这些设备有不同的内网IP,但是共用一个外网IP。
下面是NAT的具体过程:
主机A和主机B在同一个内网中。
路由器是NAT设备,会对A和B进行地址转换。
发送到服务器中。
服务器会响应A和B的请求,这些响应都是发到路由器上的,路由器再把响应中的IP转成内网中的IP,再发给A和B。
1.3 IPV6协议
动态分配IP地址和NAT机制都不能从根本上解决问题,而IPV6协议真正从根本上解决了IP地址不够用的问题。
在IPV6协议中,使用16个字节,128位来表示IP地址,能表示2128个IP地址,这个数字大到能给地球的每一粒沙子分配一个IP地址。
1.4IP地址
IP地址分为两个部分:
1.网络号。标识网段,保证两个网段之间有不同的网络号。
2.主机号。标识主机,同一个网段中,主机之间的网络号是相同的,但是主机号是不同的。
简单来说,网络号标识了一个局域网,主机号标识了一个局域网中的主机。
一个路由器中有LAN口IP和WAN口IP,就是为了把两个局域网区分出来,路由器的一个作用就是把两个局域网连接起来。
在家庭中,网络结构可能如下图所示:
在电脑A和电脑B和路由器组成的局域网中,它们的网络号相同,主机号不相同。
网络号为192.168.0
,主机号分别为13
,14
, 1
。
在由路由器、电视和光猫组成的局域网中,它们的网络号也相同,主机号不相同。
网络号为192.168.1
,主机号分别为10
,11
,1
。
注意:
在上图中,前三个字节作为网络号,但在真正的网络中,不一定要以前三个字节为网络号。
网络号有两种分法:
- IP地址分类(ABCDE类)。
前缀的几位二进制位用来表示这个IP地址的类别。
就拿A,B类IP地址来说,主机号太长了,很少有这么大的局域网,主机的数量达到了一个亿多。现在很少用这种分类的方式划分IP地址,所以就不过多赘述。 - 子网掩码
子网掩码也是一个32位二进制数,用来表示IP地址哪部分用作网络地址。
就比如:255.255.255.0 二进制:11111111.11111111.11111111.00000000
可以看到这个子网掩码左边全是1,右边全是0。
这个子网掩码的前24位都是1,就表示IP地址中的前24位用来当作网络号,后8位用来当作主机号。
可以在windows控制台输入ipconfig,查看自己的IP地址和子网掩码。
IPv4地址:172.20.10.3
子网掩码:255.255.255.240 二进制:11111111.11111111.11111111.11110000
这个子网掩码表示IP地址前28位表示网络号,后4位表示主机号。
将 IP 地址和子网掩码进行“按位与”
操作,得到的结果就是网络号。
将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。
举个例子:
IP地址: 10101100.00010100.00001010.00000011
子网掩码:11111111.11111111.11111111.11110000
网络号:10101100.00010100.00001010.00000000
= 127.20.10.0
主机号:00000000.00000000.00000000.00000011
= 0.0.0.3
特殊的IP地址
假设有一个IP地址是:192.168.0.11 子网掩码:255.255.255.0
那么可以得到这个局域网的网络号:192.168.0.0
1.主机号部分全为0的IP地址
主机号为0的IP地址:192.168.0.0 。
同时也是网络号,这个主机IP在局域网中是不使用的。
2.主机号部分全为1的IP地址
主机号全为1的IP地址:192.168.0.255 这个IP地址会作为广播地址来使用
3.以127开头的IP地址
以127开头的IP,127.*,被用作环回IP。
4.主机号为1的IP
主机号为1的IP,在这个局域网中是:192.168.0.1一般用作网关IP,这里只是一般来说,并不是绝对的,也可以用主机号为其他数字的IP作为网关IP。
2.路由选择
路由选择具体负责的就是数据传送的路径。就像现实世界中,从一个地方到另外一个地方可能有好几条路径,使用高德地图就可以知道哪条路径最短,最省时间。
但是网络环境比较复杂,一些路由器只知道与它相邻的路由器的情况,并不知道目标主机在哪,只能由把数据从一个路由器转给另一个路由器,逐渐逼近目标主机。
如下图:
A路由器知道B路由器的情况,但不知道C路由器的信息,所以就把数据传给路由B了。路由B把数据给路由C,重复上述过程,可以把数据送到终点。
路由器有一个路由表,路由器在路由表中寻找目的IP。
- 如果找不到,会默认把数据发给上一级路由器,上一级路由器更高级,拥有的信息更多。
- 如果找到了,那就把数据发给指定的下一个路由器。
相关文章
- 10-05 通过一个例子演示如何使用CSS中的伪类选择器hov
- 10-05 CSS:hover 选择器的使用简单介绍
- 10-05 如何使用伪悬停
- 10-05 OpenVPN 使用用户名/密码身份验证
- 10-05 Servlet生成验证码,通过账号密码和验证码验证
- 10-05 使用java连接AD域并验证账号密码是否正确
- 10-05 【学习笔记】IT项目管理-挣值管理(EVM)
- 10-05 学习JUC源码(三)——条件等待队列(源码分析结合
- 10-05 通过拆解一个简单的C程序,分析汇编代码,了解计算机
- 10-05 什么是共享单车黑名单制度?共享单车黑名单制度
- 10-05 如何开启Android手机的便携式热点功能
- 10-05 360n5s发布会直播地址360n5s新品发布会视
- 10-05 【第200期】面试官:您能简单讲一下SpringM
- 10-05 【第411期】Docker连杀15题,你能坚持哪题
- 10-05 【第432期】面试官:您的项目中使用Redis的目
- 10-05 ZEEKR 001 FR高性能车型预热:搭载4电机
- 10-05 我国网民规模达10.79亿,互联网普及率达76.4
- 10-05 《2023年标准地图》正式上线
- 10-05 stm32内存包括哪些类型(stm32内存分为几个
- 10-05 stm32采集+数据处理程序(stm32采集+数据
- 最近发表