0 引言
走走走,停停停~
话不多说,闲言少续,IP相关知识总结一波。
1 IP地址分类
简单粗暴上张截图先,地址分类如下所示,其中ABC类地址是单播地址,D类E类是多播。
IP协议规定(这里指的是IPV4,IPV6后面再讲),在因特网中所有的主机和路由器,必须能够接受长度不超过576字节的数据报。路由器转发时,数据报太长传的慢,太短分片又太多。这个576是512(假定上层交下来的数据长度)字节,加上最长的IP首部60字节,再加上4字节的富裕量,就得到了576字节。
IPV4首部长度由固定20字节长度加可变部分组成,可变部分
IPV6把IP数据报的首部长度做成固定的
IP头部校验和计算方法在博文--IP头部校验--中有介绍。
IP分组转发的方式如下所示:
2 划分子网和构造超网
2.1 为啥要划分子网?
第一,最直接的原因就是不够用呗,一个A类地址那么多,用不了多浪费。
第二,每个物理网络都对应一个网络号,会造成路由表过大,路由器成本增加(需要更多的存储空间来存储),查询表项耗时,路由器间定期交互的信息急剧增加。
关于这条原因,我一开始怎么也想不通,划分子网前主机都在一个物理网络,路由器只需要一条表项就可以,划分后就是多个子网,根据《计算机网络》第七版138页的如下描述,路由器需要为每个子网提供网络号和子网掩码,这不是导致路由表项更多了吗?
划分子网前,所有IP处于一个物理网络,共用一个网络号。
划分子网后,可划分多分物理子网络,由路由器根据子网掩码将分组发往对应物理网络
后来花了点时间总算是明白,我这里就是走入了一个误区。不是拿划分前的一个大物理网络去和划分后的多个子网去比,而是要把这些子网就看做是物理网络。如上面截图4-19,若是145.13.3.0、145.13.21.0和145.13.7.0是三个独立的物理网络,那么路由器R2和R3中就是存储三条表项,虽然下一跳都是指向R1,但需要分别识别一个网络地址;但若这三个网络是子网,那么R2和R3中只需存储一条表项,只需要识别145.13.0.0,下一跳到R1,由R1去寻找具体子网就好。前面提到的为每个子网提供网络号和子网掩码也只是在直接相连的路由器R1中提供,不需要在其他路由器如R2和R3中存储。
第三,灵活,划分子网后可以不用每次新建物理网络时都提前申请新的IP地址,使用已有的IP地址子网划分即可。
2.2 构造超网是啥意思?
我们先了解一个新的概念,无分类编址(Classless Inter-Domain Routing, CIDR),这个是啥东东?就是以前IP地址分ABCDE类,现在不分了,格式如下:
IP地址::={<网络前缀>,<主机号>}
无分类编址采用32位地址掩码,也可继续称为子网掩码。“CIDR不适用子网”,指得是没有在32位地址中指出某些位表示子网字段。
CIDR可采用斜线记法,192.168.5.23/16,后面这个16就是指32为地址掩码中1的个数,注意这个1个数从高位连续,11111111111111110000000000000000。
乍一看上面IP组成,这不就是网络号和主机号组成吗?你没看错,实际上就是这个意思。但是他就把网络前缀一致的IP看成一个地址块,我不管你是A类、B类还是C类,这叫做地址聚合。
有啥好处吗?当然!如截图4-25,一个ISP,手里有64个C类地址发出去,每个对应一个物理网络,与ISP的路由器交换信息的路由器必需要存储64条路由信息。但是使用网络前缀,就只需要存储一条表项。
有啥好处吗?当然!按照书中的例子解释,一个ISP,手里有64个C类地址发出去,每个对应一个物理网络,ISP之外的路由器中必需得有64条表项查询。
有了以上概念,大概就明白啥叫构成超网了,啥?还不明白?那就自己再想想。