子网掩码

子网寻址

1. 从两级IP地址到三级IP地址

    <1>. IP地址利用率有时很低。

    <2>. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏。

    <3>. 两级IP地址不够灵活。

为了解决上述问题,1985年起在IP地址中增加了一个“子网号字段”,使两级IP地址变为三级IP地址。这种方法叫做划分子网( subnetting ), 或子网寻址子网路由选择

2. 划分子网的基本思路如下:

    <1>. 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网( subnet )。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。

    <2>. 划分子网的方法是从网络的主机号借用若干位作为子网号 subnet-id,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变成三级IP地址:网络号、子网号和主机号。也可以用以下记法来表示:

IP地址 ::= { <网络号>, <子网号>, <主机号>}

    <3>. 凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。

 

子网掩码

1. 从IP数据报的首部并不知道源主机或目的主机所连接的网络是否进行了子网划分。这是因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须想办法,使IP数据报到达时路由器知道如何把它转发至某个子网。这就是子网掩码( subnet mask )。

子网掩码:也是32位,由一串1和跟随的一串0组成。子网掩码中的1对应于IP地址中原来的 net-id 加上 subnet-id,而子网掩码中的0对应于现在的 host-id 。

使用子网掩码的好处是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算( AND ),就立即得出网络地址来。

另外,不划分子网时,使用子网掩码可以更便于查找路由表。

如果一个网络不划分子网,则使用默认子网掩码。

    A类地址的默认子网掩码是255.0.0.0, 或 0xFF000000。

    B类地址的默认子网掩码是255.255.0.0, 或 0xFFFF000。

    C类地址的默认子网掩码是255.255.255.0, 或 0xFFFFFF00。

划分子网增加了灵活性,但却减少了能够连接在网络上的主机数。

同样的IP地址和不同的子网掩码可以得出相同的网络地址,但是,不同的子网掩码的效果是不同的。

2. 使用子网时分组的转发

使用子网划分时,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。

在划分子网的情况下,路由表转发分组的算法如下:

    <1>. 从收到的数据报的首部提取目的IP地址 D 。

    <2>. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和 D逐位相“与”(AND操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还要把 D 转换成物理地址,把数据报封装成帧再发送出去),转发任务结束。否则就是间接交付,执行<3>。

    <3>. 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行<4>。

    <4>. 对路由表中的每一行(目的网络地址、子网掩码、下一跳地址),用其中的子网掩码和 D 逐位相“与”(AND操作),其结果为 N 。若 N 与该行的目的网络地址匹配,则数据报传送给指明的下一跳路由器;否则,执行<5>。

    <5>. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行<6>。

    <6>. 报告转发分组出错。

posted on 2015-02-10 16:42  柴科夫斯不是基  阅读(493)  评论(0编辑  收藏  举报

导航