⑴ 写出因特网(使用子网掩码)的IP层查找路由的算法
(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和
相应的网络地址匹配。若匹配,则将分组直接交付。
否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则将
分组传送给指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”,
若其结果与该行的目的网络地址匹配,则将分组传送
给该行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表
中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
⑵ IP归属地算法原理是怎样的
127.0.0.1
转换为
127000000001<不要空格,主要是看的直观>
比较数字段容易了吧
举个例子
比如110.0.0.1-111.255.255.255属于XX城市,
开始记为110000000001-111255255255<不要空格,主要是看的直观>
IP(111.111.111.1->111111111001)<不要空格,主要是看的直观>
属于那个区间,则为XX城市
IP(112.1.1.1->112001001001)<不要空格,主要是看的直观>
不属于那个区间,
如果数据库中没有记录则为其他
一个城市可能会有多个IP段
用between检索
⑶ ip地址计算方法
给出一个ip地址,例如192.168.0.1,计算下如果划分成4个子网,以及主机数量和有效ip地址范围
首先它是个c类地址,c类的默认子网掩码是255.255.255.0,
但是这样似乎太大了,增加了广播域,浪费ip地址,因此要自配个子网掩码.
由于是c类地址,前****255****网络位,0代表主机位,由于要划分4个子网,因此从主机位借网络位,这样就可以大大增加ip的利用率了,既然是二进制,所以2的2次方=4,如果是6个子网,就要求这个通用的不等式:假设从主机位上借了n位
即:2的n次方>6
这样可以算出n起码要大于等于3,为了节约ip地址,所以选接近6的解,即n=3,
注意
因上述c类地址第4个8位换算成二进制为00000000,借了3位就是11100000,注意111,它就是从主机位变成了网络位,又因为是3位,它的子网络分别是000,001,010,011,100,101,110,111,
这样正好验证了我们前面n=3的解是对的,
由于基数是256,又因为2的8次方=256,这个8是表示默认c类子网掩码主机位的位数为8位,
256/8=32
这个8是2的3次方算出来的,为什么用256/8呢?因为既然有256个主机数量,要划分成个8个子网,
这个很容易理解,100个苹果,10个人分,要求平均,所以100/10=10
256-32=224这表明是最后个主机,子网掩码为255.255.255.224
既然算出来的32代表每个子网里的主机数量,可以用比较笨的方法算出来8个子网里的主机地址:
从0-256里逐渐加32,同理二进制也一样,反正包含32个,为什么?因为二进制里8位的表示方法为00000000,以及11111111,从00000000到11111111,换算成二进制得出为0-256
网络id可以算出来做ip地址与子网掩码的"与"运算
ip192.168.0.1写成二进制01100000,10101000,00000000,00000001
掩码255.255.255.224换算11111111,11111111,11111111,11100000
=01100000,10101000,00000000,0000000换算十进制192.168.0.0
广播地址把ip主机位上全填1,
由于网络位为27位,即主机位为5位,01100000,10101000,00000000,00011111换算十进制192.168.0.31
地址范围为192.168.0.1-192.168.0.30,本来是192.168.0.0-192.168.0.31共有32个,但是首尾两个规定了不能用,又因为有8个子网
其余7个子网ip地址范围是192.168.0.33-192.168.0.63
网络id
192.168.0.32
192.168.0.65-192.168.0.95
同理192.168.0.64
192.168.0.97-192.168.0.127
96
192.168.0.129-192.168.0.159
依次类推
192.168.0.161-192.168.0.191
192.168.0.193-192.168.0.223
192.168.0.225-192.168.0.255
⑷ ip 地址的算法
IP地址是32位的二进制数值,用于在TCP/IP通讯协议中标记每台计算机的地址。通常我们使用点式十进制来表示,如192.168.0.5等等。
每个IP地址又可分为两部分。即网络号部分和主机号部分:网络号表示其所属的网络段编号,主机号则表示该网段中该主机的地址编号。按照网络规模的大小,IP地址可以分为A、B、C、D、E五类,其中A、B、C类是三种主要的类型地址,D类专供多目传送用的多目地址,E类用于扩展备用地址。A、B、C三类IP地址有效范围如下表:
类别 网络号 /占位数 主机号 /占位数 用途
A 1~126 / 8 0~255 0~255 1~254 / 24 国家级
B 128~191 0~255 / 16 0~255 1~254 / 16 跨过组织
C 192~223 0~255 0~255 / 24 1~254 / 8 企业组织
随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。
这里主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。
在计算子网掩码时,我们要注意IP地址中的保留地址,即“ 0”地址和广播地址,它们是指主机地址或网络地址全为“ 0”或“ 1”时的IP地址,它们代表着本网络地址和广播地址,一般是不能被计算在内的。
下面就来以实例来说明子网掩码的算法:
对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码为255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。
一、利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
1)将子网数目转化为二进制来表示
2)取得该二进制的位数,为 N
3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。
如欲将B类IP地址168.195.0.0划分成27个子网:
1)27=11011
2)该二进制为五位数,N = 5
3)将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0
即为划分成 27个子网的B类IP地址 168.195.0.0的子网掩码。
二、利用主机数来计算
1)将主机数目转化为二进制来表示
2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
1) 700=1010111100
2)该二进制为十位数,N = 10
3)将该B类地址的子网掩码255.255.0.0的主机地址全部置 1,得到255.255.255.255
然后再从后向前将后 10位置0,即为: 11111111.11111111.11111100.00000000
即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码。
下面列出各类IP地址所能划分出的所有子网,其划分后的主机和子网占位数,以及主机和子网的(最大)数目,注意要去掉保留的IP地址(即划分后有主机位或子网位全为“0”或全为“1”的):
A类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/22 255.192.0.0 2/4194302
3/21 255.224.0.0 6/2097150
4/20 255.240.0.0 14/1048574
5/19 255.248.0.0 30/524286
6/18 255.252.0.0 62/262142
7/17 255.254.0.0 126/131070
8/16 255.255.0.0 254/65536
9/15 255.255.128.0 510/32766
10/14 255.255.192.0 1022/16382
11/13 255.255.224.0 2046/8190
12/12 255.255.240.0 4094/4094
13/11 255.255.248.0 8190/2046
14/10 255.255.252.0 16382/1022
15/9 255.255.254.0 32766/510
16/8 255.255.255.0 65536/254
17/7 255.255.255.128 131070/126
18/6 255.255.255.192 262142/62
19/5 255.255.255.224 524286/30
20/4 255.255.255.240 1048574/14
21/3 255.255.255.248 2097150/6
22/2 255.255.255.252 4194302/2
B类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/14 255.255.192.0 2/16382
3/13 255.255.224.0 6/8190
4/12 255.255.240.0 14/4094
5/11 255.255.248.0 30/2046
6/10 255.255.252.0 62/1022
7/9 255.255.254.0 126/510
8/8 255.255.255.0 254/254
9/7 255.255.255.128 510/126
10/6 255.255.255.192 1022/62
11/5 255.255.255.224 2046/30
12/4 255.255.255.240 4094/14
13/3 255.255.255.248 8190/6
14/2 255.255.255.252 16382/2
C类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/6 255.255.255.192 2/62
3/5 255.255.255.224 6/30
4/4 255.255.255.240 14/14
5/3 255.255.255.248 30/6
6/2 255.255.255.252 62/2
⑸ 如何计算IP地址
给出一个ip地址,例如192.168.0.1,计算下如果划分成4个子网,以及主机数量和有效ip地址范围
首先它是个c类地址,c类的默认子网掩码是255.255.255.0,
但是这样似乎太大了,增加了广播域,浪费ip地址,因此要自配个子网掩码.
由于是c类地址,前****255****网络位,0代表主机位,由于要划分4个子网,因此从主机位借网络位,这样就可以大大增加ip的利用率了,既然是二进制,所以2的2次方=4,如果是6个子网,就要求这个通用的不等式:假设从主机位上借了n位
即:2的n次方>6 这样可以算出n起码要大于等于3,为了节约ip地址,所以选接近6的解,即n=3,
注意 因上述c类地址第4个8位换算成二进制为00000000,借了3位就是11100000,注意111,它就是从主机位变成了网络位,又因为是3位,它的子网络分别是000,001,010,011,100,101,110,111, 这样正好验证了我们前面n=3的解是对的,
由于基数是256,又因为2的8次方=256,这个8是表示默认c类子网掩码主机位的位数为8位,
256/8=32 这个8是2的3次方算出来的,为什么用256/8呢?因为既然有256个主机数量,要划分成个8个子网,
这个很容易理解,100个苹果,10个人分,要求平均,所以100/10=10
256-32=224这表明是最后个主机,子网掩码为255.255.255.224
既然算出来的32代表每个子网里的主机数量,可以用比较笨的方法算出来8个子网里的主机地址:
从0-256里逐渐加32,同理二进制也一样,反正包含32个,为什么?因为二进制里8位的表示方法为00000000,以及11111111,从00000000到11111111,换算成二进制得出为0-256
网络id可以算出来做ip地址与子网掩码的"与"运算
ip192.168.0.1写成二进制01100000,10101000,00000000,00000001
掩码255.255.255.224换算11111111,11111111,11111111,11100000
=01100000,10101000,00000000,0000000换算十进制192.168.0.0
广播地址把ip主机位上全填1, 由于网络位为27位,即主机位为5位,01100000,10101000,00000000,00011111换算十进制192.168.0.31
地址范围为192.168.0.1-192.168.0.30,本来是192.168.0.0-192.168.0.31共有32个,但是首尾两个规定了不能用,又因为有8个子网
其余7个子网ip地址范围是192.168.0.33-192.168.0.63 网络id 192.168.0.32
192.168.0.65-192.168.0.95 同理192.168.0.64
192.168.0.97-192.168.0.127 96
192.168.0.129-192.168.0.159 依次类推
192.168.0.161-192.168.0.191
192.168.0.193-192.168.0.223
192.168.0.225-192.168.0.255
⑹ ip地址怎么计算
一、常见的IP分为:
● A类:用于主机数量特别多的网络。1-126
● B类:用于大、中型网络。128-191
● C类:用于局域网。192-223
● D类:用于多重广播组。224-239
● E类:用于实验或保留以后用。240-255
二、A类地址计算
● 前三位设为110,接下21位代表网络ID,后8位代表主机ID。
● C类地址允许大约200万个网络
● 每个网络可容纳28-2=254个主机
● 第一个域值的范围为192~223(11000000~11011111),有效的主机ID:X.X.X.1~X.X.X.254。
⑺ 怎样计算IP地址
我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP
A类IP段 1.0.0.0 到127.255.255.255
B类IP段 128.0.0.0 到191.255.255.255
C类IP段 192.0.0.0 到223.255.255.255
XP默认分配的子网掩码每段只有255或0
A类的默认子网掩码255.0.0.0一个子网最多可以容纳1677万多台电脑
B类的默认子网掩码255.255.0.0一个子网最多可以容纳6万台电脑
C类的默认子网掩码255.255.255.0一个子网最多可以容纳254台电脑
我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。
要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。)
把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。
255.0.0.011111111.00000000.00000000.00000000
255.255.0.011111111.11111111.00000000.00000000
255.255.255.011111111.11111111.11111111.00000000
这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电脑,也就是256台,但是有两个IP是不能用的,那就是最后一段不能为0和255,减去这两台,就是254台。我们再来做一个。
255.255.248.0这个子网掩码可以最多容纳多少台电脑?
计算方法:
把将其转换为二进制的四段数字(每段要是8位,如果是0,可以写成8个0,也就是00000000)
11111111.1111111.11111000.00000000
然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2048台电脑。
一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。
一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?
首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。
2的m次方=560
首先,我们确定2一定是大于8次方的,因为我们知道2的8次方是256,也就是C类IP的最大容纳电脑的数目,我们从9次方一个一个试2的9次方是512,不到560,2的10次方是1024,看来2的10次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0。
分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。
相信好多人都和偶一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我样把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。
192.168.0.1
11000000.10101000.00000000.00000001
(这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。)
IP11000000.10101000.00000000.00000001
子网掩码11111111.11111111.11111111.00000000
在这里,向大家说一下到底怎么样才算同一网段。
要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。
算法只要把IP和子网掩码的每位数AND就可以了。
AND方法:0和1=00和0=01和1=1
如:And192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
IP11000000.10101000.00000000.00000001
子网掩码11111111.11111111.11111111.00000000
得出AND结果网络标识 11000000.10101000.00000000.00000000
转换为十进制192.168.0.0,这就是网络标识,
再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IPAND
得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,
这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。
我们再来看看这个改为默认子网掩码的B类IP
如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?
先将这些转换成二进制
188.188.0.11110111100.10111100.00000000.01101111
188.188.5.22210111100.10111100.00000101.11011010
255.255.254.011111111.11111111.11111110.00000000
分别AND,得
10111100.10111100.00000000.00000000
10111100.10111100.00000100.00000000
网络标识不一样,即不在同一网段。
判断是不是在同一网段,你会了吧,下面,我们来点实际的。
一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?
子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0
我们现在要确定的是IP如何分配,首先,选一个B类IP段,这里就选188.188.x.x吧
这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1和IP中的?对就起来,0和*对应起来,如下:)
255.255.252.011111111.11111111.11111100.00000000
188.188.x.x10111100.10111100.??????**.********
网络标识10111100.10111100.??????00.00000000
由此可知,?处随便填(只能用0和1填,不一定全是0和1),我们就用全填0吧,*处随便,这样呢,我们的IP就是
10111100.10111100.000000**.********,一共有530台电脑,IP的最后一段1~254可以分给254台计算机,530/254=2.086,采用进1法,得整数3,这样,我们确定了IP的第三段要分成三个不同的数字,也就是说,把000000**中的**填三次数字,只能填1和0,而且每次的数字都不一样,至于填什么,就随我们便了,如00000001,00000010,00000011,转换成二进制,分别是1,2,3,这样,第三段也确定了,这样,就可以把IP分成188.188.1.y,188.188.2.y,188.188.3.y,y处随便填,只要在1~254范围之内,并且这530台电脑每台和每台的IP不一样,就可以了。
有人也许会说,既然算法这么麻烦,干脆用A类IP和A类默认子网掩码得了,偶要告诉你的是,由于A类IP和A类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码
⑻ ip地址汇总(详细算法)
172.16.12.0/24
转换
二进制
第三段IP为
:00001100
172.16.13.0/24
转换
二进制
第三段IP为
:00001101
172.16.14.0/24
转换
二进制
第三段IP为
:00001110
汇总后为:00001100
所以汇总后的子网是:172.16.12.0/22
⑼ IP地址怎么算
给出一个ip地址,例如192.168.0.1,计算下如果划分成4个子网,以及主机数量和有效ip地址范围,首先它是个c类地址,c类的默认子网掩码是255.255.255.0 ,但是这样似乎太大了,增加了广播域,浪费ip地址,因此要自配个子网掩码.
由于是c类地址,前****255****网络位,0代表主机位,由于要划分4个子网,因此从主机位借网络位,这样就可以大大增加ip的利用率了,既然是二进制,所以2的2次方=4,如果是6个子网,就要求这个通用的不等式:假设从主机位上借了n位,即:2的n次方>6 这样可以算出n起码要大于等于3,为了节约ip地址,所以选接近6的解,即n=3,
注意 因上述c类地址第4个8位换算成二进制为00000000,借了3位就是11100000,注意111,它就是从主机位变成了网络位,又因为是3位,它的子网络分别是000,001,010,011,100,101,110,111, 这样正好验证了我们前面n=3的解是对的,
由于基数是256,又因为2的8次方=256,这个8是表示默认c类子网掩码主机位的位数为8位,
256/8=32 这个8是2的3次方算出来的,为什么用256/8呢?因为既然有256个主机数量,要划分成个8个子网,
这个很容易理解,100个苹果,10个人分,要求平均,所以100/10=10
256-32=224这表明是最后个主机,子网掩码为255.255.255.224
既然算出来的32代表每个子网里的主机数量,可以用比较笨的方法算出来8个子网里的主机地址:
从0-256里逐渐加32,同理二进制也一样,反正包含32个,为什么?因为二进制里8位的表示方法为00000000,以及11111111,从00000000到11111111,换算成二进制得出为0-256
网络id可以算出来做ip地址与子网掩码的"与"运算
ip192.168.0.1写成二进制01100000,10101000,00000000,00000001
掩码255.255.255.224换算11111111,11111111,11111111,11100000
=01100000,10101000,00000000,0000000换算十进制192.168.0.0
广播地址把ip主机位上全填1, 由于网络位为27位,即主机位为5位,01100000,10101000,00000000,00011111换算十进制192.168.0.31
地址范围为192.168.0.1-192.168.0.30,本来是192.168.0.0-192.168.0.31共有32个,但是首尾两个规定了不能用,又因为有8个子网
其余7个子网ip地址范围是192.168.0.33-192.168.0.63 网络id 192.168.0.32
192.168.0.65-192.168.0.95 同理192.168.0.64
192.168.0.97-192.168.0.127 96
192.168.0.129-192.168.0.159 依次类推
192.168.0.161-192.168.0.191
192.168.0.193-192.168.0.223
192.168.0.225-192.168.0.255
⑽ IP计算方法(详细)
子网掩码是:225.225.255.192
每个网段支持的机器数是:63台。
该地址将被划分为4段子网,IP地址段划分如下:
1> 203.66.77.0 to 203.66.77.63
2> 203.66.77.64 to 203.66.77.127
3> 203.66.77.128 to 203.66.77.191
4> 203.66.77.192 to 203.66.77.255