因特网协议的设计哲学(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. 七个层次的目标

最高目标是有效,但是何为有效?

  1. 容错性,:网关或网络错误,传输继续
  2. 适用性,服务通用性:支持多种通信服务
  3. 网络通用性:适用于不同的网络
  4. 分布式管理:允许分布管理资源
  5. 成本效益
  6. 便捷:主机可以方便互联,联网
  7. 可计量:计量计费

这些按照重要性排列,如果顺序改变了,因特网架构可能就不是现在这个样子了

下面分别是这七个目标和因特网功能的关系


4. 容错性

如果两主机沟通是网络出现了暂时的故障,主机是无感知的

具体实现:传输层的接口上不提供任何网络体系架构的服务,都是对底部无感知的服务层,(传输层的作用:只要物理可达,传输必达)

实现:保护状态信息,已有分组数,能传输分组数,接受分组数等

有些网络使用多个副本来保存状态

命运共享:状态保存在连接口处;即连接的实体丢失了,那么状态也可以丢失,否则不可丢失状态。状态存在主机上,主机掉线了,状态没了也没事。

命运共享比多个副本好在哪里:

  1. 可以防御任何数量的中间故障(大于副本数)
  2. 实现简单

命运共享的两个后果:

  1. 无状态连接
  2. 主机和确保可靠传输的体系结构相比,主机的可信度更高。

不好的:主机很难诊断网络的故障,需要网络级别的设备来诊断。


5. 服务支持通用性

在传输级别支持多种服务,不同的服务有不同的,速度,时延和可靠性的要求

远程登录:低时延,不需要带宽
文件传输:高带宽,不关心时延

TCP 尝试支持两种服务,但是随着服务种类的增多,TCP 有点力不从心

实时会议 TCP 无法支持,失败重传没有意义,已经过了时间了

需要多种传输层协议来对可靠性,时延和带宽的不同需求进行满足

TCP和IP就这样分成了两个协议,TCP提供可靠性,IP提供基础服务,而数据包和UDP也出现了

网络底层架构只提供基础服务,不对上层服务的需求进行特化,而将多种服务的支持放到主机和网关(数据包交换器)的互联中来实现


6. 网络互联通用性

尽量简单,避免服务特化

注入,可靠性转播,有序转播,网络广播或多播,传播的优先级排序,内部故障,速度,时延的识别


7. 其他目标

分布式管理

不同代理商管理一个网关的子集,

还有一种两层的路由算法,允许不同管理部门的网关交换路由表,交换机就产生了

分布式路由管理的问题:缺乏工具,还需要手工配置;后来有了OSPF

成本效益

数据包有固定的报头,其数据长度不能过长也不能过小。重传率不能过高。

主机互联

确认和重传需要在主机实现,但是不可能每个主机单独实现,需要一个通用层。传输层就来了

计量计费

仍是问题(1988),现在应该已经解决了


8. 架构和实现

目标:提供广泛,灵活的服务,不同的传输层协议提供不同的服务,不同类型的网络都可以互联

实现:特定的网络,网关和主机

因特网的体系结构设计可以容纳多种网络实现

架构设计并不保证性能

仅关注逻辑正确性而忽略性能,性能约束要在各个区域网的实现中自己负责


9 数据报

基础架构特征:因特网底层通过数据报来传播

为什么数据报这么重要:

  1. 消除了状态
  2. 提供了构建块支持多种服务
  3. 数据报是最低的网络服务假设,允许各种网络合并到网络实现中

错误假设:数据报的动机是对更高级别服务的支持

但是高层服务需要的支持往往都比数据报要复杂,数据报的作用是作为构建块,而不是作为服务本身


10. TCP

TCP 有很多有趣且有争议的设计

窗口管理和端口地址结构,在17,18中

原始ARPANet 对字节和包都提供了流控制,但是TCP只对字节进行流控制(计数),而不关心包的分割信息

字节计数的原因:

  1. 在字节序列中插入控制信息
  2. 允许分隔TCP包为更小的包,现在这一个功能移到了IP层
  3. 重传的时候,可以将多个小包聚集成大包

但是TCP没有在数据包上进行控制,就有可能导致洪水。

另一个设计:EOL,现在已经变成了PSH

PSH:有数据
EOL:只有一个字节数据


11. 结论

在某些情况下,设计师的优先级和实际用户的需求不符

数据报解决前几个目标做的不错,后面就不行了,很难实现资源管理。对于下一代来说,有比数据报更好的构建块,其特征为:

  1. 识别源到目的的一系列数据报,而不假设特定的服务,可以表示为流,网关需要有流的状态
  2. 软状态:与流关联的状态信息可能会在崩溃中丢失,而不会永久破坏所使用的服务功能。它很可能使我们实现生存和灵活性的主要目标,同时在处理资源管理和责任制方面做得更好

12. 历史观点

论文阅读:The Design Philosophy of the DARPA Internet Protocols相关推荐

  1. 论文阅读 Local Differential Privacy-Based Federated Learning for Internet of Things

    标题:Local Differential Privacy-Based Federated Learning for Internet of Things 期刊: IEEE Internet of T ...

  2. 论文阅读--On the Anonymity Guarantees of Anonymous Proof-of-Stake Protocols

    标题:On the Anonymity Guarantees of Anonymous Proof-of-Stake Protocols Markulf Kohlweiss ∗1, Varun Mad ...

  3. [论文阅读] (13)英文论文模型设计(Model Design)如何撰写及精句摘抄——以入侵检测系统(IDS)为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  4. 【论文阅读】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs

    [论文阅读]Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs 1.摘要 2.通过ViTs审视CNN 3. ...

  5. [论文阅读] (18)英文论文Model Design和Overview如何撰写及精句摘抄——以系统AI安全顶会为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  6. [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  7. 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》

    深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...

  8. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》

    深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...

  9. [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

最新文章

  1. iOS开发之 - 好玩的富文本
  2. 张鑫旭:前端专业方向的尽头
  3. android配置文件说明
  4. js日期格式判断(2018/01/30) -方法 小时分秒格式判断((HH:MM)
  5. Juniper Space License Issue on Citrix Xen Environment
  6. iOS之地理位置及定位系统 -- 入门笔记(用Swift)
  7. HTML5 飞鸽传书web service都发布到交互服务器
  8. linux 劫持广告技术,屏蔽运营商广告劫持 - gcudwork的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 【物理应用】基于matlab非序贯蒙特卡洛法评估风电系统【含matlab源码 766期】
  10. 用 Dev-C++ 编写简单的平均数/中位数/众数/方差/一元线性回归方程计算器(附带控制台颜色设置,选择界面)
  11. 卡巴斯基2010激活码
  12. windows10安装双系统后,删除linux,开机进入grub怎么办
  13. toupper在c语言中是什么意思,C语言中toupper 是什么?
  14. Mac软件卸载:安全彻底地卸载Microsoft Outlook
  15. 如何将Jenkins基础环境迁移到Docker?
  16. java把小写变大写_用java实现人民币小写变大写的方法
  17. linux传奇私服文件包,传奇私服服务器端文件结构
  18. 把手机自带计算机软件,如何删除手机自带软件,小编告诉你手机自带软件如何删除...
  19. Glide加载网络图片模糊变形问题解决办法
  20. NCBI BLAST工具本地化

热门文章

  1. 您认为不可能的10个SQL技巧
  2. android文档导航条跳来跳去,莫名其妙的Android导航栏
  3. 疾病预测,机器学习和医疗保健
  4. 基于CNN卷积神经网络的人脸识别
  5. 当心! 二代身份证可能导致身份信息泄露
  6. 用于激光雷达的 APD,SPAD 和 SiPM 分析
  7. html5视频录制,在HTML5视频录制方面,我们为什么选WebRTC而不选Media Recorder API
  8. JAVA毕业设计建筑公司工程信息管理系统计算机源码+lw文档+系统+调试部署+数据库
  9. DWDM(密集波分复用)入门简介
  10. 线性数据与非线性数据的区别