一、前言:
1.IP地址:
(1).都是32位二进制(四段8位二进制组成)(4个字节<一个字节:8个零或一>),十进制表示:四个中间用点分隔的十进制数表示(点分十进制记法<dotted decimal notation>)。
(2).首先我们知道在internet当中的终端,如果想要被其他终端访问,就需要一个唯一的ip地址。
(3).每个IP地址都是由网络号和主机号两部分组成。 IP地址是一种分等级的地址结构。分两级的好处是:
好处1.IP地址管理机构在分配IP地址时只分配网络号(第一级), 得到网络号的单位自行分配剩下的主机号(第二级)
好处2.路由器只根据目的主机所连接的网络号进行转发分组(而不考虑目的主机号),这样就可以使路由器中的路由表项目数大幅减少,从而减小路由表所占的存储空间和查找路由表的时间。
(4).IP地址标识的是一台主机(或路由器)和一条链路的接口(一个主机连接一个网络)。 当一台主机同时连接两个网络时(比如路由器至少连接两个网络),则该主机必须同时具有两个IP地址(网络地址也是两个)。这种主机称作多属主机(multihomed host)。就好比一栋房子处在两条路的交叉口(也是两个行政单位的边界),那么这个房子就可能拥有两个门牌号(路由器总是具有两个或两个以上的ip地址)。
(5).用转发器或网桥连接起来的多个局域网仍是一个网络,因为他们具有同样的网络号。 如果具有不同的多个局域网要连接就得用路由器
(6).IP地址和mac地址(物理地址/硬件地址)的区别?图4-8说明了这两种地址的区别。
从层次的角度看,硬件物理地址(也叫mac地址)是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)。
应用层发送的是TCP报文;网络层、运输层、会话层、表示层都发送的是IP数据报(源IP地址和目标IP地址都封装在数据报的首部,TCP报文就是IP数据报的数据);数据链路层发送的是mac数据帧(源mac地址和目标mac地址都封装在mac数据帧的首部,ip数据报就是mac数据帧的数据)。 所以IP地址是网络层及网络层以上使用的是IP地址,数据链路层使用的是mac地址。
(7).IP地址和mac地址使用举例:
图4-9(a)画的是三个局域网用两个路由器R和R2互连起来。现在主机H|要和主机H2通信。这两台主机的IP地址分别是IP和IP2,而它们的硬件地址分别为HAI和HA2 (HA表示Hardware Address)。 通信的路径是: H1→经过R1转发一再经过R2转发→H2。路由器R1因同时连接到两个局域网上,因此它有两个硬件地址,即HA3和HA4。同理,路由器R2也有两个硬件地址HAs和HA6。
注意: 路由器R1收到数据,计算出和它连接的传输最合理的的R2,R2再找到主机H2
- 路由器R1和R2的ip地址不会出现在IP数据报的首部。 路由器选择路径(路由)是根据目标IP地址的网络号进行的。
- 在数据链路层只能看见mac帧。Mac帧的数据就是IP数据报。 mac帧在网络中传送时,mac帧的首部中有源mac地址和目标mac地址,每个路由器转发一次源mac地址和目标mac地址都要发生改变。 举例:H1发送到R1时,MAC帧首部中写的是硬件地址HA1和硬件地址HA3,路由器R1收到此MAC帧后,在数据链路层要丢弃原来的MAC帧的首部和尾部。在转发时,在数据链路层,要重新添加上MAC帧的首部和尾部。这时首部中的源地址和目的地址分别便成为HA4和HAs。路由器R2收到此帧后,再次更换MAC帧的首部和尾部,首部中的源地址和目的地址分别变成为HA6和HA2。MAC帧的首部的这种变化,在上面的IP数据报上是看不见的。
- 尽管互连在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信。上述的这种 “屏蔽”概念是一个很有用、很普遍的基本概念。
例如,计算机中广泛使用的图形用户界面使得用户只需简单地点击几下鼠标就能让计算机完成很多任务。实际上计算机要完成这些任务必须执行很
多条指令。但这些复杂的过程全都被设计良好的图形用户界面屏蔽掉了,使用户看不见这些复杂过程。
- MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet
Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。是基于制造商的。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 [1] 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 。
MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性。
- IP地址是一个32位的逻辑分配的地址,是基于网络拓扑结构的,是可以手动修改的。 通信时,采用IP地址 + mac地址的方式
- IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)
(8).IP地址管理、分配及配置:
8.1.管理与分配:
管理:互联网上的IP地址统一由一个叫“ICANN”的组织来管理。(Internet Corporation for Assigned Names and Numbers,互联网赋名和编号公司)
分配:所有的IP地址都由国际组织NIC(Network Information Center 网络信息中心)负责统一分配的,目前全世界共有三个这样的网络信息中心。而我国申请IP地址要通过APNIC,APNIC的总部设在日本东京大学。申请时要考虑申请哪一类的IP地址。
8.2.DHCP:
TCP/IP协议需要针对不同的网络进行不同的设置,且每个节点一般需要一个“IP地址”、一个“子网掩码”、一个“默认网关”。不过,可以通过动态主机配置协议(DHCP),给客户端自动分配一个IP地址,避免了出错,也简化了TCP/IP协议的设置。
2.问题:怎么通过ip地址访问其他主机的呢?
答案是通过路由器,路由设备当中有一张路由表,该路由表记录了和此路由器连接的所有设备的ip地址,就可以进行数据包的转发了。
注意:同一个网络中的计算机可以通过交换机相连组成一个网络,从而互相之间发送数据。
但是不同网络中的计算机不能互相发送数据。 但是不同网络中的计算机可以通过路由器进行转发,路由器的每个端口可以连接一个网络,这样可以进行不同网络间的数据转发。
- 、回顾一下帧结构:路由器接收到一个IP数据包,会IP根据包中得
- 目标IP地址,来进行选择路径并转发 具体参考图4-9。
2)、路由器工作在网络层(3层)使用IP地址,
交换机工作在数据链路层(2层)使用mac地址 。
MAC地址对应于OSI参考模型的第二层数据链路层,交换机维护着计算机
MAC地址和自身端口的数据库。MAC地址采用十六进制数表示,长度是6个字节(48位),分为前24位和后24位。 7C-67-A2-32-C1-75前24位叫做组织唯一标志符(OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。后24位是由厂家自己分配的,称为扩展标识符,同一个厂家生产的网卡中MAC地址后24位是不同的。
3)、路由器作用就是路由,路由器对数据包选择最佳路径!
3.路由: 为了把数据从源主机传输到目标主机从而选择一个路径的过程。
4.路由原理
1)路由器是依据路由表来转发数据得!
2)如果成功匹配路由表,则根据表的方向来转发数据!
3)如果没有匹配路由表,则丢弃数据!
4)匹配路由表时,优先匹配直连,然后是S,最后是S*
- 网络上的两台计算机在相互通信时,在它们所传送的数据包里含有某些附加信息,这些附加信息就是发送数据的计算机的地址和接受的计算机的地址。
- IP地址都由网络地址和主机地址两部分组成,网络地址表示其属于哪一个网络,主机地址表示其属于该网络中的哪一台主机。
网络地址+主机地址标志了此主机在网络中的唯一性。
二、五类IP地址:
由于近年来已经广泛使用无分类IP地址进行路由选择,用A类、B类、C类区分IP地址已经成为了历史。【1981年RFC 1812】
但由于很多文献资料都还使用传统的分类IP地址,所以我们还得了解ABC分类IP。
(Request For Comments,缩写为RFC,是由互联网工程任务组(IETF)发布的一系列备忘录。文件收集了有关互联网相关信息,以及UNIX和互联网社群的软件文件,以编号排定。FC文件是由互联网协会(ISOC)赞助发行)
1.A类IP:
第一段号码为网络号码(net-id),剩下的三段号码为主机号码(host-id)。
用二进制表示IP:左边第1个字节是网络地址(8位二进制),剩余的3字节是主机地址(24位二进制)。
网络的标识长度(网络地址长度)为7位(网络地址的前第一位必须是0),主机标识的长度为24位
A类IP子网掩码默认是255.0.0.0
B类IP地址范围中,网络地址的前第一位必须是0, 所以第一字节网络地址范围是:00000001-01111110,即1-126
A类IP的范围是: 1.0.0.1-------------------到--------------------126.255.255.254(网络位范围是1-126<27-2>,因为网络地址全为0和网络地址全为1<十进制是127>的不可用,网络地址为0的是保留地址(表示本网络本主机),不能被分配。 而网络地址为127<01111111>的是专用本地环路测试地址也叫环路地址<也叫本地软件环回测试地址,用来测试本主机的进程之间的通信>也是不能被分配的)
本地环路测试地址: 比如主机发送一个目的地址测试(环回测试)(如127.0.0.1)的IP数据报,则本主机中的协议软件回直接处理数据报中的数据,而不会把数据报发送到任何网络上,因为网络地址为127的地址根本不是一个网络地址。
有些资料上总结ABC类IP地址时没有排除网络地址和广播地址,或者没有排除网络本主机和环路地址,所以各个子老上对于ABC类地址范围总结会各不相同。
(主机号占3个字节,所以最大主机数目为224-2,因为主机号全为0表示这个网络中所有主机的网络地址。 主机号全为1的<255>表示广播地址<就是此网络的所有主机>)
(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。
A类适用的类型为大型网络(每个网络中主机数特别多1677万台),A类网络地址数量较少,有126个网络可用(1到126),每个网络支持的最大主机数为224-2=16777214台(约为1677万台)(主机位是3个字节,24位,第一个ip和最后一个ip不能用); (表示只能有126个组织使用A类IP,每个组织可以为1677万台主机提供地址。超大型组织会分配整个 A 类地址块。 时至今日,仍些规模小于国家的政府组织和某些公司和拥有 A 类地址。 例如,通用电气公司拥有3.0.0.0/8,苹果电脑公司拥17.0.0.0/8,美国邮政总局拥有 56.0.0.0/8<8表示子网掩码是8个1>)。 IP地址总共有232(即4294967296)个地址, A 类IP地址有231个地址(网络地址中的第一位必须是0),占整个地址空间的 50%。
A类IP的网络数最少,但是每个网络中的主机数最多,所以适合国家等大型组织。
A类IP的默认子网掩码是255.0.0.0 即11111111 00000000 00000000 00000000
2.B类IP:
前两段号码为网络地址,剩下的两段号码为本地计算机的地址。
用二进制表示IP:左边第2个字节是网络地址(16位二进制),剩余的2字节是主机地址(16位二进制)。
网络的标识长度为14位(网络地址的前2位必须是10),主机标识的长度为16位
B类IP地址范围中,网络地址的前2位必须是10(最左边的第一字节的前两位),所以第一字节的范围是:10000000-10111111,即128-191。
(不需要去掉网络位全为0和网络位全为1的网络位,因为网络地址的前2位是10。不可能全为0和全为1)
但是128.0.0.0网络地址是不可使用的<不要管主机位>,而可使用最小的网络地址是128.1.0.0 [COME06]。因此B类地址可使用的网络地址数目是214-1即16383个网络地址。 而每个网络中的最多主机数目是216-2 即65534个主机(主机地址全为0和主机地址全为1的不能用)。 (因为主机号全为0的是本机地址。 主机号全为1的表示广播地址<就是此网络的所有主机>)
B类IP的范围是:128.0.0.1-------------------到--------------------191.255.255.254
B类IP子网掩码默认是255.255.0.0 即11111111 11111111 00000000 00000000
B类IP适用于中型网络(每个网络可以支持的主机数约为6万5千台),B类网络地址数量适中,有16384个网络(2^16),每个网络支持的最大主机数为2的16次方-2=65534台; B类IP地址共有230个地址,B类占整个地址空间的 25%。
有那些特大型的公司/组织或政府部门有可能会使用到所有 65,534 个地址。 与 A 类网络类似,B 类地址空间浪费许多 IP 地址。
3.C类IP:
前三段号码为网络号码,剩下的一段号码为本机地址。
用二进制表示IP:左边第3个字节是网络地址(24位二进制),剩余的1字节是主机地址(8位二进制)。
网络的标识长度为21位(网络地址的前3位必须是110),主机标识的长度为8位
C类IP地址:网络地址的前3位必须是110(最左边的第一字节的前三位),所以第一字节的范围是:11000000-11011111,即192-223。
C类IP的范围是:192.0.0.1-------------------到--------------------223.255.255.254
C类IP子网掩码默认是255.255.255.0 即11111111 11111111 11111111 00000000
C类适用的类型为小型网络,适用于小规模的局域网络(每个网络可以支持的主机数为254台<主机地址全为0表示本机地址不能用,主机地址全为1的是广播地址不能用>广播地址则是一个有类或无类网络中的最后一个IPv4地址,即主机ID部分全为1的IPv4地址,
(用来向其他所有地址发送广播数据)可通过这个地址向对应网络或子网以广播方式发送数据包(也就是广播通信),让本地网络或子网的所有节点都可收到同一数据包。),
C类网络地址数量较多,但是192.0.0.0网络地址是不可使用的<不要管主机位>,而可使用最小的网络地址是192.0.1.0 [COME06]。因此C类地址可使用的网络地址数目有209万余个网络(221-1即2097151个网络地址)(2^21 <24位减去占据110的三位标识位就是21位二进制>)。C 类占整个地址空间的 12.5%。 许多组织可以获得 C 类网络,但是限于它们能够连接的主机总数。事实上,在许多情况下,C类地址对于大多数中型企业来说通常太小。
注:像国家等大型组织适合使用A类IP地址, 小办公室局域网适合使用C类IP地址。
除了上面三种类型的IP地址外,还有几种特殊类型的IP地址:
ABC类IP用于单播通信, D类IP用于组播通信。 E类是保留地址。
4.D类IP地址用于多点广播(一对多通信也叫组播地址)(第一个字节以“1110”开始的ip都叫多点广播地址):
组播:单点发送,部分点接收(一个计算机给一组计算机发送数据)
D类地址用于多点广播通信也叫组播通信 (源主机或者叫组播源主机发送一份儿数据,组播组内的主机才能收到数据<的副本>)
D类IP地址网络地址的前4位必须是1110,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播,多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。因此,任何第一个字节大于223小于240的IP地址是多点广播地址;
范围:224.0.0.0-------------------到--------------------239.255.255.255 (不用了解)
5.E类IP地址:
E类IP地址前5位以“11110”开始(也就是后27位是可变的),属于IANA保留地址,为将来使用的保留地址,不能分配给用户使用。
地址范围为:240.0.0.0-------------------到--------------------255.255.255.254 (不用了解)
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
6.总结:
IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。一般最常见的是ABC类IP地址(DE类地址很少)。
三、默认子网掩码:
A类IP子网掩码默认是255.0.0.0
B类IP子网掩码默认是255.255.0.0
C类IP子网掩码默认是255.255.255.0
将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
子网掩码和IP地址表示方法类似常用点分十进制表示,子网掩码还可以用CIDR的网络前缀法表示掩码,即“/<网络地址位数>;”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。
四、无类别IP/无类别网络/无分类域间路由选择CIDR:
4.1.在2011年2月3日IANA宣布采用ABCDE分类方式划分IP的所有排列组合所有可能已经耗尽(IANA: The Internet Assigned Numbers Authority,互联网数字分配机构,是负责协调一些使Internet正常运作的机构)。 国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF)即时的推出了无分类编址IP划分方式(),并组织成立IPv6工作组负责研究新版本IP协议。
尽管已针对整个IPv4地址空间进行ABCDE分类,但每类网络的数.量对于全球用户数量来说仍非常之少,特别是A类网络才枢区的126个。之所以会出现这种现象,原因就在于每类网络的网络ID部分(也就是子网掩码部分):的位数是固定不变的,:而且是字节的整数倍,如A类网络中的网络ID部分占1字节(8位),B类网络中的网络ID:部分占2字节(16位)、C类网络中的网络ID部分占3字节(24位)。为了解决这种可用网络数太少的问题,同时提高IP地址有有效利用率,于是出现了种称为VLSM (Variable Length Subnet Masking,可变长子网掩码)的技术,该技术可以使网络中IPv4地址的子网掩码所占位数不是固定的,如子网掩码位数可以不是以字节为单位
的整数,如12、13、14、25、26、28、等均可。因为子网掩码位数不固定了,也就不能再依据子网掩码来进行分类了,所以采用VLSM后形成的网络称为无类网络,而以前传统的A、B、C类网络则相对应地被称为有类网络或标准网络。而我们把在有类网络中通过VLSM技术改变子网掩码长度而划分的小网络称为子网。 使用变长子网掩码VLSM (Variable Length Subnet Mask)可进一步 提高IP地址资
源的利用率。在VLSM的基础.上又进一步研究 出无分类编址方法,它的正式名字是无分类域间路由选择CIDR (Classless Inter-Domain Routing, CIDR 的读音是“sider”)。
4.2.CIDR记法有多种形式,例如,地址块10.0.0.0/10 可简写为10/10, 也就是把点分十进制中低位连续的0省略。另一种简化表示方法是在网络前缀的后面加一个星号*,如: 00001010 00*
意思是:在星号*之前是网络前缀,而星号*表示IP地址中的主机号,可以是任意值。
前缀位数不是8的整数倍时,需要进行简单的计算才能得到一些地址信息。
表4-7给出了最常用的CIDR地址块。表中的K表示2l0即1024。 网络前缀小于13或大于27都较少使用。在“包含的地址数”中没有把全1和全0的主机号除外。
从表4-7可看出,每一个CIDR地址块中的地址数一定是2的整数次幂。除最后几行外,CIDR地址块都包含了多个C类地址(是一个C类地址的2”倍,n是整数),这就是“构成超网”这一-名词的来源。使用CIDR的一个好处就是可以更加有效地分配IPv4 的地址空间,可根据客户的需要
分配适当大小的CIDR 地址块。然而在分类地址的环境中,向一个部门分配IP地址,就只能以/8, /16或/24为单位来分配。这就很不灵活。
4.3.案例:
前提:ISP全称(Internet Service Provider)即“互联网服务提供商”,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。ISP是经国家主管部门批准的正式运营企业,享受国家法律保护,一般是服务器与虚拟主机提供商必须具备的(中国ISP:电信、移动、联通。为每家每户和各种组织单位提供上网服务)。
图4-25给出的是CIDR地址块分配的例子。假定某ISP已拥有地址块206.0.64.0/18 (相当于有64个C类网络)。现在某大学需要800个IP地址。ISP可以给该大学分配一个地址块206.0.68.0/22,它包括1024 (即2l0) 个IP地址,相当于4个连续的C类/24地址块,占该ISP拥有的地址空间的1/16。这个大学然后可自由地对本校的各系分配地址块,而各系还可再划分本系的地址块。CIDR的地址块分配有时不易看清,这是因为网络前缀和主机号的界限不是恰好出现在整数字节处。只要写出地址的二进制表示(从图中的地址块的二进制表示中可看出,实际上只需要将其中的一一个关键字节转换为二进制的表示即可),弄清网络前缀的位数,就不会把地址块的范围弄错。
从图4-25可以清楚地看出地址聚合的概念。这个ISP共拥有64个C类网络。如果不采用CIDR技术,则在与该ISP的路由器交换路由信息的每一个路由器的路由表中,就需要有.64个项目。但采用地址聚合后,就只需用路由聚合后的一个项目206.0.64.0/18 就能找到该ISP。同理,这个大学共有4个系。在ISP内的路由器的路由表中,也需使用206.0.68.0/22这个项目。这个项目好比是大学的收发室。凡寄给这个大学任何-一个系的邮件,邮递员都不考虑大学各个系的地址,而是把这些邮件集中投递到大学的收发室,然后由大学的收发室再进行下一步的投递。这样就减轻了邮递员的工作量(相当于简化了路由表的查找)。
从图4-25下面表格中的二进制地址可看出,把四个系的路由聚合为大学的一个路由(即构成超网),是将网络前缀缩短。网络前缀越短,其地址块所包含的地址数就越多。
4.4.优点如下:
(1).CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而能更加有效地分配IPv4的地址空间,并且在新的IPv6使用之前容许互联网的规模继续增长。CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”(network-prefix)(或简称为“前缀”),用来指明网络,后面部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址,但这已是无分类的两级编址。其记法是:
IP地址:= {<网络前缀>, <主机号>}
CIDR还使用“斜线记法”(slash notation), 或称为CIDR记法,即在IP地址后面加上斜线“/"”, 然后写上网络前缀所占的位数。
(2) CIDR把网络前缀都相同的连续的IP地址组成-一个“CIDR 地址块”(128.14.32.0到128.14.47.255区间)。我们只要知道CIDR地址块中的任何一一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,现在把它写成二进制表示,其中的前20位是网络前缀(前边20位是网络位)(用粗体和下划线表示出),而前缀后面的12位是主机号: 128.14.35.7/20 = 10000000 00001110 00100011 00000111
这个地址所在的地址块中的最小地址和最大地址可以很方便地得出:
当然,以上这两个特殊地址的主机号是全0和全1的地址。--般并不使用。通常只使用在这两个特殊地址之间的地址。不难看出,这个地址块共有2l2 个地址。我们可以用地址块中的最小地址和网络前缀的位数指明这个地址块。例如,上面的地址块可记为128. 14.32.0/20。在不需要指出地址块的起始地址时,也可把这样的地址块简称为“/20 地址块”。
为了更方便地进行路由选择,CIDR使用32位的地址掩码(address mask)。 地址掩码由一串1和一串0组成,而1的个数就是网络前缀的长度。虽然CIDR不使用子网了,但由于目前仍有一些网络还使用子网划分和子网掩码,因此CIDR使用的地址掩码也可继续称为子网掩码。例如,/20 地址块的地址掩码是: 1111111 1111111 1110000 0000000 (20个连续.的1)。斜线记法中,斜线后面的数字就是地址掩码中1的个数。
注意:“CIDR不使用子网”是指CIDR并没有在32位地址中指明若干位作为子网字段。但分配到一个CIDR地址块的单位,仍然可以在本单位内根据需要划分出一些子网。这些子网也都只有-一个网络前缀和一台主机号字段,但子网的网络前缀比整个单位的网络前缀要长些。例如,某单位分配到地址块/20,就可以再继续划分为8个子网(即需要从主机号中借用3位来划分子网)。这时每一个子网的网络前缀就变成23位( 原来的20位加上从主机号借来的3位),比该单位的网络前缀多了3位。
斜线记法还有一个好处就是它除了表示-一个IP地址外,还提供了其他一-些重要信息。
例如,地址192. 199.170.82/27不仅表示IP地址是192.199.170.82, 而且还表示这个地址块的网络的前缀有27位(剩下的5位是主机号),因此这个地址块包含32个IP地址(25 =32)。
通过简单的计算还可得出,这个地址块的最小地址是192. 199.170.64,最大地址是192.199.170.95。具体的计算方法是这样的。
1.找出地址掩码中1和0的交界处发生在地址中的哪一个字节。现在是在第四个字节。因此只要把这一个字节的十进制82用二进制表示即可。十进制82的二进制是01010010,
2.取其前3位(这3位加上前3个字节的24位等于前缀的27位),再把后面5位都写成0,即01000000,等于十进制的64。这就找出了地址块的最小地址192.199.170.64。
3.再把地址的第四字节的最后5位都置1,即01011111,等于十进制的95,这就找出了地址块中的最大地址192. 199.170.95。
了解(这一段内容尽量理解,理解不了不影响):由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合(route aggregation), 它使得路由表中的-一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。路由聚合也称为构成超网(superetting)。如果没有采用CIDR,则在1994 年和1995 年,互联网的一个路由表就会超过7万个项目,而使用了CIDR后,在1996 年一个路由表的项目数才只有3万多个。路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
4.5.最长前缀匹配:
在使用CIDR时,由于采用了网络前缀这种记法,IP 地址由网络前缀和主机号这两个部分组成,因此在路由表中的项目也要有相应的改变。这时,每个项目由“网络前缀”和“下一跳地址”组成。但是在查找路由表时可能会得到不止一一个匹配结果。这样就带来一个问题:我们应当从这些匹配结果中选择哪一条路由呢?
正确的答案是:应当从匹配结果中选择具有最长网络前缀的路由。这叫做最长前缀匹配(longest-prefix matching),这是因为网络前缀越长,其地址块就越小,因而路由就越具体(morespecific)。最长前缀匹配又称为最长匹配或最佳匹配。为了说明最长前缀匹配的概念,仍以前面的例子来讨论。
假定大学下属的四系希望ISP把转发给四系的数据报直接发到四系而不要经过大学的路由器,但又不愿意改变自己使用的IP地址块。因此,在ISP的路由器的路由表中,至少要有以下两个项目,即206.0.68.0/22 (大学)和206.0.71.128/25 (四系)。现在假定ISP收到一个数据报,其目的IP地址为D=206.0.71.130。把D分别和路由表中这两个项目的掩码逐位相“与”(AND操作)。将所得的逐位AND操作的结果按顺序写在下面。
不难看出,现在同一个IP地址D可以在路由表中找到两个目的网络(大学和四系)和该地址相匹配。根据最长前缀匹配的原理,应当选择后者,把收到的数据报转发到后一个目的网络(四系),即选择两个匹配的地址中更具体的一个。从以上的讨论可以看出,如果IP 地址的分配- -开始就采用CIDR, 那么我们可以按网络所在的地理位置来分配地址块,这样就可大大减少路由表中的路由项目。例如,可以将世界划分为四大地区,每一地区分配一个CIDR地址块:
地址块194/7 (194.0.0.0至195.255.255.255)分配给欧洲;
地址块198/7 (198.0.0.0至199.255.255.255)分配给北美洲;
地址块200/7 (200.0.0.0至201.255.255.255)分配给中美洲和南美洲;
地址块202/7 (202.0.0.0至203.255.255.255)分配给亚洲和太平洋地区。
上面的每一个地址块包含有约3200万个地址。这种分配地址的方法就使得IP地址与地理位置相关联。它的好处是可以大大压缩路由表中的项目数。例如,凡是从中国发往北美的IP数据报(不管它是地址块198/7 中的哪-一个地址) 都先送交位于美国的一个路由器,因此在路由表中使用一个项目就行了。
但是,在使用CIDR之前,互联网的地址管理机构没有按地理位置来分配IP地址。现在要把已分配出的IP地址收回再重新分配是件十分困难的事,因为这牵涉到很多正在工作的主机必须改变其IP地址。尽管这样,CIDR 的使用已经推迟了IP地址耗尽的日期。
五、子网划分:
1.从两级IP地址到三级IP地址
在今天看来,在ARPANET的早期,IP 地址的设计确实不够合理。
第一,IP 地址空间的利用率有时很低。
每一个A类地址网络可连接的主机数超过1000万,而每一一个 B类地址网络可连接的主机数也超过6万。有的单位申请到了一个B类地址网络,但所连接的主机数并不多,可是又不愿意申请一个足够使用的C类地址,理由是考虑到今后可能的发展。IP地址的浪费,还会使IP地址空间的资源过早地被用完。
第二,给每一个物理网络分配个网络号会使路由表变得太大因而使网络性能变坏。
每一个路由器都应当能够从路由表查出应怎样到达其他网络的下一跳路由器。因此,互联网中的网络数越多,路由器的路由表的项目数也就越多。这样,即使我们拥有足够多的IP地址资源可以给每一个物理网络分配-个网络号,也会导致路由器的路由表中的项目数过多。这不仅增加了路由器的成本(需要更多的存储空间),而且使查找路由时耗费更多的时间,同时也使路由器之间定期交换的路由信息急剧增加,因而使路由器和整个互联网的性能都下降了(如果只给网络中的部分主机分配网络地址,它的下一级计算机都使用子网,路由器只存储主机的信息,这样路由器中的路由表就比较小)。
第三,两级IP地址不够灵活(网络地址+主机地址)。
有时情况紧急,一个单位需要在新的地点马上开通一个新的网络。但是在申请到一个新的IP地址之前,新增加的网络是不可能连接到互联网上工作的。我们希望有一种方法,使一个单位能随时灵活地增加本单位的网络,而不必事先到互联网管理机构去申请新的网络号。原来的两级IP地址无法做到这一-点。为解决上述问题,从1985年起在IP地址中又增加了一个“子网号字段”,使两级IP地址变成为三级IP地址(网络地址+子网地址+主机地址),它能够较好地解决上述问题,并且使用起来也很灵活。这种做法叫做划分子网(subnetting) [RFC 950],或子网寻址或子网路由选择。划分子网已成为互联网的正式标准协议。
2.划分子网的基本思路如下:
(1) 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet)。 划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
(2)划分子网的方法是从网络的主机号借用若干位作为子网号(subnet-id),当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机号。
也可以用以下记法来表示: IP地址:= {<网络号>,<子网号>,<主机号>}
(3)凡是从其他网络发送给本单位某台主机的IP 数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络.上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机。
下面用例子说明划分子网的概念。图4-18表示某单位拥有一个B类IP地址,网络地址是145.13.0.0 (网络号是145.13)。凡目的地址为145.13.x.x 的数据报都被送到这个网络上的路由器R1。
现把图4-18的网络划分为三个子网(图4-19)。这里假定子网号占用8位,因此在增加了子网号后,主机号就只有8位。所划分的三个子网分别是: 145.13.3.0, 145.13.7.0 和145.13.21.0。在划分子网后,整个网络对外部仍表现为一个网络,其网络地址仍为145.13.0.0。但网络145.13.0.0 上的路由器R1在收到外来的数据报后,再根据数据报的目的地址把它转发到相应的子网。
总之,当没有划分子网时,IP 地址是两级结构。划分子网后IP 地址变成了三级结构。划分子网只是把IP地址的主机号这部分进行再划分,而不改变IP地址原来的网络号。
3.子网划分过程:
注意:向主机位借位n位,子网数就是2n(借到的这n位的01组合有2n种排列组合)。 每一种组合+主机位的范围就是每个子网的范围
案例1:
案例2:
某A类网络20.0.0.0的子网掩码为255.224.0.0,请确定可以划分的子网个数,写出每个子网的子网号。
解析:A类网络子网掩码默认为255.0.0.0(子网掩码就是将网络位和子网位都标记为1,主机位标记为0),A类网络第一字节是网络位,所以224(11100000)就是子网位,就是像主机位借位了3位当作子网位(子网位占用了主机位的3位),则子网个数就是23,也就是八个子网个数,至于每个的子网号,就看后五位为零的主机号,去除掉全零和全一,也就是都从00001到11110的范围:
案例3:请将10.0.0.0/8这个网络划分为8个子网,并标识出每个网络的网络号、广播号及可用地址范围?
解:8个子网就是向主机位借位3位,借位后子网掩码是255.11000000.0.0 (255.224.0.0)。 块大小=256-224=32
①网络号10.0.0.0/11 广播号10.31.255.255 可用地址范围10.0.0.1-10.31.255.254
②网络号10.32.0.0/11 广播号10.63.255.255 可用地址范围10.32.0.1-10.63.255.254
③网络号10.64.0.0/11 广播号10.95.255.255 可用地址范围10.64.0.1-10.95.255.254
④网络号10.96.0.0/11 广播号10.127.255.255可用地址范围10.96.0.1-10.127.255.254
⑤网络号10.128.0.0/11广播号10.159.255.255可用地址范围10.128.0.1-10.159.255.254
⑥网络号10.160.0.0/11广播号10.191.255.255可用地址范围10.160.0.1-10.191.255.254
⑦网络号10.192.0.0/11广播号10.223.255.255可用地址范围10.192.0.1-10.223.255.254
⑧网络号10.224.0.0/11广播号10.255.255.255可用地址范围10.224.0.1-10.255.255.254
案例3:将某C类网网络IP 200. 161.30. 0划分成4个子网,请计算出每个子网的有效的主机IP地址范围和对应的子网掩码。
解析:四个子网就是向主机位借位2位,因为C类网络默认子网掩码是255.255.255.0,借位两位后的子网掩码(网络位和子网位都用1表示)是255.255.255.192。地址范围就是两位二进制的所有排列组合(所有排列组合叫做全排列):
案例4:应用四:某公司申请到的网络地址为192.3.2.0,现要划分5个子公司,最大的一个
子公司有28台计算机,每个子公司在一个子网中,则
(1).子网掩码应为多少?
(2).5个子公司的网络地址分别是什么?
解析(1):先判断为C类地址(范围是:192.0.0.1---到---223.255.255.254),要五个子网,
则需要向主机位借位3位(22<5<23)(借两位不够,借位3位够)(子网掩码:255.255.255.224):剩下五个主机数,25-2=30个主机>28(满足最大主机数),所以主机数也够,因此子网掩码应为:255.255.255.224;(224就是11100000)
六、IP地址前缀表示形式:
为了能更加简便地书写,采取了一种比较简单的地址前缀表示形式,就是在一个IPv4地址(可以是网络地址,也可以是主机地址)后面先加上一个斜杠(A), 然后在这个斜杠后面直接写出该地址所在网络的网络ID,或者子网掩码长度,因为网络ID长度决定了具
体IPv4地址所属的网络。如192. 168.+.10/24代表的是- .个标准的C类网络IPv4地址,而10.1 .0.10/8则代表了一个标准的A类网络IPv4地址。
这种表示形式一般是为了表示无类别IP的网络的,个IPv4地址所在的网络或子网,以及这个网络和子网的地址范围。如从131.107.0.0/18这个地址中可知它所对应的网络中有18位属于网络ID部分,有14位属于主机ID部分,可分配给主机的IPv4地址数就是21*-2= 16382
七、几种特殊的IPv4地址
在我们平时进行IPv4地址配置和管理时,经常遇到这么几种特殊的HPv4地址,其中一种最重要的IPv4地址就是私网IP地址,也就是通常所说的局域网IP地址或者专用网络IP地址。还有像以0、127、 169开头的IPv4地址。本节将做一一介绍。
1.私网IP地址(只用于局域网内的IP地址<不用使用在公网中>,也叫私有IP):
为了提高IPv4地址的重复利用率(让某些IP在不同局域网中重复使用),在设计IPv4地址时就专门在A、B、C.这类IPv4地址中各自划分了一段专用于各组织局城网内部的地址段,这就是我们前面所说的私网IP地址(又称局域网专用IP地址或者专用网络地址)。私网IPv4地址在不同公司内部的不同局域网中是可以重复使用的(同一个局域网),且无须向IP地址管理机构申请、注册和购买的。在A、B、C类地址中各自划分的局域网专用地址段如下(在上边讲的ABC类网络中保留了如下三段区域作为私有IP,用于局域网)。
(1) 10.0.0.0/8 ( 10.0.0.0, 255.0.0.0) 范围: 10.0.0.0~10.255.255.255
在A类地址中,局域网内部节点可以使用10.0.0.1-10.255.255.254范围内有效单播IPv4地址。如果用地址前缀表示方式,则为10.0.0.0/8。在这样-一个地址空间中有24个主机ID位,相当于最多可以有24 (16777216) 个IP地址(包括了网络地址和广播地址),满足了几乎所有大型规模局域网对IP地址的需求。
(2).172.1 6.0.0/12. (172.1 6.0.0,255.240.0.0) 范围: 172.16.0.0~172.31.255.255 (可划分16个网络,每个网络65536个主机)
在B类地址中,局域网内部节点可以使用:172.16.0.1-172.31.255.254范围内的有效IPv4.单播地址。如果用地址前缀表示方式,则为172.16.0.0/12。针对具体的网络,仍是B类网络中所限制的16位主机ID个数,相当于最多可有216 (65536)个IP地址(包括了网络地址和广播地址),满足了几乎所有中等规模局域网对IP地址的需求。
(3).192.168.0.0/16 (192.168.0.0, 255.255.0.0) 范围:192.168.0.0~192.168.255.255 (256个网络,每个网络65536个主机)
C类IP地址中第二字节不是168的可以接入互联网。 网络号是192.168.0.0的IP地址不能介入互联网(因为它是私网IP)。 只能将其互联网通信量请求发送到一个有效公用地址的应用层网关(例如一个代理服务器),或者通过一个网络地址转换:(NAT)设备将此专用地址转换成一个有效的公网IPv4地址再与互联网连接。
- 0.0.0.0:
严格说来,0.0.0.0 不是-一个真正意义. 上的HP地址,因为我们在介绍IPv4地址的分类时就说到,第一个8位组的值不能为0。但在实际的设备配置和网络中确实又要用到这样一个IPv4地址。其实它不是特指某个IPv4地址,在不同的情形中使用它有不同的含义。如我们在配置默认路由时就使用了0.0.0.0 这个IPv4地址,它是代表所有不清楚路由的目的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定路由表项指明如何到达这些主机或网络。在网络配置中,0.0.0.0又代表整个网络,即网络中的所有主机。
3.回送地址/环回地址 127.0.0.1: 安装一个网络软件后可以用此地址测试软件是否可以访问或配置网络设备等
我们在配置网络设备或者进行系统主机测试时,经常用到127.0.0.1这个地址。它不能分配给主机用,但它却可以用来进行各种地址管理操作,如Ping操作。,其实这个地址有个专门的名称,即环回地址:( Loopback Address),是主机IP堆栈内部的IPv4地址,主要用于网络软件测试以及本地机进程间通信,在IP网络中用来测试主机TCP/IP协议是否工作正常。无论什么程序,二旦使用回环地址发送数据,协议软件立即返回,不进行任何网络传输,所以执行Ping操作也只在本机上进行环路测试,用来检测网卡是否工作正常(主要受操作系统中通信协议和驱动程序安装是否正确影响)。
4.169开头的IPv4地址
在操作系统中,如果你采用的是自动IP地址分配方式,但本地网络中又没有部署用于自动IP地址分配的DHCP服务器,则这些系统
主机就会自动获得一个以169开头的IP地址。这就是所谓的自动专用IP地址,其地址范围.包括二个B类地址段一一169.254.0.0/16,子网掩码为255.255.0.0。
总结: