zoukankan      html  css  js  c++  java
  • DARPA互联网协议的设计(四)

    <接上文>

    前面三篇文章讲述了互联网设计之初需要满足的需求。当我们再次看一遍之后,发现他们只是提供了一些原则性的东西,距离可以运行的设备和软件还很远。

    就像产品开发一样,上面的原则是输入的模糊需求。我们收到了需求之后就应该是概要设计,即使用什么协议模型才能达到这些需求。从开始到现在,我们还没有触碰到协议的技术层面,因为从架构到实现,还需要很多的事情要做。另外一点是,实现有两个方面,一个是能够正确的实现协议,另一个是满足需要的性能。

    从网络整体结构来看,它包括两个部分,一部分可以被称作主机(现在可以包括电脑,手机,各种用户终端设备),一部分可以被称之为网关(现在直连用户的为网关,中间IP转发设备被称为路由器)。由于网络设计的原则是将复杂的协议处理放在主机部分,因此主机部分的实现就是一个重要方面。虽然主机的硬件种类多种多样,但是他们运行的操作系统却只有那么几个,到目前依然还在使用的有UNIX, Linux, Windows, Mac/iOS这几种。因此在这些操作系统上实现网络协议栈即是一个主要方面。

    当然,我们是从现在的角度来看问题,难免有幸存者偏差倾向。但是我们可以通过分析这些操作系统网络协议栈的共性,来探讨网络本身的发展。主机网络协议的核心是对于用户的接口,现在看来是BSD socket统治了世界。即使是Linux这种处处皆文件的设计哲学,在网络部分也还是使用了BSD socket的接口。Mac/iOS的网络协议来自BSD类协议栈,Windows的网络协议栈因为是闭源的,目前还不清楚,但是WinSock的接口和BSD socket接口也是有一定类似之处的。

    这篇论文还提到网络编址为了提升效率,最开始使用了变长地址的方式。但是由于这种设计会导致中间网络的实现复杂,最终被放弃了。这也间接说明网络最初的设计重点不在于中间设备,而是终端设备。但是随着互联网的发展,网络规模成指数级增长,中间网络设备的发展也变成了另一个重点议题了。此处还提到了TTL字段对于路由功能的考虑,因为路由协议没有如何终止的标志,所以TTL作为一种终止方法被设计出来。但是现在的TTL早已和路由功能的关系不大了。

    其实说了这么多,我们真正的主角,面向连接的可靠传输协议,也就是现在互联网中占统治地位的TCP协议还没有登场。至于它的设计思想,我们还是下篇文章再分析吧。

    <未完待续>

  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/lionelgeng/p/15187158.html
Copyright © 2011-2022 走看看