论文阅读报告三
1.论文题目
The Design Philosophy of the DARPA Internet Protocols
作者:David D. Clark.
发布:Proceeding of SIGCOMM ‘88
2.文章概述
这篇文章来自David D. Clark。David D. Clark是是美国计算机科学家和互联网先驱,自20世纪70年代中期以来一直参与互联网发展。他目前在麻省理工学院的计算机科学和人工智能实验室(CSAIL)担任高级研究科学家。而作为互联网奠基人之一的David在1988年的SIGCOMM Proceeding上发表了这篇文章,介绍了互联网发展之初的设计原则。虽然时隔近30年,互联网的协议中发生了很多变化,但是自互联网设计之初的设计原则和设计理念一直被继续发扬;基于TCP/IP的概念一直作为互联网的基础,在今天网络传输的每一个字节中,发挥着自己的作用。
3.文章细节
尽管互联网协议的具体规格已完全公开,但想要确定如此构思与设计的动机及权衡过程是一个非常有意义的过程。事实上,从最初的协议被提出,到当时1988年作者写作时的协议标准,它的设计想法已经有了非常大的变化,例如数据报和无连接服务,他们在当时已经成为互联网架构的基础。为了更好的进行互联网面向未来的设计,了解已有的设计原则和来龙去脉是非常有意义的。
文中首先分析了互联网架构设计的核心目标。互联网的核心目标是开发一种能够将现存不同类型的网络互连起来充分利用(复用)的有效技术。那么为了实现网络互联的目的,一种可选的方法是设计一个统一的系统把现存的网络连接起来,而系统可以使用多种不同的传输介质。复用技术的选择就是分组交换,而网
络互连的具体技术选择了存储转发,因为存储转发(store and forward)分组交换技术在APRANET 网络中被充分研究并获得了成功,这也就是网关(Gateway)的核心功能。
互联网架构设计的具体目标一共有7条,其中前3条是比较重要的,在文中重点介绍了,列举如下。
1.面临故障时的通信生存能力;
2.支持多种类型的通信服务;
3.支持不同类型网络的接入;
4.支持资源的分布式管理;
5.要考虑成本效益因素;
6.主机接入互联网的代价要低;
7.支持网络资源的计费统计。
首先,DARPA设计互联网的初衷是为军事服务,所以面临故障时的通信生存能力被放在了优先级的首位,鲁棒性最重要。这也就意味着,通信会话的状态必须被保存,如数据包大小,数量以及控制信息等。互联网架构选择的方案是把状态信息收集起来保存在网络通信的两端,也就是“fate-sharing”,即通信的一端消失了,那么另一端也同时将自己保存的状态信息丢掉。这种被称为数据报网络。
互联网架构的第二个具体目标是可以支持多种类型的通信服务。不同类型的通信服务在传输速度、延迟、可靠性等方面差别很大,为了把他们兼容起来,最初TCP的设计目标是使其足够通用,但是研究发现TCP不可能同时支持这些功能。为了实现这个目标,设计者们将TCP和IP从原来架构中的单个协议扩展成现在的两层,也就是传输层和网络层。传输层的TCP提供一类特殊的服务:支持可靠有序的数据流传输,而网络层的IP则试图提供一个基础,与多种类型的服务相隔离。而这个基础就是IP数据报。
第三点是网络的多样性,网络架构通过对网络提供的功能做出最低限度的假设来达到这样的适应性。
最后,作者对于优先级比较低的目标进行了简单的介绍。作者同时讨论了架构和实现方面的问题:架构与性能之间的关系是一个很有挑战性的问题。互联网架构的设计者强烈地认识到仅仅重视逻辑正确性而忽视性能是一个重大错误,然而但互联网架构限制了性能,架构上的变化对性能产生的影响仍然是一个很有挑战性的问题。
4.心得体会
TCP/IP 互联网协议簇于1973年被首次提出,由DARPA开发,直到今天我们的互联网仍然基于TCP/IP。这篇文章讲述了互联网为什么一步一步变成今天这个样子,让人们理解其中的设计动机。只有理解历史才能预测未来的发展趋势,这篇论文就是试图找出互联网协议演化至今的背后逻辑。
作者认为,从互联网架构设计目标的优先顺序来看,互联网架构是成功的。而且TCP/IP 协议已经在各个领域广泛应用并且衍生出了很多相似的架构。同时它的成功是基于特定优先次序的设计目标来认定的,而且设计者优先考虑的并不是满足实际用户的需要,比如计费统计管理以及分布式运维管理等问题需要设计者更多的关注。
30年后的今天来读这篇文章,从互联网的设计目标来看很多问题,比如TCP 为什么是按照字节而不是按照数据包来设计,会给我们新的理解。然而互联网在设计之初的考虑因素仍然有很多不全面的问题,如协议的安全性,导致30年后的今天,我们可以通过TCP的机制实现对TCP连接的远程中间人攻击。我们不可能再重新设计一遍互联网,所以只能理解设计者的思维,并通过我们的努力去改进它。