![]() |
|
||||||||||||||
| | 网站首页 | 文章中心 | 下载中心 | 图片中心 | 雁过留声 | 站长日记 | 网站论坛 | 苦菜花原创软件 | 在线游戏 | | ||
|
||
|
|||||
| IP地址基础知识 | |||||
| 作者:佚名 文章来源:本站原创 点击数: 更新时间:2006-7-26 | |||||
|
IP基础--1.IP地址 二进位和逻辑运算 在我们认识IP地址之前我想我们很有必要认识两个概念二进位和逻辑运算。虽然我也知道这两个东东都不好理解但如果不知道它们的工作原理那麽以後我们在讨论IP地址和子网的时候您就要靠死记了。不过一旦你知道了其原理那麽您在任何的IP网路中都不至於迷失所谓“万变不离其宗”是也。 二进位 (Binary)
我们人类最习惯的运算规则是十进位也就是从0到9为一圈回到零的时候就进一位数而我们前面讨论的bit和byte则是八进位即0到7为一圈回到零就进一位数另外还有十六进位由0到15为一圈回到零进一位但使用数字15很容易和十进位混乱所以在十六进位里面从10到15之间分别用英文字母A到F代替了所以我们通常看到的十六进位是从0到F的排列。 好了认识了上面这几种运算规则相信理解二进位也不难道理是一样的从0到1为一圈回到0进一。那麽我们看看十七个连续递增的十进位二进位和十六进位数字之间的比较将会是这样的 十进位 二进位 十六进位
27 26 25 24 23 22 21 20
例如我们要换算220这个十进位数字到二进位 我们找到128这栏位是最合适的(因为128的左边是256而220 界乎它们之间取其右则为 128 )。那麽我们在128这栏位上面填上1 其结果如下 128 64 32 16 8 4 2 1 IP地址基础知识 (48 阅读) IP基础--1.IP地址 二进位和逻辑运算 在我们认识IP地址之前我想我们很有必要认识两个概念二进位和逻辑运算。虽然我也知道这两个东东都不好理解但如果不知道它们的工作原理那麽以後我们在讨论IP地址和子网的时候您就要靠死记了。不过一旦你知道了其原理那麽您在任何的IP网路中都不至於迷失所谓“万变不离其宗”是也。 二进位 (Binary)
我们人类最习惯的运算规则是十进位也就是从0到9为一圈回到零的时候就进一位数而我们前面讨论的bit和byte则是八进位即0到7为一圈回到零就进一位数另外还有十六进位由0到15为一圈回到零进一位但使用数字15很容易和十进位混乱所以在十六进位里面从10到15之间分别用英文字母A到F代替了所以我们通常看到的十六进位是从0到F的排列。 好了认识了上面这几种运算规则相信理解二进位也不难道理是一样的从0到1为一圈回到0进一。那麽我们看看十七个连续递增的十进位二进位和十六进位数字之间的比较将会是这样的 十进位 二进位 十六进位
27 26 25 24 23 22 21 20
例如我们要换算220这个十进位数字到二进位 我们找到128这栏位是最合适的(因为128的左边是256而220 界乎它们之间取其右则为 128 )。那麽我们在128这栏位上面填上1 其结果如下 128 64 32 16 8 4 2 1
当然啦这是手工的方法啦如果您有二进位的计数器或是使用Windows的小算盘来进行换算更是易如反掌啦。如果您还不知道怎麽用Windows的小算盘点话可以依以下步骤进行 “开始/程式集/附属应用程式/小算盘” 逻辑运算
在二进位的AND的运算中只有参与运算的双方都相同才会得出相同的结果(为0或1)否则为0也就是只有双为1的时候其结果才会是1否则为0。其情形是 在二进位的OR运算中只有双方为0的时候才为0否则都会是1。其情形是 NOT的运算最简单只有一方参与凡是经过NOT运算其结果都会相反 至於其它一些NAND或NOR的运算只不过将NOT和AND及NOT和OR合在一起运算而已。
好了经过刚才一轮“洗脑”之後我们终於要谈到IP地址了。如果您的机器现在是连上网路的且使用的是IP协定(我想您应该这样吧否则怎麽看我的文章呢)。 我假设您使用的是Windows系统那麽现在就请您按“开始”然後“执行”再请您用键盘输入“winipcfg”然後“确定”。这时候您应该看到一个视窗跑出来并在“IP位址”栏目上面显示着您机器当前使用的IP号码。或许会是139.175.152.254这样的一组号码不过您知道这组号码的代表着什麽意思吗如果按正常设定来说我可以说这是B class的IP号码而且是属於seed.net的拨接网路的。 我怎麽会知道哈哈等您看完了後面的文章您还可以告诉我更多呢 IP Class和识别码 正如您所见到的IP地址是四组用“.”分开的十进位数字我们称每组数字为一个“octet”这样的格式被称作“Dotted quad”。其实每一组都是一个8-bit的二进位数字(使用十进完全是为了迁就人类的习惯)合共起来就是一个32-bit的IP地址了亦即是IP v4 (Version 4) 版本的地址现在IP v6 (使用128-bit的IP地址)也正如火如的开发中。 如果您记得我们前面在“网路概论”里面讨论IPX地址的时候所提到的Internal和External地址的话您应该知道Internal地址是用来识别主机的而External地址则是用来识别网路的。IP地址其实也有这样的功能只不过将网路的识别码和主机的识别码放在单一的IP地址上面了。 不过在区分Net ID和Host ID之前先让我们认识一下IP地址的分类(Class): 如果我们将IP地址全部用二进位来表示的话每个octet都是8-bit如果不够8-bit的话则往左边填上0直到补满为止。这时候你再看看最左边的数字是以什麽为开头的
相信您知道为什麽我们在一开头就学二进位换算了吧如果您不懂得如何换算您也可以死记由1到126开头的IP是A Class由128到191开头的IP是B Class 然後由192到223开头的则为C Class。显然易见用二进位来识别IP Class比较容易您不觉得吗 好了当我们识得区别IP的Class之後我们就可以知道IP的Net ID 和 Host ID了
从下图中您可以轻易的区分上面三个不同的 IP Class
如果您要组建一个单一的IP网路那麽您得分配相同的Net ID给所有主机而各主机的Host ID却必须是唯一的也就是说没有任何两个Host ID会是一样的。您的网路还要连上internet或其它网路的话那麽您使用的Net ID也必须是唯一的否则就会造成突了。好比您家的电话号码如果是1234567(Host ID)的话那麽在相同区号(Net ID)里其他人将不会再使用这个号码然而你不保在其它区号里面也有1234567这个号码哦但如果台北使用了区号02的话台南就不能使用02了。无论如何整个区号加电话号码必须是唯一的。同样的道理整个IP地址(Net ID + Host ID)在internet上也必须是唯一的。有一个很特别的Net ID 127 (即二进位的01111111)是保留给本机回路测试使用的它不可以被运用於实际的网路中去。 另外有一个规则我们还必须遵守的在指定Host ID的时候换成二进位的话不可以是全部为0也不可以是全部为1。当Host ID全部为0的时候指的是网路本身识别码而全部为1的时候则为全域广播地址即发送广播封包使用的地址。 很明显A Class网路可分配的Host ID 要比C Class的要多好多倍。让我们算算可以划分的Net ID数目和各等级里面的Host ID数目就知道了 因为A Class第一个bit必须为0所以我们在头一个otect的8个bit就只有7个bit是可变化的。那麽27 = 128再减去0和127这个Net ID不能使用那麽我们实际上最多只能划分126个A Class的网路。而每个A Class的网路之下可以分配2的24(能够使用的 Host ID之bit 数目)次方亦即16,777,216个Host ID再因为二进位数字不可以全部为0或1所以实际能用的主机位址只有16,777,214个。 因为C Class以110开头减去 3 个 bit 所以可划分的C Class网路则为2的21(24-3)次方也就是2,097,152个Net ID然後每个Class C之下则可以划分28 = 256 - 2 = 254个Host ID。 好了这下您自己试试看计算出B Class可以划分多少个Net ID和每个Net ID之下的可用Host ID数目。(Tips别忘了ID不能全部为0或1)。然後再来对照下面的列表 等级 开首 网路数目 主机数目 使用围 申请领域
下面我们要认识的是 Net Mask (网路遮罩或称网路掩码)。 到了这里我必须要向大家交代清楚一件事情在我们进行IP地址划分的时候IP和Net Mask都必须一对使用的两者缺一不可不过当我们使用分等级的IP地址的时候我们也可以使用预设的mask比如A Class的mask是255.0.0.0B Class的mask是255.255.0.0C Class的则是255.255.255.0。 这是什麽意思啊看255比较难理解如果您将之换算为二进位就容易理解多了255 = 11111111(8个1)。然後当您把这些Net Mask和各等级IP对应看看聪明的您就会发现一个现象就是~~ 凡是被1所对应着的IP部份就是Net ID凡是被0所对应部份就是Host ID
呵~呵~~阁下真是太聪明了佩服佩服啦不过您可别忘了电脑是一台好蠢好蠢的机器哦请您告诉我电脑怎麽识别Net ID和Host ID呢嗯不会吧那好让我告诉您好了 还记得AND和NOT的逻辑运算吗如果忘了赶快往前翻翻补习补习再来看这里。当电脑获得了一对IP和Mask(都是二进位数字)之後电脑先使用一个AND的运算来求出Net ID。您可以拿自己电脑的IP来做例子这里让我们拿先前用winipcfg看出来的IP来算算
这个Class的预设mask是255.255.0.0换成二进位是 然後将IP和mask加以AND 运算 换成十进位就是139.175.0.0这个就是Net ID了。
然後再和IP做一次 AND 运算就可以得到Host ID: 换成十进位就成了0.0.152.254。
还有当我们设定网路环境的时候除了要输入 IP地址netmask网路地址之外有时候还需要指定广播地址(broadcast)。我已经知道如果 Host ID 全部为 0 是网路地址而全部为 1 则是广播地址了。其实广播地址也可以通过一个简单运算得到
然後再和IP做一次 OR 运算就可以得到 Broadcast Address: 换成十进位就成了139.175.255.255。
当您遇到这种“有钱人的困扰”的时候Sub-net Mask就派上用场了。如果您刚才还认为预设的Net Mask是多馀的话那麽当您知道Sub-net Mask的功能之後我敢保您不会再忽略Net Mask了。 Sub-net Mask的使用手法就是靠“借”或可以说靠“抢”就是从左往右的按需要将本来属於Host ID的一些bit转为Sub-net ID来使用。也就是将预设的Net Mask的“1”逐渐的往右增加相对地Net Mask的“0”则越来越少。这样的结果当然是可以获得更多的Net ID换一句话说您可以将一个大的IP网路分割成更多的子网路而每一个子网路的主机数目却相应的减少。
当您切割网路的时候您得最少留下 2 个 bit 来做 Host ID这时候每个网路最多只能连接 2 台主机(咦22 不是等於 4 吗但别忘了 Host_ID 不能是两个 0 或两个 1 哦)。这样的网路通常会用在 WAN 与 LAN 之间的路由器连接。而在 LAN 中的应用通常最少要保留 3 个 bit 来做 Host_ID。 为了更好的理解Sub-net Mask的功用我们还是以刚才的IP(139.175.152.254)为例子来看看 我们知道它在预设情形之下的Net Mask是 如果我们借用了Host ID的其中三个bit来做Sub-net ID的话将原来的Net Mask和Sub-net Mask做一个 OR 的运算 换成十进位後实际的Net Mask将会变成这样255.255.224.0 。 因为借用的只有3个bit所以切割成为8个子网路了而他们的Sub-net ID则分别从000到111这8个组合再加上原来的Net ID(10001011.10101111.00000000.00000000)各子网路的实际Net ID就成了 10001011.10101111.00000000.00000000 (139.175.0.0) 这时候本来是16个bit的Host ID只剩下13个bit了也就是说在每个子网路里面最多只能有2 13 = 8,192 - 2 = 8,190台主机而它们可分配的号码分别由 但我们并不能简单的将它以十进位的0.1到31.254这样表示我们还得将之配合各个不同的Sub-netID再相加一起才能得出最终的IP号码。例如
而在Sub-net ID 100 之下的主机号码将会是从
唉呀~~~~头痛耶~~~ 别complaint啦~~自己再动手算算在110这个Sub-net ID之下的主机号码围是多少 如果您得出来的答案不是139.175.192.1到139.175.223.254之间那麽您需要离开萤幕一会到外面呼吸一下空气(别抽烟)然後过5分钟回来重新看看前面几段文章。再重读的时候要确定您每一个概念都清楚了才继续往下读。 当然你说放弃也没什麽要紧啦反正您老又不会扣您工钱啦~~~ IP的实际运用 好了这里让我们归纳一下以上所学吧 IP等级以开头的二进位数字来定010110 分别是ABC等级 设定规则 当我们设定IP网路的时候如果想各机器能够直接沟通那麽您得使用相同的Net ID和不同的Host ID。如果您想使用不同的Net ID(比如经过sub-net划分)那麽在不同Net ID之间的host就要经过router才能成功对讲。 当电脑用AND运算得出Net ID之後会检查来源Net ID和目的Net ID是否一致如果一致的话就可以直接将封包传给对方否则就将封包传给Router或Default Gateway这个过程我在以後的ARP和RIP将会讲述。 另外如果您使用了sub-net技术在分配IP地址的时候就要非常小心了以免IP超出了子网围而无法沟通。比如在没有划分子网路的情况下(例如使用255.255.0.0的mask)139.175.31.254和139.175.32.1都是在同一个网路之内的他们的IP封包不用router就可以直接传递了但经过借用3个bit的子网划分之後(net mask成了255.255.224.0)它们就被分隔在两个IP网路之内这时候它们一定要使用router才能传递封包了。 同时原本一些有效的IP地址在sub-net之後因为Host ID变成了全部0或1也就不能再分配给主机使用了例如139.175.63.255139.175.64.0等等。 (如果您不明白为什麽将之换成二进位然後找出经过子网切割後属於Host ID部份的数字就清楚了。) 所以当我们在一开始设计网路的时候就要具备应有的责任和远见早早就将子网路划分好。否则等所有机器都设定好并且运作了一段时期之後才决定划分子网路其情形将会变得异常杂。如果要重新分配IP其所做的规划以及遇到的可见问题和隐藏问题都比从零开始难上百倍越大的网路越是如此 保留IP 当我们要将网路连上intetnet的时候我们必须先册好Net ID如果该ID已经被使用了您就必须选用另外的ID了。负责Internet IP册的机构叫做InterNIC(Network Information Center)他们的网路地址是 http://www.internic.net。 由於Internet的爆炸性成长IP的地址买少见少而且在很多机构里也不是所有机器都有必要使用册的IP地址。於是我们就在 ABC这三个层级里面各划出一些地址围保留给私有位址所用它们是 10.0.0.0 - 10.255.255.255 当您使用这些地址的时候当然是有所限制的
然而正是由於这些限制当我们使用这些私有位址来设定网路的时候就无需担心会和其它也使用相同位址的网路突了。 这给我们架设IP网路做成很大的方便比如即使您目前的公司还没有连上Internet但不保将来不会啊。如果使用公共IP的话如果没经过册等到以後真正要连上网路的时候就很可能和别人突了。也正如前面所分析的到时候再重新规划IP的话将是件非常头痛的问题。这时候我们可以先利用私有位址来架设网路等到真要连上intetnet的时候我们可以使用IP转换协定如NAT (Network Addresss Translation)等技术配合新册的IP就可以了。 再者由於私有位址在 internet 上是不能路由的用来架设企业内部网路在安全上面也是有利的。当然了如果在课堂上或在家里架设 IP 网路使用私有位址也是个不错的主意哦。 不分等级的IP 思考一下如果我的IP是139.175.152.254而Net Mask则为255.255.255.0。您认为是否用错了net mask呢而 203.56.6.18 使用 255.255.0.0 做 mask 呢 我们将较大的IP等级切割成许多较小网路可以说是“有钱人的烦恼”但难道“穷人”就没有烦恼吗当然是有啦例如您的公司有接近600台主机想连一个IP网路申请一个B Class网路似乎太浪费而且说实在也未必可以申请得到那麽申请3个C Class的网路总可以吧当然没问题啦(如果还没用光的话)。 不过正如我们刚才知道的因为3个C Class网路它们的Net ID都各自独立的如果您要其下的电脑都能沟通的话就要router的参与了。但是router一点都不便宜哦~~~贵的router几乎可以换一辆“Benz”房车来开呢就算您老不在乎要设定和维护好几个网路的routing也不是一件轻松的事情搞不好还要专门请“半”个人来看管呢。 好消息是您可以将这三个C Class网路整合在一起来使用啦使用的是CIDR (Classless Inter-Domain Routing)技术也就是所谓的不分等级IP了。 使用CIDR的时候您大可不必理会IP的开首字元你可以随便设定您的Net Mask长度。也就是说一个C Class的网路也可以使用255.255.0.0这样的mask我们称这样的网路为“Supernet”和subnet正好相反。
如果您觉得139.175.152.254/255.255.0.0 和192.168.1.1/255.255.255.0 这样的IP表现方法实在太麻烦了这里有一个更好的表示法使用mask的bit数来表示Net Mask。这样我们就可以这样写了139.175.152.254/16 和203.56.6.18/24假如使用了三个bit的Sub-net我们只要将16改成19和将24改成27就可以了如果是使用了三个bit的Supernet我们将之改成13和21就可以了。 |
|||||
| 文章录入:福州电脑之家 责任编辑:福州电脑之家 | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 几个常用网络命令详解 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | | |||
|