概述
因特网协议的设计哲学(The Design Philosophy of the DARPA Internet Protocols)
引言
尽管有很多文章介绍了因特网协议是如何工作的,但是很难知道因特网协议为什么是这样的。
例如,基于无连接,和数据包模式
因特网的设计动机总是被误解。
这篇文章介绍了因特网设计的一些早期原因。
1. 介绍
在过去的15年间(since 1988),DARPA 开发了适用于分组交换的协议,IP 和 TCP,成为了现在的标准,也影响了很多其他协议的设计
因特网协议的设计一开始并没有数据报和无连接配置,但是现在有了,TCP、Ip 的分层协议,一开始也是没有的,这些变化的产生都是经过很多重复的实验和测试的
因特网结构还会有很多发展,但是了解历史的发展能给我们提供一个很好的上下文
ISO 的无连接配置也已经有点过时了
本文说明了因特网架构的原始模型,和目标与重要特征之间的关系
2. 基础目标
最高目标:对现有互联网络进行有效复用(电话网络),下面对此目标进行详细说明
最初目标:连接 ARPANET 和 ARPA 分组无线网络,当时就假设了可能还会存在其他的网络会连接进来,尽管 ARPANet 失败了,但是设计的时候,接口的兼容性是必须要考虑的
高级研究计划局网络(英语:Advanced Research Projects Agency Network),通称阿帕网(英语:ARPANET)是美国国防高级研究计划局开发的世界上第一个运营的数据包交换网络,是全球互联网的鼻祖。
分组无线网络(Packet Radio Network,PRNET)是第一个自组网试验系统,它由美国国防部DARPA资助,其目的是探讨将分组交换和存储—转发技术应用到无线通信领域以实现计算机的无线移动通信的可行性。
还有一个可选项就是互联不同的传输介质,尽管这很好,但是如果想让因特网实际可用,必须将当时现有的网络体系结构并入其中(纸上的软件架构够很美,实际兼容起来一团糟)
目标:将多个单独管理的实用网络集成到公用事业中
数据交换和电路交换的抉择:数据交换可以支持远程登录等应用,且已有的需要互联的网络中有数据包交换网络
基本目标的最后一个方面的假设,最高层的假设:通过称为网关的因特网数据包交换器进行互联
由以上假设得出了因特网的基本结构:使用称为网关的分组通信处理器,实现了存储转发分组转发。
3. 七个层次的目标
最高目标是有效,但是何为有效?
- 容错性,:网关或网络错误,传输继续
- 适用性,服务通用性:支持多种通信服务
- 网络通用性:适用于不同的网络
- 分布式管理:允许分布管理资源
- 成本效益
- 便捷:主机可以方便互联,联网
- 可计量:计量计费
这些按照重要性排列,如果顺序改变了,因特网架构可能就不是现在这个样子了
下面分别是这七个目标和因特网功能的关系
4. 容错性
如果两主机沟通是网络出现了暂时的故障,主机是无感知的
具体实现:传输层的接口上不提供任何网络体系架构的服务,都是对底部无感知的服务层,(传输层的作用:只要物理可达,传输必达)
实现:保护状态信息,已有分组数,能传输分组数,接受分组数等
有些网络使用多个副本来保存状态
命运共享:状态保存在连接口处;即连接的实体丢失了,那么状态也可以丢失,否则不可丢失状态。状态存在主机上,主机掉线了,状态没了也没事。
命运共享比多个副本好在哪里:
- 可以防御任何数量的中间故障(大于副本数)
- 实现简单
命运共享的两个后果:
- 无状态连接
- 主机和确保可靠传输的体系结构相比,主机的可信度更高。
不好的:主机很难诊断网络的故障,需要网络级别的设备来诊断。
5. 服务支持通用性
在传输级别支持多种服务,不同的服务有不同的,速度,时延和可靠性的要求
远程登录:低时延,不需要带宽
文件传输:高带宽,不关心时延
TCP 尝试支持两种服务,但是随着服务种类的增多,TCP 有点力不从心
实时会议 TCP 无法支持,失败重传没有意义,已经过了时间了
需要多种传输层协议来对可靠性,时延和带宽的不同需求进行满足
TCP和IP就这样分成了两个协议,TCP提供可靠性,IP提供基础服务,而数据包和UDP也出现了
网络底层架构只提供基础服务,不对上层服务的需求进行特化,而将多种服务的支持放到主机和网关(数据包交换器)的互联中来实现
6. 网络互联通用性
尽量简单,避免服务特化
注入,可靠性转播,有序转播,网络广播或多播,传播的优先级排序,内部故障,速度,时延的识别
7. 其他目标
分布式管理
不同代理商管理一个网关的子集,
还有一种两层的路由算法,允许不同管理部门的网关交换路由表,交换机就产生了
分布式路由管理的问题:缺乏工具,还需要手工配置;后来有了OSPF
成本效益
数据包有固定的报头,其数据长度不能过长也不能过小。重传率不能过高。
主机互联
确认和重传需要在主机实现,但是不可能每个主机单独实现,需要一个通用层。传输层就来了
计量计费
仍是问题(1988),现在应该已经解决了
8. 架构和实现
目标:提供广泛,灵活的服务,不同的传输层协议提供不同的服务,不同类型的网络都可以互联
实现:特定的网络,网关和主机
因特网的体系结构设计可以容纳多种网络实现
架构设计并不保证性能
仅关注逻辑正确性而忽略性能,性能约束要在各个区域网的实现中自己负责
9 数据报
基础架构特征:因特网底层通过数据报来传播
为什么数据报这么重要:
- 消除了状态
- 提供了构建块支持多种服务
- 数据报是最低的网络服务假设,允许各种网络合并到网络实现中
错误假设:数据报的动机是对更高级别服务的支持
但是高层服务需要的支持往往都比数据报要复杂,数据报的作用是作为构建块,而不是作为服务本身
10. TCP
TCP 有很多有趣且有争议的设计
窗口管理和端口地址结构,在17,18中
原始ARPANet 对字节和包都提供了流控制,但是TCP只对字节进行流控制(计数),而不关心包的分割信息
字节计数的原因:
- 在字节序列中插入控制信息
- 允许分隔TCP包为更小的包,现在这一个功能移到了IP层
- 重传的时候,可以将多个小包聚集成大包
但是TCP没有在数据包上进行控制,就有可能导致洪水。
另一个设计:EOL,现在已经变成了PSH
PSH:有数据
EOL:只有一个字节数据
11. 结论
在某些情况下,设计师的优先级和实际用户的需求不符
数据报解决前几个目标做的不错,后面就不行了,很难实现资源管理。对于下一代来说,有比数据报更好的构建块,其特征为:
- 识别源到目的的一系列数据报,而不假设特定的服务,可以表示为流,网关需要有流的状态
- 软状态:与流关联的状态信息可能会在崩溃中丢失,而不会永久破坏所使用的服务功能。它很可能使我们实现生存和灵活性的主要目标,同时在处理资源管理和责任制方面做得更好
12. 历史观点
最后
以上就是迷路翅膀为你收集整理的论文阅读:The Design Philosophy of the DARPA Internet Protocols引言1. 介绍2. 基础目标3. 七个层次的目标4. 容错性5. 服务支持通用性6. 网络互联通用性7. 其他目标8. 架构和实现9 数据报10. TCP11. 结论12. 历史观点的全部内容,希望文章能够帮你解决论文阅读:The Design Philosophy of the DARPA Internet Protocols引言1. 介绍2. 基础目标3. 七个层次的目标4. 容错性5. 服务支持通用性6. 网络互联通用性7. 其他目标8. 架构和实现9 数据报10. TCP11. 结论12. 历史观点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复