中华视窗是诚信为本,市场在变,我们的诚信永远不变...
这里引入两个概念:
1、将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。
2、将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。
同时网络号和主机号也是IP地址的两个重要组成部分。其中网络号用来标识网段(局域网);主机号用来标识局域网中的主机。
这里除了使用子网掩码的方式划分,还有一种古老的方式,将IP地址划分为以下5类:
注意:这种“粗糙”的划分方式,存在 IP 地址浪费的问题。例如在A、B类地址中,由于主机号长度过长,并且实际网络架设时,连接的主机数量又常远小于最大主机数,会造成大量 IP 地址浪费。
三、特殊IP地址 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;此时想这个IP地址发送UDP数据包,这个数据包就会被转发给整个局域网中所有主机(TCP不支持广播);127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1;主机号为1。如192.168.0.1一般作为网关IP
注意:TCP/IP 协议规定,不同子网之间无法直接通信,如果想要通信需要“网关”进行转发。通常路由器就担当“网关”这样一个角色。
四、解决 IP 地址不够用
由于IP地址是一个32位的二进制数,因此最大的IP地址数就为 2322^{32}232 次方,大约是 42亿9千万,而全球人口数量接近 80亿,IPV4 在2019年11月25日被正式分配完毕,为了解决IP地址不够用的问题当下主要有以下解决方案:
1、动态分配IP地址
设备上网才分配IP地址,不上网不分配。这种方案治标不治本,并没有增加 IP 数量,只能在一定程度上解决问题,不能彻底解决 IP 地址不够用的问题。
2、NAT机制
NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能。在探讨NAT技术之前,我们先了解以下3个概念:
内网(局域网)IP:10.* 、172.16.*-172.31.*、 192.168.*外网 IP:除去内网 IP 剩下的IP地址均为外网 IP全局IP要求唯一,但是私有(内网)IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的。
NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法,并且同一局域网在转化时会分配同一个全局IP,也就是说此时一个全局IP就代表当前局域网内所有的网络设备。下图IP转换过程:
那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?此时NAPT就可以解决这个问题,通过使用使用 IP+port 来建立这个关联关系:
3、使用IPV6
IPV4使用4个字节,32位来表示IP地址。IPV6使用16个字节,128位来表示IP地址,经过简单计算,大约是:2^32*2^32*2^32*2^32这个数字无比巨大,甚至说给世界上每一粒沙子都分配一个IP地址都搓搓有余。
但是对当前来说,有余IPV6和IPV4协议并不兼容,使用IPV6需要升级硬件,成本较高,又由于NAT技术的使用目前极大缓解了IPV4的困境,所以IPV6目前还多处于预备阶段,尚未启用。
五、路由选择
对于网络数据传输,不是想象中那样,数据直接从源主机到达目的主机,而是类似在地图中,从A到B的过程:
IP地址描述的是路途总体的起点和终点。而行进也必须一个地点一个地点的前进,由MAC地址来描述路途上每一个区间的起点和终点。
IP数据报在进行网络转发过程中,和上述情况类似,就是一个逐渐问路的过程,每个路由器只认识周围的情况,很可能不清楚目的IP所在的位置,此时路由器就会指出一条路径(路由表中的“下一条”表项),将数据报引向更上一级的路由器中,重复上述过程,最终会逐渐逼近目标,最终实现数据报的转发。
其实在“下一跳”寻址的过程中,还会使用到一个关键的协议:ARP协议。
ARP是一个介于数据链路层和网络层之间的协议,ARP协议建立了IP地址与MAC地址的映射关系。
在数据链路层,寻找下一跳设备MAC地址的过程,称为ARP寻址。
下面是具体的寻址过程:
主机和路由器中都保存了一张ARP缓存表:通过IP地址可以找到对应的MAC地址。根据下一跳设备的IP地址,在ARP缓存表中能找到对应的MAC地址,则可以设置目的MAC并发送数据报。如果找不到,则发送ARP广播数据报:目的MAC为广播地址,询问下一跳设备的MAC地址。