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

    <接上文>

    第2层目标中的第2个目标是支持不同种类的服务Types of Service
    在现在的语境中,ToS代表Qos中的服务质量,而以当时的语境来看,这里表示网络需要支持不同种类的应用服务。典型的服务有两种,远程登录和文件传输,前者更关注低时延,而后者更关注高带宽,TCP传输层协议设计之初也是为了满足这两种需求。
    在本文中,作者还说明了TCP没有被设计成什么样子,其中举了两个例子。一个是XNET协议,一个是远程会议中的实时语音传输。XNET是跨网络调试工具,可靠传输虽然有用,但是在调试场景不适合,因为调试场景本来就可能不可靠;远程实时语音需要保证实时和可靠,丢包会导致语音中断,但是网络设计者认为这应该是应用层考虑的,或者最坏情况是使用者重复说一遍。在这里,我们看到了网络应该做什么和不该做什么之间的取舍。如果TCP被设计为满足上面所有需求,可能就不是现在的网络了。

    虽然TCP没有满足所有应用对于网络的需求,但是在TCP+IP外还是预留了一个类似于网络层的尽力而为传输层,也就是UDP。这就是说,如果TCP不满足用户要求,他们可以基于UDP实现自己的可靠传输层。不得不说,这一点很有远见,因为既提供了传输层的可靠实现,也提供了用户的自定义选择,类似于编程中的可定制化。

    以上考虑和设计还有其他因素,那就是TCP/IP层设计的足够简单,对底层网络的依赖就会越小。如果网络设计的服务类型多种多样,那么对底层的网络要求就会越多。另一方面,可能底层网络提供了可靠的通信服务,比如X.25网路,那么直接为上层提供UDP这种服务,可以简化网络数据流程,降低复杂度。从这一点可以引出第3个目标:支持不同种类的网络。

    可能有人会认为支持不同的网络很容易,将TCP/IP报文封装在底层网络就可以了。这当然是其中一方面,但是还有一方面需要考虑,那就是TCP/IP网络对底层都有哪些要求。如果要求越多,TCP/IP层的设计会简单,但是可适用网络类型就越少;如果要求越少,TCP/IP层的设计会变复杂,但是可以适用网络类型就越多。在TCP/IP的实际实现中,几乎做到了对底层网络的最小需求,那就是点对点网络的直接传输,广播网络中的寻址传输。

    <未完待续>

  • 相关阅读:
    [计算机视觉]算法
    [python]python中**是什么
    ubuntu16.04增大swap空间
    conda查看某个安装包的依赖项
    conda install -c anaconda
    conda安装指定版本的指定包
    ValueError: Unable to determine SOCKS version from socks://127.0.0.1:1080/
    [ubuntu]卸载老版并安装最新版firefox
    使用anaconda创建tensorflow环境后如何在jupyter notebook中使用
    [python]numpy.mean()用法
  • 原文地址:https://www.cnblogs.com/lionelgeng/p/15155025.html
Copyright © 2011-2022 走看看