关于子网掩码(Netmask)
2016-02-26 21:21
197 查看
关于子网掩码(Netmask)
关于IPv4的基础知识
IPv4简单来说,就是IP的第四个版本,是由32位二进制来表示,但是一般为了方便记忆,用十进制来表示,并每八位之间用“.”隔开,所以:IP的表示范围: 00000000.00000000.00000000.00000000 - 11111111.11111111.11111111.11111111 换算为十进制: 0.0.0.0 - 255.255.255.255
而IP又可以分为Net_ID(网络号码)和Host_ID(主机号码)两部分,在同一个网段内,Net_ID相同而Host_ID不同,又根据Net_ID和Host_ID的位数长短的不同而将全部IP分为ABCDE五个等级:
二进制表示为: Class A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>Net_ID的开头为0 |-Net_ID-|---------Host_ID----------| Class B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>Net_ID的开头为10 |------Net_ID-----|-----Host_ID-----| Class C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>Net_ID的开头为110 |----------Net_ID---------|-Host_ID-| Class D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>Net_ID的开头为1110 |---------------Net_ID--------------| Class E : 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>Net_ID的开头为1111 |---------------Net_ID--------------| 十进制表示为: Class A : 0.x.x.x - 127.x.x.x Class B : 128.x.x.x - 191.x.x.x Class C : 192.x.x.x - 223.x.x.x Class D : 224.x.x.x - 239.x.x.x Class E : 240.x.x.x - 255.x.x.x
IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校,政府机构等场所,就可以集中使用私有的IP进行管理,而大家可以共用一个IP去连接上公网,这样,就省下了许多宝贵的Public IP
Private IP 网段: Class A : 10.0.0.0 - 10.255.255.255 Class B : 172.16.0.0 - 172.31.255.255 Class C : 192.168.0.0 - 192.168.255.255
既然叫Private IP那么,在公网上,这些IP就不能使用,而内部网络的Private IP 也就同样不能在公网上使用,使用私有IP的数据包则只能在同一个内部网络上面传输,不能直接通过公网来传输,因为在公网上这些IP并不存在,数据包必然会丢失。
为什么要使用子网掩码?
首先,我们先要想象一个情景:你在你的办公室或者实验室搭建了一个局域网,假使你使用的是C类地址的私有IP的话,本来你使用的只有 192.168.20.0 - 192.168.20.255 这一段,但是你的硬件只有集线器(Hub)的话,大家都知道,集线器与交换机(Switch)的最大不同是交换机是非共享型,而集线器是共享型,怎么理解呢?局域网内的一台主机要向另一台主机发送数据,如果网内使用的是集线器的话,那么集线器会给网络内部的其他主机都分别发送数据包,主机收到后会通过IP数据包包头判断,属于自己的数据包的话,则接收,否则就丢弃,而交换机则会直接判断出IP数据包属于哪个主机,而直接只给这台主机发送数据包。所以你的网内有集线器的话,那就要给 255x255=65025 个IP发送数据包,然而,可能你的实验室只有不到三十台主机,那如果使用的是A类地址的私有IP呢?,每收到一个IP数据包,则要向 255x255x255=16581375 个IP发送数据包,那么,网络将拥塞成何种样子。因此,为了划分不同的子网,子网掩码应运而生。
怎样计算子网掩码?
你使用 192.168.20.0-192.168.20.255 这一段的话,那么,你只需要最后面的8为变化,而前面的24位都不变,那么,前面24位为Net_ID后面八位为Host_ID,于是,子网掩码就为:11111111.11111111.11111111.00000000,换算成十进制就为:255.255.255.0 这样的话,你的集线器或者路由器就可以判断出你只想要使用192.168.20.0-192.168.20.255之间的 255 个IP,瞬间就将问题缩小了一个量级。那么如果想要更小呢?假如你最多不超过30台主机在此局域网内使用,那么你就只需要最后面的5位(2^5=32)就可以了,那么,网络规划就如下:二进制: Network : 192.168.20.00000000 - 192.168.20.00011111 Netmask : 255.255.255.11100000 十进制: Network : 192.168.20.0 - 192.168.20.32 Netmask : 255.255.255.224
相关文章推荐
- 从IPv4迁移到IPv6双栈优先
- IPv4耗尽 价格上涨成必然趋势
- 互联网业界风起云涌 IPv4地址惊现天价
- Linux IPv4代码分析系列(1)
- 什么是IPv4和IPv6
- 统一的IPv4/IPv6翻译与封装过渡技术——IVI/MAP-T/MAP-E
- 综合组网:如何选择IPv4或IPv6?
- IPV4-IPV6过渡技术之6to4隧道
- HuaweiSymantec之IPv4 over IPv4 隧道
- 【转】ipv6如何上网
- ipv6上ipv4网络并高速下载网盘资源
- iOS获得当前设备的IP最方便最好的方法 (分IPv4 & IPv6)
- 利用InetAddress类确定特殊IP地址 (转)
- 基于UDP的DayTime服务实现
- windows下查看MTU
- 黑马程序员Java笔记——网络编程
- IPV4数据报
- IPV4数据报
- 【Linux基础】地址格式转换
- 【Linux基础】数据存储优先顺序