|
|
| 第1行: |
第1行: |
| 无类别域间路由
| | Media[[Wiki]](最初名为 Phase II)是一款基于 [[PHP]] 与 [[MySQL]] 的自由开源 Wiki [[软件]],由德国生物化学家兼[[计算机]]程序员 Magnus Manske 最初开发,后由[[维基]]媒体基金会持续维护与支持。该软件于 2002 年 1 月 25 日起作为[[维基百科]]的系统软件投入使用,逐步发展为维基媒体基金会旗下所有 Wiki 项目的核心平台,并被[[全球]]数万个网站广泛采用,用于构建百科全书、知识库、在线文档及协作式内容管理系统<ref name=":0">[https://diff.wikimedia.org/2016/01/18/fifteen-years-wikipedia-magnus-manske/ Fifteen years ago, Wikipedia was a very different place - Wikimedia Foundation]</ref><ref name=":1">[https://market.cloud.tencent.com/products/24520 维基百科软件 MediaWiki - 腾讯云市场]</ref>。 |
| | {| class="infobox" style="border:1px solid #ccc; background:#f8f9fa; width:24em; float:right; margin:0 0 1em 1em; border-spacing:5px;" |
| | ! colspan="2" style="text-align:center;" |'''MediaWiki''' |
| | |- |
| | |中文名 |
| | |'''MediaWiki''' |
| | |- |
| | |外文名 |
| | |'''MediaWiki''' |
| | |- |
| | |原作者 |
| | |'''Magnus Manske''' |
| | |- |
| | |开发组织 |
| | |'''维基媒体基金会''' |
| | |- |
| | |初始版本 |
| | |'''2002 年 1 月 25 日''' |
| | |- |
| | |[[编程]]语言 |
| | |'''PHP''' |
| | |- |
| | |[[数据]]库 |
| | |'''MySQL / [[MariaDB]]''' |
| | |- |
| | |[[操作系统]] |
| | |'''[[跨平台]]''' |
| | |- |
| | |软件类型 |
| | |'''Wiki 软件''' |
| | |- |
| | |许可协议 |
| | |'''[[GNU]] 通用公共许可证''' |
| | |- |
| | |官方网站 |
| | |'''[https://www.mediawiki.org mediawiki.org]''' |
| | |} |
|
| |
|
| {{Infobox
| | == 历史 == |
| | 标题 = 无类别域间路由
| |
| | 内容 =
| |
| {{!}}-
| |
| ! 中文名
| |
| {{!}} 无类别域间路由
| |
| {{!}}-
| |
| ! 英文名
| |
| {{!}} Classless Inter-Domain Routing
| |
| {{!}}-
| |
| ! 简称
| |
| {{!}} CIDR
| |
| {{!}}-
| |
| ! 提出时间
| |
| {{!}} 1993年
| |
| {{!}}-
| |
| ! 标准化机构
| |
| {{!}} IETF
| |
| {{!}}-
| |
| ! 核心标准
| |
| {{!}} RFC 1517、RFC 1518、RFC 1519、RFC 4632
| |
| {{!}}-
| |
| ! 核心技术
| |
| {{!}} 可变长子网掩码(VLSM)、路由聚合
| |
| {{!}}-
| |
| ! 主要功能
| |
| {{!}} 提升IPv4地址空间利用效率、抑制全球路由表快速增长
| |
| }}
| |
|
| |
|
| '''无类别域间路由(Classless Inter-Domain Routing,CIDR)''' 是IETF于1993年提出的一项IPv4地址分配与路由优化技术方案,其设计目的在于提升IPv4地址空间的利用效率,并抑制因分类网络体系导致的全局路由表快速增长<ref name="RFC1519">[https://www.rfc-editor.org/rfc/rfc1519.html Fuller, V., Li, T., Yu, J., Varadhan, K., "Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy", RFC 1519, September 1993.]</ref><ref name="KPCIDR">[https://www.kepuchina.cn/article/articleinfo?ar_id=367636 无类别域间路由,科普中国,2021.]</ref>。CIDR通过可变长子网掩码实现任意长度的网络前缀分配,使IP地址的划分不再受限于A、B、C类的固定掩码体系<ref name="KPCIDR" />,并可基于网络前缀对连续的地址块进行路由聚合以减少路由器需维护的路由条目数量<ref name="Supernet">[https://baike.c114.com.cn/view.php?id=14098 超网,通信百科.]</ref>。该技术是现代互联网路由体系的基础性技术之一,IPv6协议也延续并采纳了CIDR的地址表示和管理机制。
| | === 起源与早期发展 === |
| | 2001 年,维基百科最初采用 UseModWiki 程序搭建,但随着条目数量与访问量的快速增长,原有软件在扩展性与功能上逐渐无法满足需求。德国科隆大学生物学学生 Magnus Manske 为此编写了替代方案,命名为 Phase II。该版本于 2002 年 1 月 25 日正式上线运行,维基百科联合创始人 Jimmy Wales 称其为“新软件时代的黎明”。Phase II 首次引入了名字空间(Namespace)、监视列表(Watchlist)、[[用户]]贡献列表等创新机制,奠定了现代 Wiki 协作编辑的基础<<ref name=":0" />。 |
|
| |
|
| == 历史背景 == | | === 维基媒体基金会时期 === |
| | 2003 年 6 月 20 日,维基媒体基金会(Wikimedia Foundation)正式成立,负责统筹维基百科及其姊妹项目的运营与软件开发,MediaWiki 自此成为基金会技术栈的核心组成部分<<ref name=":2">[https://baike.baidu.com/item/%E7%BB%B4%E5%9F%BA%E5%AA%92%E4%BD%93/0 维基媒体基金会 - 百度百科]</ref>。2005 年 8 月 2 日,MediaWiki 官方网站([[mediawiki]].org)正式启用,标志着该软件从维基百科的专属系统向独立开源项目的转型<<ref name=":2" />。此后,MediaWiki 历经多次重大版本迭代,持续优化性能与扩展能力,以支撑维基百科等全球性站点的海量数据与高并发访问。 |
|
| |
|
| 在CIDR被提出之前,IPv4地址采用分类网络体系。IPv4地址的32位按8位一组划分为四个字节,其中网络前缀的长度固定为8位(A类)、16位(B类)或24位(C类),分别对应约1677万、6.5万和256个主机地址容量。至20世纪90年代初,分类网络的局限性日益凸显:A类和B类网络对于绝大多数组织而言地址容量过大,大量地址被分配后闲置而无法回收;C类网络虽然容量较小(仅254个可用主机地址),但其地址块数量庞大,且在地域分布上高度分散,难以进行有效的路由聚合。这一双重困境导致两方面问题:一是IPv4地址空间面临快速耗尽的危机,二是互联网核心路由器的路由表条目呈爆炸式增长,对路由设备的处理能力和网络可扩展性构成严重威胁<ref name="RFC1519" />。
| | == 技术架构 == |
|
| |
|
| 分类网络中的B类地址数量有限,仅有16384个。随着接入互联网的组织数量持续增长,B类地址消耗速度远超预期。为应对上述问题,IETF在1993年9月发布了一系列标准文档,正式引入CIDR。其中RFC 1517阐述了CIDR的适用性声明,RFC 1518提出了基于CIDR的IP地址分配架构,RFC 1519详细规定了地址分配与聚合策略的具体实施方案<ref name="RFC1519" /><ref name="RFC1517">[https://www.rfc-editor.org/rfc/rfc1517.html Internet Engineering Steering Group, Hinden, R., "Applicability Statement for the Implementation of Classless Inter-Domain Routing (CIDR)", RFC 1517, September 1993.]</ref><ref name="RFC1518">[https://www.rfc-editor.org/rfc/rfc1518.html Rekhter, Y., Li, T., "An Architecture for IP Address Allocation with CIDR", RFC 1518, September 1993.]</ref>。2006年,RFC 4632替代并更新了RFC 1519,在对CIDR概念进行进一步澄清的基础上,总结了该技术实际部署十余年的实践经验<ref name="RFC4632">[https://www.rfc-editor.org/rfc/rfc4632.html Fuller, V., Li, T., "Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan", RFC 4632, BCP 122, August 2006.]</ref><ref name="RFC4632Info">[https://www.rfc-editor.org/info/rfc4632 Information on RFC 4632, RFC Editor.]</ref>。
| | === 系统架构 === |
| | MediaWiki 采用典型的 [[Web]] 应用程序[[架构]],以 Apache 或 [[Nginx]] 作为 Web [[服务器]],通过 PHP 解释器处理动态请求,并以 MySQL 或 MariaDB 作为后端[[数据库]][[存储]]页面内容与元数据。系统核心模块包括 Wiki [[文本]]解析器(Wiki Text Parser)与数据库访问层(Database Access Layer):前者负责将维基标记语言转换为 HTML 页面,后者负责完成内容的增删改查操作。整体架构分为表示层、服务层与数据层,支持缓存、数据同步及消息队列等高级服务<ref name=":3">[https://wenku.baidu.com/view/25a66cab88d63186bceb19e8b8f67c1cfad6ee80.html Mediawiki 软件架构设计与优化 - 百度文库]</ref><ref name=":4">[https://my.oschina.net/emacs_8926302/blog/17599669 维基百科背后的技术:MediaWiki框架揭秘 - OSCHINA]</ref>。 |
|
| |
|
| == 核心技术 == | | === 核心功能 === |
| | MediaWiki 内置了完善的 Wiki 协作功能,包括版本控制、用户权限管理、模板复用、开放分类及多语言界面切换。其标记语言支持自动生成内部链接、嵌入多媒体、书写数学公式(TeX)以及调用 [[HTML]] 代码。软件通过名字空间区分不同类型的页面(如条目页、讨论页、用户页、模板页等),并提供特殊页面(Special Pages)用于统计、搜索、待撰条目提示等辅助管理<ref name=":5">[https://www.cnblogs.com/superhin/p/16365088.html 基于MediaWiki教育技术专业维基站的设计与实现]</ref>。 |
|
| |
|
| === 可变长子网掩码 ===
| | == 应用与部署 == |
|
| |
|
| CIDR的基础是可变长子网掩码技术。VLSM允许网络工程师根据子网的实际主机数量需求,灵活设定子网掩码的长度,而非被固定为A、B、C类掩码中的三者之一<ref name="VLSMvsCIDR">[https://net.zhiding.cn/network_security_zone/2008/0514/747195.shtml 思科学习总结:认识VLSM与CIDR,至顶网,2008.]</ref>。VLSM的概念早在1985年的RFC 950中即已出现,而CIDR则将其推广至整个地址空间,彻底消除了分类网络的边界<ref name="KPCIDR" />。
| | === 维基媒体项目 === |
| | MediaWiki 是维基媒体基金会全部公共项目的底层系统,涵盖维基百科([[Wikipedia]])、维基词典(Wiktionary)、维基语录(Wikiquote)、维基文库(Wikisource)、维基共享资源(Wikimedia Commons)、维基数据(Wikidata)等十余个多语言协作项目<ref name=":2" />。 |
|
| |
|
| 在CIDR框架中,IP地址被划分为网络前缀和主机号两部分,网络前缀的长度用“/”后跟0至32之间的整数表示。例如,192.168.1.0/24表示前24位为网络前缀,后8位为主机号,该地址块包含256个IP地址。前缀长度越短,地址块包含的IP地址数量越多;前缀长度越长,地址块划分越精细,地址利用率越高。CIDR不再使用“子网”的概念而使用网络前缀来表示网络标识<ref name="SupernetBaike">[https://baike.baidu.com/item/%E8%B6%85%E7%BD%91 超网,百度百科.]</ref>。
| | === 第三方应用 === |
| | | 除维基媒体生态外,MediaWiki 被全球数万个独立站点采用,广泛应用于企业知识库、学术文档库、社区百科全书、个人笔记系统及在线手册等场景。其开源特性、低环境要求与丰富的扩展生态,使其成为大型协作型内容管理系统的首选方案之一<ref name=":1" />。 |
| === 路由聚合 === | |
| | |
| 路由聚合是CIDR的另一项核心技术,亦称为构成超网或路由汇总<ref name="SupernetIT">[https://net.it168.com/info/2022-11-17/2022111711115724.shtml IPv4:超网,你是我的“神”!,IT168,2022.]</ref>。其基本原理是:如果多个较小的地址块在二进制表示下前缀相同,则可以将它们合并为一个较大的CIDR地址块,并在路由表中以一条聚合条目代表原来分散的多条路由记录<ref name="Supernet" />。这一操作被称为路由聚合,聚合后的地址块在网络中对外通告时被视为一个整体,可使路由表中的一条记录代表原来传统分类地址的多条路由记录,从而显著减少路由表中的路由记录数量<ref name="Supernet" />。
| |
| | |
| 路由聚合的有效性依赖于合理的地址分配规划。当同一机构或同一地理区域的地址块在地址空间上连续时,聚合效果最佳;当地址分配策略缺乏层次性时,聚合的效率则会大打折扣。CIDR支持的路由聚合能够将路由表中的许多路由条目合并为成更少的数目,从而限制路由器中路由表的增大,减少路由通告,提高网络可扩展性<ref name="CIDRAggr">[https://net.zhiding.cn/network_security_zone/2010/0202/1687640.shtml 无类域间路由CIDR,至顶网,2010.]</ref>。
| |
| | |
| == CIDR表示法 ==
| |
| | |
| CIDR表示法也称斜线记法,其标准格式为“IPv4地址/前缀长度”。其中,IPv4地址部分可以是该地址块内的任一合法IP地址;前缀长度是从0到32之间的十进制整数,表示网络前缀所占的二进制位数<ref name="SlashNotation">[https://internet.hactcm.edu.cn/network/lesson/cidr/cidr_notation.html CIDR斜线记法.]</ref>。前缀长度决定子网掩码:将前N位置1、后32-N位置0即得到对应的子网掩码。
| |
| | |
| 以下为CIDR表示法示例:
| |
| | |
| * 192.168.0.0/16:前16位为网络前缀,对应子网掩码255.255.0.0,包含65536个IPv4地址。
| |
| * 10.0.0.0/8:前8位为网络前缀,对应子网掩码255.0.0.0,包含16777216个IPv4地址。
| |
| * 203.0.113.0/27:前27位为网络前缀,对应子网掩码255.255.255.224,包含32个IPv4地址,其中30个可用主机地址。
| |
| * 0.0.0.0/0:前缀长度为0,匹配所有IPv4地址,通常作为默认路由使用。
| |
| | |
| == 地址分配与管理 ==
| |
| | |
| CIDR将IPv4地址分配从以网络类别为依据的模式转变为以实际需求为依据的模式。在CIDR框架下,IANA将大块的CIDR地址块分配给各区域互联网注册管理机构(RIRs),RIRs再根据下级机构(如国家级注册机构和ISP)的实际需求,将地址块切分为更小的CIDR块进行逐级分配<ref name="RFC4632" />。
| |
| | |
| 这一层级化分配体系与路由聚合的要求相呼应:ISP从RIR获得一个较大的CIDR地址块后,可将其子块分配给下属客户。所有客户的路由信息在ISP边界进行聚合,以单一聚合路由对外通告,从而使上游路由器无需维护大量细粒度路由条目。由于一个CIDR地址块中含有很多地址,在路由表中可利用CIDR地址块来查找目标网络,这种地址的聚合常称为路由聚合或构成超网<ref name="SupernetKoolearn">[https://m.koolearn.com/shiti/tiku-20585974.html 构造超网,新东方在线,2024.]</ref>。
| |
| | |
| == 协议支持 ==
| |
| | |
| CIDR需要在路由协议层面获得相应支持才能正常工作。支持CIDR的路由协议被称为无类路由协议,它们在路由更新中携带子网掩码信息,从而具备识别任意长度网络前缀的能力<ref name="CIDRandClassful">[https://datatracker.ietf.org/doc/rfc1817/ Rekhter, Y., "CIDR and Classful Routing", RFC 1817, August 1995.]</ref>。常见的无类路由协议包括:
| |
| | |
| * 内部网关协议:RIPv2、OSPF、IS-IS(集成版本)、EIGRP
| |
| * 外部网关协议:BGP-4
| |
| | |
| 不支持CIDR的路由协议包括RIPv1、BGP-3、EGP以及Cisco专有的IGRP等早期协议<ref name="RFC1817" />。BGP-4支持CIDR,在路由更新时只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息<ref name="H3CBGP">[https://www.h3c.com/cn/Products_Technology/Technology/BGP/ BGP技术介绍,H3C.]</ref>。
| |
| | |
| == 与VLSM的关系 ==
| |
| | |
| CIDR与VLSM是两项相互关联的技术,但它们的应用方向相反:VLSM将一个标准的网络划分成几个小型网络(子网),以提高IP地址的利用率;CIDR则将几个小型的网络合成一个大的网络(超网),以减少路由表中的条目数量<ref name="CIDRvsVLSM">[https://developer.baidu.com/article/details/2589224 CIDR与VLSM:网络地址规划的双重策略,百度开发者中心,2024.]</ref>。从历史发展来看,RFC 950(1985)中定义的可变长子网掩码概念早于CIDR<ref name="KPCIDR" />,但两者在本质上共享相同的基础——即根据实际需求使用灵活长度的网络前缀,而非固定长度的网络号。
| |
| | |
| == 局限性与后续发展 ==
| |
| | |
| CIDR虽然有效缓解了IPv4地址消耗速度并抑制了路由表的增长,但其设计的根本前提仍然是32位IPv4地址空间的有限性。地址空间的总量并未因CIDR的引入而增加,CIDR并不能从根本上阻止IPv4地址的最终耗尽。为应对CIDR无法解决的地址短缺问题,网络地址转换技术在后续几年中被广泛部署,作为另一项延长IPv4存续期的过渡方案。从长期来看,从IPv4向IPv6的彻底迁移才是解决地址匮乏问题的最终手段。IPv6协议在设计上全面采纳了CIDR的地址表示与路由聚合机制,IPv6地址的书写标准格式即为“IPv6地址/前缀长度”的CIDR记法<ref name="CIDRAggr" />。
| |
|
| |
|
| == 参考文献 == | | == 参考文献 == |
|
| |
| <references /> | | <references /> |