月亮的太阳

小乖的BLOG
posts - 114, comments - 41, trackbacks - 0, articles - 27
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

TCP/IP子网掩码教程

Posted on 2006-01-12 14:13 月亮的太阳 阅读(260) 评论(0)  编辑  收藏 所属分类: 网络
一、缺省A、B、C类地址,子网掩码; 

二、子网掩码的作用: 

  code: 
IP地址 192.20.15.5 11000000 00010100 00001111 00000101 
子网掩码 255.255.0.0 11111111 11111111 00000000 00000000 
网络ID 192.20.0.0 11000000 00010100 00000000 00000000 
主机ID 0.0.15.5 00000000 00000000 00001111 00000101 


计算该子网中的主机数:2^n-2=2^16-2=65534 
其中:n为主机ID占用的位数2: 192.20.0.0(表示本网络), 192.20.255.255 (表示子网广播); 
该子网所容纳主机的IP地址范围:192.20.0.1~192.20.255.254 

三、实现子网 

1.划分子网的理由: 
① 远程LAN互连; 
②连接混合的网络技术; 
③增加网段中的主机数量; 
④减少网络广播。 
2.子网的实现需要考虑以下因素: 
①确定所需的网络ID数,确信为将来的发展留有余地; 
谁需要占用单独的网络ID? 
▲每个子网; 
▲每个WAN连接; 
②确定每个子网中最大的计算机数目,也要考虑未来的发展; 
谁需要占用单独的主机ID? 
▲每个TCP/IP计算机网卡; 
▲每个TCP/IP打印机网卡; 
▲每个子网上的路由接口; 
③考虑增长计划的必要性: 
    假设您在InterNIC申请到一个网络ID:192.20.16.0 但你有两个远程LAN需要互连,而且每个远程LAN各有60台主机。 
    若不划分子网,您就只能使用一个网络ID:192.20.16.0,使用缺省子网掩码:255.255.255.0,而且在这个子网中可以容纳的主机ID的范围: 192.20.16.1~192.20.16.254,即可以有254台主机。 
    现在若根据需要划分为两个子网,即借用主机ID中的两位用作网络ID,则子网掩码就应变为:255.255.255.192(11000000)目的是将借用的用作网络I D的位掩去。看一看划分出来的子网的情况: 
▲192.20.16.65~126 
192.20.16.01000001~01111110 
本网段(01 网段)主机数:2n-2=26-2=62或126-65+1=62 
▲192.20.16.129~190 
192.20.16.10000001~10111110 
本网段(10 网段)主机数:2n-2=26-2=62或190-129+1=62 
▲子网号00全0表示本网络,子网号11全1是子网屏蔽,均不可用。
提示:在早期的子网划分标准RFC950中,不能使用全0或全1做为二进制子网标识(在子网划分公式2n-2中的-2处理)。在RFC1812中,这个限制已被取消。下面内容摘自于RFC1812。
“以前版本的文档认为,子网号不能为0或-1,并且至少要有两位长。在一个CIDR领域,子网号就是网络前缀的一种延伸。如果没有前缀,那么子网号也就不存在了。从CIDR观点来看,这种对子网号的限制是没有意义的,可以安全地忽略。”
 
这个方案可以满足目前需求,但以后如果需要加入新的网段则必须重新划分更多的子网(即借用更多的主机ID位用作网络ID),或如果以后需要每个子网中的主机数更多则必须借用网络I D位来保证更多的主机数。 

四、定义子网号的方法 

若InterNIC分配给您的B类网络ID为129.20.0.0,那么在使用缺省的子网掩码255.255.0.0的情况下,您将只有一个网络ID和216-2台主机(范围是:129.20.0.1~129.20.255.254)。现在您有划分4个子网的需求。 
1.手工计算法: 
①将所需的子网数转换为二进制 
4→00000100 
②以二进制表示子网数所需的位数即为向缺省子网掩码中加入的位数(既应向主机ID借用的位数) 
00000100→3位 
③决定子网掩码 
缺省的:255.255.0.0 
借用主机ID的3位以后:255.255.224(11100000).0,即将所借的位全表示为1,用作子网掩码。 
④决定可用的网络ID 
列出附加位引起的所有二进制组合,去掉全0和全1的组合情况 

  code: 
  组合情况     实际得到的子网ID 
   000╳   
001→32 (00100000 ) 129.20.32.0 
010→64 (01000000 ) 129.20.64.0 
011→96 (01100000 ) 129.20.96.0 
100→128(10000000) 129.20.128.0 
101→160(10100000) 129.20.160.0 
110→192(11000000) 129.20.192.0 
   111╳   


⑤决定可用的主机ID范围 

  code: 
子网      开始的IP地址 最后的IP地址 
129.20.32.0 129.20.32.1 129.20.63.254 
129.20.64.0 129.20.64.1 129.20.95.254 
129.20.96.0 129.20.96.1 129.20.127.254 
129.20.128.0 129.20.128.1 129.20.159.254 
129.20.160.0 129.20.160.1 129.20.191.254 
129.20.192.0 129.20.192.1 129.20.223.254 


2.快捷计算法: 
①将所需的子网数转换为二进制 
4→00000100 
②以二进制表示子网数所需的位数即为向缺省子网掩码中加入的位数(既应向主机ID借用的位数) 
00000100→3位 
③决定子网掩码 
缺省的:255.255.0.0 
借用主机ID的3位以后:255.255.224(11100000).0,即将所借的位全表示为1,用作子网掩码。 
④将11100000最右边的"1"转换为十进制,即为每个子网ID之间的增量,记作delta d=32 
⑤产生的子网ID数为:2^m-2 (m:向缺省子网掩码中加入的位数) 
可用子网ID数:2^3-2=6
⑥将d附在原网络ID之后,形成第一个子网网络ID 129.20.32.0 
⑦重复⑥,后续的每个子网的值加d,得到所有的子网网络ID 
129.20.32.0 
129.20.64.0 
129.20.96.0 
129.20.128.0 
129.20.160.0 129.20.192.0 
129.20.224.0→224与子网掩码相同,是无效的网络ID

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问