欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > IP协议的相关特性

IP协议的相关特性

日期:2023-09-20 12:59

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,主机号分别为1314, 1

在由路由器、电视和光猫组成的局域网中,它们的网络号也相同,主机号不相同。
网络号为192.168.1,主机号分别为10111

注意:
在上图中,前三个字节作为网络号,但在真正的网络中,不一定要以前三个字节为网络号。

网络号有两种分法:

  • 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。

  • 如果找不到,会默认把数据发给上一级路由器,上一级路由器更高级,拥有的信息更多。
  • 如果找到了,那就把数据发给指定的下一个路由器。

关灯