IP地址高级设置.docx

上传人:b****3 文档编号:4412103 上传时间:2022-12-01 格式:DOCX 页数:15 大小:54.84KB
下载 相关 举报
IP地址高级设置.docx_第1页
第1页 / 共15页
IP地址高级设置.docx_第2页
第2页 / 共15页
IP地址高级设置.docx_第3页
第3页 / 共15页
IP地址高级设置.docx_第4页
第4页 / 共15页
IP地址高级设置.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

IP地址高级设置.docx

《IP地址高级设置.docx》由会员分享,可在线阅读,更多相关《IP地址高级设置.docx(15页珍藏版)》请在冰豆网上搜索。

IP地址高级设置.docx

IP地址高级设置

二进制和逻辑运算

在我们认识IP地址之前﹐我想我们很有必要认识两个概念﹕二进制和逻辑运算。

虽然我也知道这两个东东都不好理解﹐但如果不知道它们的工作原理﹐那么以后我们在讨论IP地址和子网的时候﹐您就要靠死记了。

不过一旦你知道了其原理﹐那么您在任何的IP网络中都不至于迷失﹐所谓“万变不离其宗”是也。

二进制(Binary)

为什么我们要学二进制﹖哎呀﹐还不是该死的蠢计算机嘛﹕它只懂得0和1﹐那么我们要和计算机沟通的时候﹐也只好装蠢一些才行。

当计算机要处理IP运算的时候﹐最终是以二进制的形式进行的。

我们人类最习惯的运算规则是十进制﹐也就是从0到9为一圈﹐回到零的时候就进一位数﹔而我们前面讨论的bit和byte则是八进位﹐即0到7为一圈﹐回到零就进一位数﹔另外还有十六进制﹐由0到15为一圈﹐回到零进一位﹐但使用数字15很容易和十进制混乱﹐所以在十六进制里面﹐从10到15之间分别用英文字母A到F代替了﹐所以我们通常看到的十六进制是从0到F的排列。

好了﹐认识了上面这几种运算规则﹐相信理解二进制也不难﹐道理是一样的﹕从0到1为一圈﹐回到0进一。

那么我们看看十七个连续递增的十进制﹑二进制﹑和十六进制数字之间的比较﹐将会是这样的﹕

十进制

二进制

十六进制

0

0

0

1

1

1

2

10

2

3

11

3

4

100

4

5

101

5

6

110

6

7

111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

16

10000

10

如果您想进行二进制和十进制的换算﹐在列表中找到相应的数字是最简单的方法﹐但正如您刚才所见﹐光十六个数字已经有这么长的列表了﹐如果要找成千上百个数字可不是件容易的事情。

不过﹐我们在IP地址上面看到的十进制数最大不会超过255这个数值。

我们可以先将2的0到7次方列出来﹕

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

当我们要将十进制换成二进制的时候﹐我们只要找到找到该数字对应的字段(方法是找到两个数值相若的字段﹐而取其右)﹐在相对的字段填上1﹐然后﹐用余数继续寻找下一字段﹐再填1﹐直到再没余数为止﹐最后把其它字段都填上0就可以了。

例如﹕我们要换算220这个十进制数到二进制﹕

我们找到128这字段是最合适的﹐(因为128的左边是256﹐而220界乎它们之间﹐取其右则为128)。

那么我们在128这字段上面填上1﹐

继续余数92﹕我们找到64这字段是最合适的﹐那么在64这个字段也填上1﹐

继续余数28﹕我们找到16这字段是最合适的﹐那么在16这个字段也填上1﹐

继续余数12﹕我们找到8这字段是最合适的﹐那么在8这个字段也填上1﹐

继续余数4﹕我们找到4这字段刚好对应﹐这是最好找到情形了。

那么在4这个字段也填上1﹐

因为再没有余数了﹐其它都填上0就对了。

其结果如下﹕

128

64

32

16

8

4

2

1

1

1

0

1

1

1

0

0

如果我们要将二进制换算成十进制﹐利用上面的栏目来做就更加简单了﹕只要将二进制数从右往左的顺序依次填入字段﹐那么﹐将凡是被1所对应的数字相加﹐得出来的和就是十进制数了。

当然啦﹐这是手工的方法啦﹐如果您有二进制的计数器﹐或是使用Windows的小算盘﹐来进行换算﹐更是易如反掌啦。

如果您还不知道怎么用Windows的小算盘点话﹐可以依以下步骤进行﹕

1.“开始/程序集/附属应用程序/小算盘”

2.然后拉下“检视”选单﹐确定“工程型”已被选择

3.然后点选“十进制”﹐输入数值

4.再点选“二进制”就可以获得换算数值了

逻辑运算

逻辑运算是MicrocomputerArchitature的必修单元﹐这里﹐我们只需了解几个最基本的运算就可以了﹕一个是AND﹑一个是OR﹑还有一个是NOT。

在二进制的AND的运算中﹐只有参与运算的双方都相同才会得出相同的结果(为0或1)﹐否则为0﹔也就是﹕只有双为1的时候﹐其结果才会是1﹐否则为0。

其情形是﹕

0AND0=0

1AND1=1

0AND1=0

这里您不难看出﹕凡是有1参与的AND运算﹐其结果都会是对方(不管是0或1)﹔而凡是有0参与的AND运算﹐其结果都会是0。

在二进制的OR运算中﹐只有双方为0的时候才为0﹐否则都会是1。

其情形是﹕

0OR0=0

1OR1=1

0OR1=1

记忆方法﹕凡是有0参与的OR运算﹐其结果都是对方﹔而只要有1参与的OR运算﹐其结果都会是1。

NOT的运算最简单﹐只有一方参与﹐凡是经过NOT运算﹐其结果都会相反﹕

NOT0=1

NOT1=0

至于其它一些NAND或NOR的运算﹐只不过将NOT和AND﹑及NOT和OR合并在一起运算而已。

认识IP地址

好了﹐经过刚才一轮“洗脑”之后﹐我们终于要谈到IP地址了。

如果您的机器现在是连上网络的﹐且使用的是IP协议﹐(我想您应该这样吧﹐否则怎么看我的文章呢﹖)。

我假设您使用的是Windows系统﹐那么﹐现在就请您按“开始”然后“执行”﹐再请您用键盘输入“winipcfg”﹐然后“确定”。

这时候﹐您应该看到一个窗口跑出来﹐并在“IP地址”栏目上面显示着您机器当前使用的IP号码。

或许会是139.175.152.254这样的一组号码﹐不过您知道这组号码的代表着什么意思吗﹖如果按正常设定来说﹐我可以说这是Bclass的IP号码﹐而且是属于的拨接网络的。

我怎么会知道﹖哈哈﹐等您看完了后面的文章﹐您还可以告诉我更多呢﹗

IPClass和识别码

正如您所见到的IP地址﹐是四组用“.”分开的十进制数﹐我们称每组数字为一个“octet”﹐这样的形式被称作“Dottedquad”。

其实每一组都是一个8-bit的二进制数(使用十进完全是为了迁就人类的习惯)﹐合共起来就是一个32-bit的IP地址了﹐亦即是IPv4(Version4)版本的地址﹐现在IPv6(使用64-bit的IP地址)也正如火如筡的开发中。

如果您记得我们前面在“网络概论”里面讨论IPX地址的时候所提到的Internal和External地址的话﹐您应该知道Internal地址是用来识别主机的﹐而External地址则是用来识别网络的。

IP地址其实也有这样的功能﹐只不过将网络的识别码和主机的识别码放在单一的IP地址上面了。

不过﹐在区分NetID和HostID之前﹐先让我们认识一下IP地址的分类(Class):

如果我们将IP地址全部用二进制来表示的话﹐每个octet都是8-bit﹐如果不够8-bit的话﹐则往左边填上0﹐直到补满为止。

这时候﹐你再看看最左边的数字是以什么为开头的﹕

∙如果是以“0”开头的﹐这IP是一个AClass的IP

∙如果是以“10”开头的﹐这是一个BClass的IP

∙如果是以“110”为开头的﹐则属于CClass的IP

相信您知道为什么我们在一开头就学二进制换算了吧﹖如果您不懂得如何换算﹐您也可以死记﹕由1到126开头的IP是AClass﹔由128到191开头的IP是BClass﹔然后由192到223开头的则为CClass。

显然易见﹐用二进制来识别IPClass比较容易﹗您不觉得吗﹖

好了﹐当我们识得区别IP的Class之后﹐我们就可以知道IP的NetID和HostID了﹕

∙AClass的IP使用最前面一组数字来做NetID﹐其余三组做HostID

∙BClass的IP使用前面两组数字来做NetID﹐另两组做HostID

∙CClasss使用前面三组数字来做NetID﹐剩下的一组做HostID

从下图中﹐您可以轻易的区分上面三个不同的IPClass﹕

为什么我们需要为IP划分等级呢﹖这是为了管理上面的需要。

如果您要组建一个单一的IP网络﹐那么您得分配相同的NetID给所有主机﹐而各主机的HostID却必须是唯一的﹐也就是说没有任何两个HostID会是一样的。

您的网络还要连上internet或其它网络的话﹐那么您使用的NetID也必须是唯一的﹐否则就会造成冲突了。

好比您家的电话号码﹐如果是1234567(HostID)的话﹐那么在相同区号(NetID)里﹐其它人将不会再使用这个号码﹐然而﹐你不保证在其它区号里面也有1234567这个号码哦﹔但如果台北使用了区号02的话﹐台南就不能使用02了。

无论如何﹐整个区号加电话号码必须是唯一的。

同样的道理﹕整个IP地址(NetID+HostID)在internet上也必须是唯一的。

有一个很特别的NetID﹕127(即二进制的01111111)﹐是保留给本机回路测试使用的﹐它不可以被运用于实际的网络中去。

另外有一个规则我们还必须遵守的﹕在指定NetID和HostID的时候﹐换成二进制的话﹐不可以是全部为0﹐也不可以是全部为1。

当HostID全部为0的时候﹐指的是网络本身识别码﹔而全部为1的时候﹐则为全域广播地址﹐即发送广播封包使用的地址。

很明显﹐AClass网络可分配的HostID要比CClass的要多好多倍。

让我们算算可以划分的NetID数目和各等级里面的HostID数目就知道了﹕

因为AClass第一个bit必须为0﹐所以我们在头一个otect的8个bit就只有7个bit是可变化的。

那么27=128﹐再减去0和127这个NetID不能使用﹐那么我们实际上最多只能划分126个AClass的网络。

而每个AClass的网络之下可以分配2的24(能够使用的HostID之bit数目)次方﹐亦即16,777,216个HostID﹐再因为二进制数不可以全部为0或1﹐所以实际能用的主机地址只有16,777,214个。

因为CClass以110开头﹐减去3个bit﹐所以可划分的CClass网络则为2的21(24-3)次方﹐也就是2,097,152个NetID﹐然后每个ClassC之下则可以划分28=256-2=254个HostID。

好了﹐这下您自己试试看计算出BClass可以划分多少个NetID﹐和每个NetID之下的可用HostID数目。

(Tips﹕别忘了ID不能全部为0或1)。

然后再来对照下面的列表﹕

等级

开首

网络数目

主机数目

使用范围

申请领域

A

0

126

16,777,214

1.x.x.x到126.x.x.x

国家级

B

10

16,384

16,382

128.x.x.x到191.x.x.x

跨国组织

C

110

2,097,152

256

192.x.x.x到223.x.x.x

企业组织

D

1110

-

-

224.-到239.-

特殊用途

E

1111

-

-

240.-到255.-

保留范围

认识NetMask

下面我们要认识的是NetMask(网络屏蔽﹐或称网络掩码)。

到了这里﹐我必须要向大家交代清楚一件事情﹕在我们进行IP地址划分的时候﹐IP和NetMask都必须一对使用的﹐两者缺一不可﹗不过﹐当我们使用分等级的IP地址的时候﹐我们也可以使用预设的mask﹐比如﹕AClass的mask是255.0.0.0﹔BClass的mask是255.255.0.0﹔CClass的则是255.255.255.0。

这是什么意思啊﹖看255比较难理解﹐如果您将之换算为二进制就容易理解多了﹕255=11111111(8个1)。

然后当您把这些NetMask和各等级IP对应看看﹐聪明的您就会发现一个现象﹕就是~~凡是被1所对应着的IP部份就是NetID﹔凡是被0所对应部份就是HostID﹗

哈哈~~应该是个值得庆贺的发现哦~~~我想您的心情并不亚于当初哥伦布发送美洲大陆啦﹗不过﹐问题又来了﹐既然我们已经分好等级了﹐还用那mask干嘛﹖我们照等级使用不就好了吗﹖

呵~呵~~阁下真是太聪明了﹐佩服佩服啦﹗不过﹐您可别忘了计算机是一台好蠢好蠢的机器哦﹐请您告诉我﹕计算机怎么识别NetID和HostID呢﹖嗯﹖﹖不会吧﹖﹗那好﹐让我告诉您好了﹕

还记得AND和NOT的逻辑运算吗﹖如果忘了赶快往前翻翻﹐补习补习再来看这里。

当计算机获得了一对IP和Mask(都是二进制数)之后﹐计算机先使用一个AND的运算﹐来求出NetID。

您可以拿自己计算机的IP来做例子﹐这里让我们拿先前用winipcfg看出来的IP来算算﹕

139.175.152.254换成二进制是﹕

10001011.10101111.10011000.11111110

(这时候﹐您应该知道我为何当初一口就说出这是一个BClass的IP了吧﹖还不知道﹖看看头两个bit是什么﹖)

这个Class的预设mask是255.255.0.0﹐换成二进制是﹕

11111111.11111111.00000000.00000000

然后将IP和mask加以AND运算﹕

10001011.10101111.01101010.11111110

AND

11111111.11111111.00000000.00000000

得出﹕

10001011.10101111.00000000.00000000

换成十进制就是139.175.0.0﹐这个就是NetID了。

那么怎么求HostID呢﹖也很简单﹕

先将NetMask做一个NOT运算﹐可以得出﹕

00000000.00000000.11111111.11111111

然后再和IP做一次AND运算﹐就可以得到HostID:

00000000.00000000.01101010.11111110﹐

换成十进制就成了﹕0.0.152.254。

简单吧﹖是不是﹖哈哈~~我看到您大摇其头哦~~~不用担心啦﹐多拿些IP例子来运算运算您就得心应手了。

还有﹐当我们设定网络环境的时候﹐除了要输入IP地址﹑netmask﹑网络地址之外﹐有时候还需要指定广播地址(broadcast)。

我已经知道如果HostID全部为0是网络地址﹑而全部为1则是广播地址了。

其实广播地址也可以通过一个简单运算得到﹕

先将NetMask做一个NOT运算﹐可以得出﹕

00000000.00000000.11111111.11111111

然后再和IP做一次OR运算﹐就可以得到BroadcastAddress:

10001011.10101111.01101010.11111110

OR

00000000.00000000.11111111.11111111

得出﹕

10001011.10101111.11111111.11111111

换成十进制就成了﹕139.175.255.255。

不过﹐说到这里为止﹐我总还觉得有些不妥﹕因为许多网络都有一定的节点极限﹐比如Ethernet通常最多只能连接1,200台主机﹐如果您获得一个BClass的NetID﹐岂不是浪费很多HostID了吗﹖要是使用AClass就更是骇人﹗

当您遇到这种“有钱人的困扰”的时候﹐Sub-netMask就派上用场了。

如果您刚才还认为预设的NetMask是多余的话﹐那么当您知道Sub-netMask的功能之后﹐我敢保证您不会再忽略NetMask了。

Sub-netMask的使用手法就是靠“借”﹐或可以说靠“抢”﹕就是从左往右的按需要将本来属于HostID的一些bit转为Sub-netID来使用。

也就是将预设的NetMask的“1”逐渐的往右增加﹐相对地﹐NetMask的“0”则越来越少。

这样的结果当然是可以获得更多的NetID﹐换一句话说﹐您可以将一个大的IP网络分割成更多的子网络﹐而每一个子网络的主机数目却相应的减少。

其情形会是﹕当您借用1个bit的HostID来做Sub-netID的时候﹐会将网络切割开两个(21=2)子网络﹔如果借2个bit则有4个子网络﹔3个bit则8个﹔4个bit则16个.....当所有的HostID都借出去之后﹐您可以得到最多数量的子网络﹐但这是毫无意义的﹐因为没有HostID了﹐您怎么分配IP给主机呢﹖要是您的HostID只剩下一个bit没有借出去的话﹐那么您在每个网络只能得到0和1来作为HostID﹐这也是不行的﹐因为这两个ID也不可以用来分配给主机。

原则是﹕当您切割网络的时候﹐您得最少留下3个bit来做HostID﹐而这时候﹐每个网络最多只能连接6台主机(咦﹖23不是等于8吗﹖但别忘了不能用三个0和三个1哦)。

为了更好的理解Sub-netMask的功用﹐我们还是以刚才的IP(139.175.152.254)为例子来看看﹕

我们知道它在预设情形之下的NetMask是﹕

11111111.11111111.00000000.00000000

如果我们借用了HostID的其中三个bit来做Sub-netID的话﹐将原来的NetMask和Sub-netMask做一个OR的运算﹕

11111111.11111111.00000000.00000000

OR

00000000.00000000.11100000.00000000

得出﹕

11111111.11111111.11100000.00000000

换成十进制后﹐实际的NetMask将会变成这样﹕255.255.224.0。

因为借用的只有3个bit﹐所以切割成为8个子网络了﹐而他们的Sub-netID则分别从000到111这8个组合﹐再加上原来的NetID(10001011.10101111.00000000.00000000)﹐各子网络的实际NetID就成了﹕

10001011.10101111.00000000.00000000(139.175.0.0)

10001011.10101111.00100000.00000000(139.175.32.0)

10001011.10101111.01000000.00000000(139.175.64.0)

10001011.10101111.01100000.00000000(139.175.96.0)

10001011.10101111.10000000.00000000(139.175.128.0)

10001011.10101111.10100000.00000000(139.175.160.0)

10001011.10101111.11000000.00000000(139.175.192.0)

10001011.10101111.11100000.00000000(139.175.224.0)

注意﹕有人认为使用WindowsNT的话﹐甚至乎﹐连Sub-netID也不可以全部为0或1﹐而不像Unix系统那样﹕只要相加起来的实际NetID不全为0或1就可以了。

不知道即将推出的Windows2000是否有所改进呢﹖不过在实际的测试中﹐却是可行的﹗哈哈~~~正是﹕怎一个怪字了得﹖(答案将会在后面揭晓)

这时候﹐本来是16个bit的HostID只剩下13个bit了﹐也就是说﹐在每个子网络里面﹐最多只能有213=8,192-2=8,190台主机﹐而它们可分配的号码分别由

00000.00000001到

11111.11111110之间。

但我们并不能简单的将它以十进制的0.1到31.254这样表示﹐我们还得将之配合各个不同的Sub-netID﹐再相加一起才能得出最终的IP号码。

例如﹕

在Sub-netID001之下的主机号码﹐将会是从

00100000.00000001到

00111111.11111110之间﹐

亦即是﹕从32.1到63.254之间﹐

整个IP地址则是从﹕139.175.32.1到139.175.63.254之间。

而在Sub-netID100之下的主机号码﹐将会是从

10000000.00000001到

10011111.11111110之间﹐

亦即是﹕从128.1到159.254之间﹐

整个IP地址则是从﹕139.175.128.1到139.175.159.254之间。

明白了﹖

唉呀~~~~头痛耶~~~﹗﹗

别complaint啦~~﹐自己再动手算算在110这个Sub-netID之下的主机号码范围是多少﹖

如果您得出来的答案不是139.175.192.1到139.175.223.254之间﹐那么您需要离开屏幕一会﹐到外面呼吸一下空气(别抽烟)﹐然后过5分钟回来重新看看前面几段文章。

再重读的时候﹐要确定您每一个概念都清楚了才继续往下读。

当然﹐你说放弃也没什么要紧啦﹐反正您老板又不会扣您工钱啦~~~

IP的实际运用

好了﹐这里让我们归纳一下以上所学吧﹕

∙IP等级以开头的二进制数来定﹕0﹐10﹐110分别是A﹑B﹑C等级﹔

∙IP分两部份﹕NetID和HostID。

预设情形下﹐A以第一个otect来做NetID﹑B则使用前面两个otect﹑C使用三个oect﹐而剩下的则做HostID;

∙在为机器指定NetID和HostID的时候﹕换成二进制不可以全部为0﹐也不可以全部为1﹐而整个IP地址必须是唯一的﹔

∙NetMask是给计算机用来计算NetID和HostID的﹐将IP和mask用AND运算得出NetID﹐将mask先经过NOT运算﹐再和IP做AND运算则可以得出HostID﹔

∙Sub-netMask是“借”HostID来当Sub-netID使用﹐规则是从左往右递增﹐作用是将一个较大的网络切割成多个较小的网络。

而在显示IP的时候﹐必须要和Sub-netID加在一起来表示﹔

设定规则

当我们设定IP网络的时候﹐如果想各机器能够直接沟通﹐那么您得使用相同的NetID和不同的HostID。

如果您想使用不同的NetID(比如经过sub-net划分)﹐那么在不同NetID之间的host就要经过router才能成功对讲。

当计算机用AND运算得出NetID之后﹐会检查来源NetID和目的NetID是否一致﹐如果一致的话﹐就可以直接将封包传给对方﹐否则就将封包传给Router或DefaultGateway﹐这个过程我在以后的ARP和RIP将会讲述。

另外﹐如果您使用了sub-net技术﹐在分配IP地址的时候就要非常小心了﹐以免IP超出了子网范围而无法沟通。

比如﹐在没有划分子网络的情况下(例如使用255.255.0.0的mask)﹐139.175.31.254和139.175.32.1都是在同一个网络之内的﹐他们的IP封包不用router就可以直接传递了﹔但经过借用3个bit的子网划分之后(netmas

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1