IP 位于 TCP/IP 参考模型的第三层,也就是⽹络层。
⽹络层的主要作⽤是:实现主机与主机之间的通信,也叫点对点通信。
1 、网络层( IP) 与数据链路层 (MAC) 有什么关系呢?
MAC 的作用:
实现【直连】的两个设备之间通信。
IP 的作用:
负责在【没有直连】的两个⽹络之间进⾏通信传输。
在⽹络数据包传输中,源IP地址和⽬标IP地址在传输过程中是不会变的,只有源MAC地址和⽬标MAC⼀直在变化。
实际上让 43 亿台计算机全部连⽹其实是不可能的,更何况 IP 地址是由「⽹络标识」和「主机标识」这两个部分组成的,所以实际能够连接到⽹络的计算机个数更是少了很多。
但可以根据⼀种可以更换 IP 地址的技术 NAT ,使得可连接计算机数超过 43 亿台。
1 、 IP 地址分类
IP 地址被分为了五种类型
最⼤主机数=2^主机号位数-2,其中有两个地址,全0和全1是⽐较特殊的
⼴播地址⽤于在同⼀个链路中相互连接的主机之间发送数据包。⼴播地址可以分为本地⼴播和直接⼴播两种。
在本⽹络内⼴播的叫做本地⼴播。例如⽹络地址为 192.168.0.0/24 的情况下,⼴播地址是 192.168.0.255 。
因为这个⼴播地址的 IP 包会被路由器屏蔽,所以不会到达 192.168.0.0/24 以外的其他链路上。
在不同⽹络之间的⼴播叫做直接⼴播。
例如⽹络地址为 192.168.0.0/24 的主机向 192.168.1.255/24 的⽬标地址发送 IP 包。收到这个包的路由器, 将数据转发给 192.168.1.0/24 从⽽使得所有 192.168.1.1~192.168.1.254 的主机都能收到这个包(由于直接⼴播有⼀定的安全问题,多数情况下会在路由器上设置为不转发。)
( 2 )什么是 D 、 E 类地址?
D 类和 E 类地址是没有主机号的,所以不可⽤于主机 IP , D 类常被⽤于多播, E 类是预留的分类,暂时未使⽤。
多播地址⽤于将包发送给特定组内的所有主机。由于⼴播⽆法穿透路由,若想给其他⽹段发送同样的包,就可以使⽤可以穿透路由的多播。
多播使⽤的 D 类地址,其前四位是 1110 就表示是多播地址,⽽剩下的 28 位是多播的组编号。
从 224.0.0.0 ~ 239.255.255.255 都是多播的可⽤范围,其划分为以下三类:
224.0.0.0 ~ 224.0.0.255 为预留的组播地址,只能在局域⽹中,路由器是不会进⾏转发的。
224.0.1.0 ~ 238.255.255.255 为⽤户可⽤的组播地址,可以⽤于 Internet 上。
239.0.0.0 ~ 239.255.255.255 为本地管理组播地址,可供内部⽹在内部使⽤,仅在特定的本地范围内有效。
( 3 ) IP 分类的优缺点
优点:
可以根据 IP 地址的前四位来判别 IP 地址属于哪个类别。简单明了,选路简单。
缺点:
同⼀⽹络下没有地址层次,⽐如⼀个公司⾥⽤了 B 类地址,但是可能需要根据⽣产环境、测试环境、开发环境来划
分地址层次,⽽这种 IP 分类是没有地址层次划分的功能,所以这就缺少地址的灵活性。
A 、 B 、 C 类有个尴尬处境,就是不能很好的与现实⽹络匹配。
C 类地址能包含的最⼤主机数量实在太少了,只有 254 个,估计⼀个⽹吧都不够⽤。
⽽ B 类地址能包含的最⼤主机数量⼜太多了, 6 万多台机器放在⼀个⽹络下⾯,⼀般的企业基本达不到这个规模,
闲着的地址就是浪费。这两个缺点,都可以在 CIDR ⽆分类地址解决。
( 4 ) CIDR ⽆分类地址
这种⽅式不再有分类地址的概念, 32 ⽐特的 IP 地址被划分为两部分,前⾯是⽹络号,后⾯是主机号。
(i) 如何划分⽹络号和主机号呢?
表示形式 a.b.c.d/x ,其中 /x 表示前 x 位属于⽹络号, x 的范围是 0 ~ 32 ,这就使得 IP 地址更加具有灵活性。
还有另⼀种划分⽹络号与主机号形式,那就是⼦⽹掩码,掩码的意思就是掩盖掉主机号,剩余的就是⽹络号。
将⼦⽹掩码和 IP 地址按位计算 AND ,就可得到⽹络号。
( ii )为什么要分离⽹络号和主机号?
因为两台计算机要通讯,⾸先要判断是否处于同⼀个⼴播域内,即⽹络地址是否相同。如果⽹络地址相同,表明接受⽅在本⽹络上,那么可以把数据包直接发送到⽬标主机。
路由器寻址⼯作中,也就是通过这样的⽅式来找到对应的⽹络号的,进⽽把数据包转发给对应的⽹络内。
( iii )如何进⾏⼦⽹划分?
通过⼦⽹掩码划分出⽹络号和主机号,那实际上⼦⽹掩码还有⼀个作⽤,那就是划分⼦⽹。
⼦⽹划分实际上是将主机地址分为两个部分:⼦⽹⽹络地址和⼦⽹主机地址。形式如下:
假设对 C 类地址进⾏⼦⽹划分,⽹络地址 192.168.1.0 ,使⽤⼦⽹掩码 255.255.255.192 对其进⾏⼦⽹划分。
C 类地址中前 24 位是⽹络号,最后 8 位是主机号,根据⼦⽹掩码可知从 8 位主机号中借⽤ 2 位作为⼦⽹号(对应 4个⼦⽹)。
2 、公有 IP 地址与私有 IP 地址
在 A 、 B 、 C 分类地址,实际⼜分公有 IP 地址和私有 IP 地址。
平时我们办公室、家⾥、学校⽤的 IP 地址,⼀般都是私有 IP 地址。因为这些地址允许组织内部的 IT ⼈员⾃⼰管理、⾃⼰分配,⽽且可以重复。
因此,你学校的某个私有 IP 地址和我学校的可以是⼀样的。 就像每个⼩区都有⾃⼰的楼编号和⻔牌号,你⼩区家 可以叫 1 栋 101 号,我⼩区家也可以叫 1 栋 101 ,没有任何问题。但⼀旦出了⼩区,就需要带上中⼭路 666 号 (公⽹ IP 地址),是国家统⼀分配的,不能两个⼩区都叫中⼭路 666 。
所以,公有 IP 地址是有个组织统⼀分配的,假设你要开⼀个博客⽹站,那么你就需要去申请购买⼀个公有 IP ,这样全世界的⼈才能访问。并且公有 IP 地址基本上要在整个互联⽹范围内保持唯⼀
那么公有 IP 地址由谁管理呢?
私有 IP 地址通常是内部的 IT ⼈员管理,公有 IP 地址是由 ICANN 组织管理,中⽂叫「互联⽹名称与数字地址分配 机构」。 IANA 是 ICANN 的其中⼀个机构,它负责分配互联⽹ IP 地址,是按州的⽅式层层分配。
3 、 IP 地址与路由控制
IP 地址的⽹络地址这⼀部分是⽤于进⾏路由控制。路由控制表中记录着⽹络地址与下⼀步应该发送⾄路由器的地址。在主机和路由器上都会有各⾃的路由器控制表。
在发送 IP 包时,⾸先要确定 IP 包⾸部中的⽬标地址,再从路由控制表中找到与该地址具有相同⽹络地址的记录, 根据该记录将 IP 包转发给相应的下⼀个路由器。如果路由控制表中存在多条相同⽹络地址的记录,就选择相同位数最多的⽹络地址,也就是最⻓匹配。
举例说明:
环回地址是不会流向⽹络:
环回地址是在同⼀台计算机上的程序之间进⾏⽹络通信时所使⽤的⼀个默认地址。 计算机使⽤⼀个特殊的 IP 地址 127.0.0.1 作为环回地址。
与该地址具有相同意义的是⼀个叫做 localhost 的主机名。使⽤这个 IP 或主机名时,数据包不会流向⽹络。