IP协议的作用是什么?
简单点说,就是IP协议屏蔽了网络在数据链路层,物理层协议与实现技术上的差异。通过IP协议,网络层向传输层提供的是统一的IP分组,使得异构网络的互联变得容易。
一、IP地址
IP协议有两个版本,一个为IPv4,一个为IPv6,在目前大多数用的还是IPv4,所以在本文也只讨论这个版本的的协议。
IP 地址为IP协议所定义。这个 IP 地址由32位的二进制数组成,我们一般把它分成4端的十进制表示,地址范围为 0.0.0.0 ~ 255.255.255.255.
每一台想要联网的的计算机都会有一个 IP 地址,这个 IP 地址被分为两部分,分别为 网络部分 和 主机部分,但需要清楚的是,网络部分与主机部分所占用的二进制数是不固定的。
假如两台计算机的网络部分一模一样,我们就可以判断这个两台计算处于同一子网下。例如 192.168.43.1 和 192.168.43.2, 假如这两个 IP 地址的网络部分为 24 位,主机部分为 8 位。那么他们的网络部分都为 192.168.43,所以他们处于同一个子网中。
可是这里有一个问题,我们怎么确定网络部分是几位,主机部分又占几位呢?也就是说,我们无法单从两台计算机的 IP 地址去判断它们是否处在同一子网中。
为了解决这个问题,我们可以使用子网掩码。子网掩码和 IP 地址一样都是32位进制数,不过它的网络部分规定全部为1,主机部分规定全部为0。即假如上面那两个IP地址的网络部分为 24 位,主机部分为 8 位的话,那他们的子网掩码都为 11111111.11111111.11111111.00000000,即255.255.255.0。
那有了子网掩码,如何来判端IP地址是否处于同一个子网中呢。显然,知道了子网掩码,相当于我们知道了网络部分是几位,主机部分是几位。我们只需要把 IP 地址与它的子网掩码做与(and)运算,然后把各自的结果进行比较就行了,如果比较的结果相同,则代表是同一个子网,否则不是同一个子网。
例如,192.168.43.1和192.168.43.2的子码掩码都为255.255.255.0,把IP与子网掩码相与,可以得到他们都为192.168.43.0,进而他们处于同一个子网中。
