@.TOC
就像用身份证号码来区别每个人一样,为了区别网上的每台计算机,我们给因特网上的每一台计算机一个唯一的编号,我们把它称为IP地址
IP地址就是一个唯一标识,是一段网络编码,由32位组成
传统的IP地址由32个二进制位组成,由于二进制使用起来不方便,因此常用十进制格式进行表示
十进制格式:将32个二进制数分为4组(每组8位或是一个字节),并将每组转成十进制数(0~255),各个数之间以圆点(.)来分隔
分类IP就是将IP分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段位网络号,必须是唯一的。第二个字段位主机号
根据国际标准组织ISPO定义地址分类,将IP地址分为A、B、C、D、E五类,其中A、B、C这三类是比较常用的IP地址,D、E类为特殊地址
a. A类地址第1字节为网络地址(最高位固定是0),另外3个字节为主机地址
b. A类地址范围:1.0.0.0 - 126.255.255.255,其中0和127作为特殊地址
c. A类网络默认子网掩码为255.0.0.0
d. A类网络最大主机数量是256x256x256-2=166777214(减去)1个主机位为0的网络地址和1个广播地址
a. B类地址第1字节和第2字节为网络地址,另外2个字节为主机地址
b. B类地址范围:128.0.0.0 - 191.255.255.255
c. B类网络默认子网掩码为255.255.0.0
d. B类网络最大主句数量为256x256-2=65535
a. C类地址第1字节、第2字节、第3字节为网络地址,另外1个字节为主机地址
b. C类地址范围:192.0.0.0 - 223.255.255.255
c. C类网络默认子网掩码为255.255.255.0
d. C类网络醉倒主机数量256-2=254
a. D类地址不分网络地址和主机地址,它的第1个字节的最高位固定是1110
b. D类地址用于组播(也称为多播)的地址,无子网掩码
c. D类地址范围:244.0.0.0 - 239.255.255.255
a. E类地址也不分网络地址和主机地址,它的第1个字节的最高位固定是11110
b. E类地址范围:240.0.0.0 - 255.255.255.255
c. 其中240.0.0.0 - 255.255.255.254作为保留地址,主要用于Internet科研
d. 255.255.255.255作为广播地址
0.0.0.0
严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合∶所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
127.0.0.1
本机地址,主要用于测试,也叫环回地址。用汉语表示,就是“我自己”。在Windows/Linux系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。在windows下整个127.0.0.x网段都是保留的环回地址
169.254.x.x
如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Windows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,十有八九是你的网络不能正常运行了。
10.x.x.x,172.16.x.x~172.31.x.x,192.168.x.x
私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址具不能出现的。
IP地址类型 | 第一字节表示的十进制数的范围 | 适用范围 |
---|---|---|
A类 | 01~126 | 适用于大型网络,网络数量少,主机数很多的情况 |
B类 | 128~191 | 适用于中型网络,网络数量中等,主机数目中等 |
C类 | 192~223 | 适用于小型网络,网络数量较多,网络中的主机数目较少 |
D类 | 224~239 | 组播地址 |
E类 | 240~255 | 保留地址,用于科研使用 |
一个标准的A类、B类和C类网络可以进一步划分为子网。子网划分技术能够使单块网络地址横跨几个物理网络,这样路由器所连接的多个物理网络可以是同属于一个网络的不同子网
a. 有效地利用地址空间
b. 便于进行管理
c. 可以隔离广播和通信,减少网络拥塞
d. 处于安全方面的考虑
将IP地址的主机号部分划分为两部分,拿出一部分来标识子网,另一部分任然作为主机号
划分后IP地址由三部分组成:网络号+子网号+主机号
子网掩码是一个32位的二进制数字,采用4字段点分十进制表示,子网掩码不能单独存在,必须结合IP地址一起使用
作用︰ 将某个IP地址划分成网络地址和主机地址两部分
注意: 子网掩码不能单独存在,必须结合IP地址一起使用
a. 凡是IP地址的网络和子网标识部分,都用二进制1表示
b. 凡是IP地址的主机标识部分,都用二进制0表示
(1)将IP地址与子网掩码转换成二进制数
(2)将二进制形式的IP地址与子网掩码做**“与”运算**
(3)将得出的结果转化为十进制,便得到网络地址
(4)运算之后网络号相同的IP,就属于一个网段
消除了传统的A类、B类和C类地址以及划分子网的概念
CIDR使用各种长度网络前缀来代替分类地址中网络号和子网络号
IP地址从三级编址又回到了二级编址
无分类编址方案采用斜线记法,又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应子网掩码中的1的个数)
IP地址::= {<网络前缀>,<主机号>}/网络前缀所占位数
CIDR仅将IP地址划分为网络前缀和主机号两个部分
例:
已知一个IP地址是:128.14.35.7/28
分析:
128.14.35.7/20 = 10000000 00001110 00100011 00000111
即前20位是网络前缀,后12位是主机号,可以得到一个CIDR地址块的最小地址和最大地址
最小地址是:128.14.32.0 → 10000000 00001110 00100000 0000000
最大地址是:128.14.47.255 → 10000000 00001110 00101111 11111111
子网掩码是:255.255.240.0 → 11111111 11111111 11110000 00000000
是要消除路由器中的路由表条目数,一个路由表告诉一个路由器哪里发送流量
聚合就是将相邻的多个IP前缀合并成一个短前缀,使其覆盖更多的地址空间
假设有两个前缀为190.154.27.0/26和190.154.27.64/26,两者的网络号只有最后一位不同,将其隔离出来即是两者差值为1,也即相邻,可以进行聚合
聚合后,前缀变为25,这时候相当于将两个子网进行了聚合
前缀 | 前缀(二进制) |
---|---|
190.154.27.0/26 | 10111110 10011010 00011011 00000000 |
190.154.27.64/26 | 10111110 10011010 00011011 01000000 |
190.154.27.0/25 | 10111110 10011010 00011011 00000000 |
聚合后的效果: 原来需要传递到第一个网络或第二个网络的数据包现在都只需要传到第三个网络中,再由这个网络进行分配决定到底是传到第一个还是第二个,这样就减少了一个路由器中的条目数,转而分担到了各个“子网”中
(1)第一步
主机A将自己的IP地址和子网掩码作。与运算”,主机A的IP地址为192.168.0.5,将这个IP地址转换为二进制就是∶11000000 10101000 00000000 00000101
主机A的子网掩码为255.255.255.0,将该掩码转换为二进制就是:11111111 1111111111111111 00000000将主机A二进制形式的IP地址和子网掩码作“与运算”的结果是:11000000 10101000 00000000 00000000
为了方便查看将这个“与运算”的结果再转换为点分十进制的数就是:192.168.0.0
(2)第二步
将目标主机(主机B)的IP地址与发送方(主机A)的子网掩码作“与运算”,比如本例中,主机B的IP地址为1.1.1.5,将这个IP地址转换为二进制就是:00000001 00000001 00000001 00000101
主机A的子网掩码为255.255.255.0将该掩码转换为二进制就是∶111111111111111111111111 00000000将以上两组二进制的数进行“与运算”的结果是:00000001 00000001 0000000100000000将这个“与运算”的结果转换为点分十进制的数就是∶1.1.1.0这样我们就得到了两组“与运算”的结果,分别是∶192.168.0.0和1.1.1.0
(3)第三步
对于主机A来说,经过这样一番“与运算”后,如果两个“与运算”结果相同,则说明目标主机B和自己在同一个网络内,即目标主机B在本地网络。相反地,对于主机A来说,经过这样一番“与运算”后,如果两个“与运算”结果不同,则说明目标主机B和自己不在同一个网络内,即目标主机B在远程网络。在这里,很显然目标主机B对于发送方(主机A)来说在远程网络——也就是在网络B。
(4)第四步
C:\>route print
Active Routes:
Network Destination(目的网络) | Netmask(子网掩码) | Gateway(网关) | Interface(接口) | Metric(优先度) |
---|---|---|---|---|
0.0.0.0 | 0.0.0.0 | 192.168.0.0 | 192.168.0.5 | 10 |
127.0.0.0 | 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | 1 |
192.168.0.255 | 255.255.255.255 | 192.168.0.5 | 192.168.0.5 | 10 |
224.0.0.0 | 240.0.0.0 | 192.168.0.5 | 192.168.0.5 | 10 |
255.255.255.255 | 255.255.255.255 | 192.168.0.5 | 192.168.0.5 | 1 |
主机A路由表的输出显示中我们没有找到与目标主机B所在1.1.1.0这个网络相匹配的具体路由
路由表第一列的输出说明主机A在没有找到能够到达目标网络的具体路由的情况下,会将发往目标网络的数据包发送到默认/缺省网关(192.168.0.1),由这个默认/缺省网关再将该数据包转发到目标网络
(5)第五步
路由器的F0/0接口上的IP地址192.168.0.1与F0/0接口的子网掩码255.255.255.0作“与运算"得到“结果1”;目标地址1.1.1.5与路由器F0/0接口的子网掩码255.255.255.0作“与运算”得到“结果2”;“结果1”与“结果2”并不相同,证明目标地址1.1.1.5并不处在路由器的FO/0接口所在的网络A。
路由器的另一个接口F0/1的IP地址1.1.1.1与F0/1接口 的子网掩码255.0.0.0作“与运算”得到“结果3”;目标地址1.1.1.5与F0/1接口上的子网掩码255.0.0.0作“与运算”得到“结果4”;“结果3”与“结果4”相同,证明目标地址1.1.1.5处在路由器的F0/1接口所在的网络B。这也就意味着路由器B只需将发送给1.1.1.5的数据包从F0/1接口发出去就OK了。