机既是客户又同时是服务器。例如主机C请求D的服务时,C是客户,D是服务器。但 如果C又同时向F提供服务,那么C又同时起着服务器的作用。 ②互联网核心部分 网络核心部分是互联网最复杂的部分。因为网络中的核心部分要向网络边缘中的大 量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接 收各种形式的数据) 在网络核心部分起特殊作用的是路由器( router)。路由器是一种专用计算机。如果 没有路由器,再多的冈络也无法构建成互联网。路由器是实现分组交换( packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。 3.2互联网体系结构及设计 3.21计算机网络体系结构的定义 计算机网络的体系结构( architecture)是计算机网络的各层及其协议的集合。换 而言之,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定 义。 需要强调的是:这些功能究竞是用何种硬件或软件完成的,则是一个遵循这种体系 结构的实现问题。体系结构的英文名词 architecture的原意是建筑学或建筑的设计和风 格。它和一个具体的建筑物的概念很不相同。例如,我们可以走进一个明代的建筑物中, 但却不能走进一个明代的建筑风格之中。同理,我们也不能把一个具体的计算机网络说 成是一个抽象的网络体系结构。总之,体系结构是抽象的,而实现则是具体的,是真正 在运行的计算机硬件和软件。 3.22协议分层 互联网的体系结构可以看成是互联网的模块化设计,也可以称为顶层设计,是互联 网(从物理连接到应用)的总体结构,包括描述协议和通信机制的设计原则。一般认为 互联网体系结构主要解决两个重要的问题,一是如何进行分层设计,即如何将互联网的 功能分成不同的层次进行实现;二是边缘论(End-to- End Argument),即在哪里(网络 终端)实现这些功能。 构成互联网的底层网络是异构的,存在着多种通信物理介质,如同轴电缆、光纤、 无线和以太网等,而在传输方式上有分组交换、电路交换等;另一方面,最上层的应用 却纷繁复杂,有HTIP、FTP、 Telnet和P2P等。因此,对于不同的传输介质,是否要 114
114 机既是客户又同时是服务器。例如主机 C 请求 D 的服务时,C 是客户,D 是服务器。但 如果 C 又同时向 F 提供服务,那么 C 又同时起着服务器的作用。 ② 互联网核心部分 网络核心部分是互联网最复杂的部分。因为网络中的核心部分要向网络边缘中的大 量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接 收各种形式的数据)。 在网络核心部分起特殊作用的是路由器(router)。路由器是一种专用计算机。如果 没有路由器,再多的网络也无法构建成互联网。路由器是实现分组交换(packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。 3.2 互联网体系结构及设计 3.2.1 计算机网络体系结构的定义 计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。换 而言之,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定 义。 需要强调的是:这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系 结构的实现问题。体系结构的英文名词 architecture 的原意是建筑学或建筑的设计和风 格。它和一个具体的建筑物的概念很不相同。例如,我们可以走进一个明代的建筑物中, 但却不能走进一个明代的建筑风格之中。同理,我们也不能把一个具体的计算机网络说 成是一个抽象的网络体系结构。总之,体系结构是抽象的,而实现则是具体的,是真正 在运行的计算机硬件和软件。 3.2.2 协议分层 互联网的体系结构可以看成是互联网的模块化设计,也可以称为顶层设计,是互联 网(从物理连接到应用)的总体结构,包括描述协议和通信机制的设计原则。一般认为: 互联网体系结构主要解决两个重要的问题,一是如何进行分层设计,即如何将互联网的 功能分成不同的层次进行实现;二是边缘论(End-to-End Argument),即在哪里(网络、 终端)实现这些功能。 构成互联网的底层网络是异构的,存在着多种通信物理介质,如同轴电缆、光纤、 无线和以太网等,而在传输方式上有分组交换、电路交换等;另一方面,最上层的应用 却纷繁复杂,有 HTTP、FTP、Telnet 和 P2P 等。因此,对于不同的传输介质,是否要
为每一种应用实现不同的版本?答案是否定的,没有必要针对每种底层技术把每个应用 都重新实现一遍。解决的办法就是在二者之间引入一个中间层,从而针对不同的网络技 术提供一种唯一的、抽象的功能接口。在实际的网络体系结构的分层设计中,有 OSI(open system interconnection)参考模型和TCPP两种分层模型。 3.2.3边缘论 网络上层应用关注自身携带的数据和所需服务的数据语义(只在每数据单元的端点 检查),下层注重在数据传输过程中所需要的更多信息(如分组大小、错误率等),这对 整个应用效果而言会更好,这就是分层的必然结果。 互联网创始人之一 David Clark在20世纪80年代初发表了一篇重新思考总结互联 网设计原则的重要论文,提出了互联网边缘论(End- to-End Argument),可以表述为: 种功能如果需要应用知识或者帮助才能完整和正确地实现,该功能就应该位于网络 的端点”。这也就是我们常说的“核心简单,边缘复杂”。提出该设计原则的依据是网 络不可靠,最终检查传输是否正确只能由处于传输端点的应用层来完成。 让网络核心只实现最通用的数据传输而不实现特殊功能有很多优点:可以降低核心 网络复杂性,便于升级;提高网络通用性和灵活性,增加新应用不必改变核心网络;提 高网络整体的可靠性等。 边缘论还有两种解释:一个系统(或子系统)仅应考虑能在其内部完全且正确实现 的功能。另一种解释是,在底层实现一个你认为对应用有帮助的功能时必须三思,如果 应用本身能完成此功能,那么在底层实现的唯一理由就是能够增强性能。边缘论强调三 点,一是功能的放置位置,二是正确性和完整性,最后是整体系统的代价。 Cerf和Kahn提出的网络互连原则确定了的互联网体系结构。 ①最小自治:不因为网络互连而改变网络的内部结构。 尽力而为的服务模式:网络只实现最筒单的功能,这就是最大努力地转发分组, 但是不保证分组一定被送达 ③无状态的路由器:路由器不保存端系统间的连接状态,只保存路由表用于分组 转发 ④分散控制:没有集中的网络管理与控制。 边缘论和上述设计原则是互联网取得成功的最关键因素,但是当我们重新设计和规 划新一代互联网时,这些原则是否仍需要坚持值得商榷。 115
115 为每一种应用实现不同的版本?答案是否定的,没有必要针对每种底层技术把每个应用 都重新实现一遍。解决的办法就是在二者之间引入一个中间层,从而针对不同的网络技 术提供一种唯一的、抽象的功能接口。在实际的网络体系结构的分层设计中,有 OSI(open system interconnection)参考模型和 TCP/IP 两种分层模型。 3.2.3 边缘论 网络上层应用关注自身携带的数据和所需服务的数据语义(只在每数据单元的端点 检查),下层注重在数据传输过程中所需要的更多信息(如分组大小、错误率等),这对 整个应用效果而言会更好,这就是分层的必然结果。 互联网创始人之一 David Clark 在 20 世纪 80 年代初发表了一篇重新思考总结互联 网设计原则的重要论文,提出了互联网边缘论(End-to-End Argument),可以表述为: “一种功能如果需要应用知识或者帮助才能完整和正确地实现,该功能就应该位于网络 的端点”。这也就是我们常说的“核心简单,边缘复杂”。提出该设计原则的依据是网 络不可靠,最终检查传输是否正确只能由处于传输端点的应用层来完成。 让网络核心只实现最通用的数据传输而不实现特殊功能有很多优点:可以降低核心 网络复杂性,便于升级;提高网络通用性和灵活性,增加新应用不必改变核心网络;提 高网络整体的可靠性等。 边缘论还有两种解释:一个系统(或子系统)仅应考虑能在其内部完全且正确实现 的功能。另一种解释是,在底层实现一个你认为对应用有帮助的功能时必须三思,如果 应用本身能完成此功能,那么在底层实现的唯一理由就是能够增强性能。边缘论强调三 点,一是功能的放置位置,二是正确性和完整性,最后是整体系统的代价。 Cerf 和 Kahn 提出的网络互连原则确定了的互联网体系结构。 ① 最小自治:不因为网络互连而改变网络的内部结构。 ② 尽力而为的服务模式:网络只实现最简单的功能,这就是最大努力地转发分组, 但是不保证分组一定被送达。 ③ 无状态的路由器:路由器不保存端系统间的连接状态,只保存路由表用于分组 转发。 ④ 分散控制:没有集中的网络管理与控制。 边缘论和上述设计原则是互联网取得成功的最关键因素,但是当我们重新设计和规 划新一代互联网时,这些原则是否仍需要坚持值得商榷