终于来到了网络的最后一篇,继续加油!
IP 知识全家桶
IP 基本认识
IP 在 TCP/IP 参考模型中处于第三层,也就是网络层。
网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
使用 IP 的最终目的,就是在整个网络系统中,将数据包发送给最终的目的主机。
这里对比一下 IP(网络层) 的 MAC(数据链路层)的区别:IP 是用来在主机之间通信的,而 MAC 的作用是实现「直连」的两个设备之间通信,而 IP 则负责在「没有直连」的两个网络之间进行通信传输。可以看下图感受一下:
计算机网络中也需要「数据链路层」和「网络层」这个分层才能实现向最终目标地址的通信。在传输过程中,源 IP 地址和目标 IP 地址是不会变化的(前提是未使用 NAT 网络),只有源 MAC 地址和目标 MAC 地址不断变化。
IP 地址基础知识
IP 地址(IPv4 地址)由 32 位正整数来表示,IP 地址在计算机是以二进制的方式处理的。
而人类为了方便记忆采用了点分十进制的标记方式,也就是将 32 位 IP 地址以每 8 位为组,共分为 4 组,每组以「.」隔开,再将每组转换成十进制。所以说,IP 地址最大也就是 2^32,大致 43 亿台计算机。
实际上,IP 地址的分配是依据网卡来完成;如路由器、服务器等都有 2 个以上网卡,那就会有 2 个以上的 IP 地址。
可以根据更换 IP 地址的技术 NAT 来完成超过 43 亿台计算机的连接。
IP 地址分类
可以分为 5 类,分别为 A、B、C、D、E 类。
- A、B、C类地址
其中对于 A、B、C 类主要分为两个部分,分别是网络号和主机号。可以看下面的表格:
这里以 C 类地址距离,主机号共占 8 位,最大主机个数为:2^8 - 2 = 254。减去 2 就是因为 IP 地址中有两个 IP 是特殊的,分别是主机号全为 1 和 全为 0 地址。主机号全为 1 指定某个网络下所有主机,用于广播;主机号全为 0 指定某个网络。
引出新的一点,广播地址的作用是用于在同一个链路中相互连接的主机之间发送数据包。广播地址可以分为本地广播和直接广播两种。
- 在本网络内广播叫做本地广播。
- 在不同网络之间的广播叫做直接广播。但是会有安全问题,多数路由器都设置为不转发。
- 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 ~ 2238.255.255.255:用户可用的组播地址,可用于 Internet;
- 239.0.0.0 ~ 239.255.255.255:本地管理组播地址,可供内部网在内部使用,尽在特定的本地范围内有效。
IP 分类的优点很明显,可以很快找出网络地址和主机地址。IP 分类可以直接根据 IP 地址来看:
当然,IP 缺点也有两个:
- 同一网络下没有地址层次,缺少了地址的灵活性;
- A、B、C 类地址,不能很好的与现实网络匹配;C 类地址最大主机数量太少,B 类地址最大主机数量太多。
无分类地址 CIDR
正因为 IP 分类存在许多缺点,所以后面提出了无分类地址的方案,即 CIDR。
这种方式不再有分类地址的概念,32 比特的 IP 地址被划分为两部分,前面是网络号,后面是主机号。
表示形式 a.b.c.d/x,其中 /x 表示前 x 位属于网络号, x 的范围是 0 ~ 32,这就使得 IP 地址更加灵活。示例如下:
还有另一种划分网络号与主机号形式,那就是子网掩码,掩码的意思就是掩盖掉主机号,剩余的就是网络号。将子网掩码和 IP 地址按位计算 AND,就可得到网络号。
- 网络号和主机号存在的意义如下:
因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机。
路由器寻址工作中,也就是通过这样的方式来找到对应的网络号的,进而把数据包转发给对应的网络内。
- 子网划分
子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。如下:
也就是借助子网掩码的最后一段,来进行主机地址的分类。最后一段中为 1 的部分就是从主机号中借用的子网网络地址。
这里有一个例子,对一个 C 类地址进行子网划分:
划分后结果如下:
公有 IP 地址与私有 IP 地址
对于 A、B、C 类地址,实际分为公有 IP 和私有 IP:
公有 IP 地址是有个组织统一分配的,假设你要开一个博客网站,那么你就需要去申请购买。并且公有 IP 地址基本上在整个互联网范围内需要保持位移。
私有 IP 地址通常是内部的 IT 人员管理,公有 IP 地址是由 ICANN 组织管理,中文叫「互联网名称与数字地址分配机构」。他们是按照州的方式来分