互联网中有数百万台的主机和路由器,为了确切的标识它们,TCP/IP建立了一套编址方案,为每台主机和路由器分配一个全网唯一的地址,即IP地址。任何两台主机的ip地址不能相同,但是允许一个主机拥有多个ip地址。
2.ip地址结构及分类这里介绍的是ipv4版本的ip地址,也是大家现阶段都在用的ip地址。
ip地址是由2位二进制数,即4个字节组成的,由网络号和主机号两个字段组成。总的来说,寻址的过程是:先按网络号把网络找到,再按主机号把主机找到。
为了便于对ip地址进行管理,同时还考虑到网络的差异很大,ip地址分为5类,即A类到E类,如下所示
这些2位的地址通常写成四个二进制的数,其中每个整数对应一个字节,这就是点分十进制记法,例如我的ip地址就是.48.16.10。
关于上图中的网络号范围:
A类地址网络号占用一个字节,但是由于有一位是类别位,只有7位可供使用,但是由于规定,网络字段全0是个保留字段表示本网络,而()是另外一个保留字段,作为本地软件的环回测试。我们常见的.0.0.1表示本机,原因也是出自这里。所以A类地址可以指派的网络号个数为(2^7-2).
B类网络地址网络号有两个字节,前两位为10已经固定,只剩下14位可用,由于这14位无论怎么取值都不会使得网络号为全0或者全1,但是实际上规定,B类不指派.0.0.0,所以最小网络地址为.1.0.0。因此B类地址可指派的网络号个数为(2^14-1).
C类地址有个字节的网络字段号,前三位固定,只有剩下21位可用,同样C类地址.0.0.0也不指派,可指派的最小网络地址也是.0.1.0。因此C类地址可指派的网络号个数为(2^21-1).
可以看出区分各类地址最简单的方法就是看它的第一个十进制整数:
目前大量使用的是A、B、C三类地址,当某单位申请一个ip地址时,实际上只是申请到了一个网络号,具体主机号由本单位自行分配。
.建立子网现在所有的主机都支持子网编址,不是把ip地址看成单纯的网络号+主机号,而是把主机号再分成一个子网号和一个主机号。这个分配的过程就是管理员建立子网的过程。
举个例子,假设这里有个B类网络地址(10.),在剩下的16bit中,8bit用于子网号,8bit用于主机号,格式如下所示。
这样就允许有个子网,每个子网有台主机。
子网对于外部来说隐藏了内部网络组织的细节。在我们的网络例子中,所有的ip地址都有一个B类网络号10.。但是其中有超过0多个子网,多于台主机分配在这些子网中,由一台路由器提供Intrnt的接,在各子网之间用路由器互连。
4.子网掩码上例中对于主机号的分配我们是把16位拆分成8位子网号和8位主机号,那么为什么不是7位子网号9位主机号呢,这里就涉及到子网掩码的作用了。
TCP/IP体系规定用一个2位的子网掩码来表示子网号字段对应的长度。具体的做法是:子网掩码由一连串的‘1’和一连串的‘0’组成,‘1’对应于网络号和子网号字段,而‘0’对应主机号。
现在我们来看一个例子。假设还是分配到一个B类地址10.。其子网掩码是...。可以看出前24位为‘1’,后‘8’位是‘0’,说明网络号+子网号为前24位,子网号为24-16=8位,主机号为后8位。划分的主机地址格式为
如果子网掩码为..11111.,那么子网号有2-16=7位,主机号有9位。对应的主机地址格式就变成:
通过上述例子我们便可以知道子网掩码的作用就是用来确定对主机号的划分。
A、B、C类ip地址默认的子网掩码分别为:.0.0.0、..0.0、...0。
有了子网掩码,总路由器才可以确定把数据转发到哪个子网。举个例子:
假设一个公司网络的网段为10.。子网掩码...00000(前26位是网络号+子网号,后6位是主机号)。
这时外界计算机要将一个数据传送给ip地址为10..16.98的主机,那么这个数据会先到公司的总路由器,进入10.网络中。总路由器接收到了这个数据该转发到哪个子网中呢?
首先将10..16.98转化为2进制为.11110..00010,根据子网掩码便可以确定网段为.11110(10.),子网号为01(65),主机号为(4)。
最终路由器把数据转发到第65个子网上,在由子网路由器转发到第4个主机上。
5.同一网段想在同一网段,必须做到网络标识相同。各类IP的网络标识算法都是不一样的,需要根据子网掩码的位数来判断。
算法只要把IP和子网掩码的每位数AND就可以了。(AND方法:0和1=0 0和0=0 1和1=1)
如:And ..0.1,...0,先转换为二进制,然后AND每一位。IP: 00000...子网掩码: ...得出AND结果: 00000...转换为十进制..0.0,这就是网络标识。
其实很容易理解,只要两个ip地址的网络号和子网号都一样就是同一网段。而网络号和子网号的位数是需要根据子网掩码才可以知道了,上述算法的原理也是基于此。
举例:假设我们的主机地址是..1.1(一个B类地址),而子网掩码是...0(子网号8位,主机号8位主机号)
如果目的ip地址为..1.5,那么我们就知道b类网络号是相同的(.),子网号是相同的(1),属于同一网段
如果目的ip地址为..4.5,那么我们就知道b类网络号是相同的(.),但是子网号是不同的(1和4)。不属于同一网段
如果目的ip地址为..4.5,那么我们就知道b类网络号是不相同的(.和.),后面比较就没必要了,不属于同一网段。
一般来说,如果主机没有设置防火墙禁止别人访问的话,位于同一网段是主机是可以直接访问的。
6.私有地址A、B、C三类地址是我们常见的IP地址段。在这三类地址中,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了个IP地址段,作为私有地址,供组织机构内部使用。这三个地址段分别位于A、B、C三类地址内:
A类