zoukankan      html  css  js  c++  java
  • TCP/IP的分层复用问题

    最近开始学习TCP/IP卷一,开始对里面的一些内容有了一些自己的理解,现在就来聊一聊。这里要说明的是我只谈我对TCP/IP协议的理解,里面的基础知识一概跳过。

      今天主要讨论的问题就是为什么TCP/IP采用什么样的设计方法?为什么要这么设计?

      1 TCP/IP采用的设计方法

          1.1 分组传输原则

               1.2 分层传输原则

               1.3 复用传输原则

          2  分组传输原则

         2.1 分组传输原则的好处

              2.2 分组传输原则的要求

          3  分层传输原则

        3.1 分层传输原则的好处

        3.2 分层传输原则的要求

       4  复用传输原则

        4.1 复用传输原则的好处

             4.2 复用传输原则的要求

      

     1 TCP/IP采用的设计方法

      我们知道,TCP/IP说到底他是一个协议,在说白了点,就是为了传输数据所制定的一些规则,因此他的设计原则无非就是体现在两个方面,第一个方面就是在发送或者接收以后的设计原则,第二个方面就是发送过程中体现的设计原则。所以我们接下来所说的就是者几种原则。

      1.1 分组设计原则

      这个原则是在传输过程当中体现出来的。首先要明确一个概念,那就是为什么要分组,其实原因很简单,就是我们传输的通路或者路由器的负载值没有那么大,因此我们在传输过程中不得已需要把数据包拆开,因此数据包必须一部分一部分传输。另外分组传输必须还有第二个前提条件就是当前至少要有两条通路,如果只有一条那也就不可能实现了。分组传输其实就是将一个大数据块拆分成一个一个的小块,然后通过不同的通路传送过去。

      1.2 分层传输原则

      这个原则是在组成数据包的时候体现出来的。这个原则跟设计模式中的封装性其实本质上是一样的,说白了就是让每一个层只负责单个功能。

      1.3 复用传输原则

      这个原则其实是在分层传输原则上面体现出来的。正因为有了分层传输原则,里面的协议栈可以随意复用,比如说网络层的IP可以连接传输层的UDP协议,当然同时在同一网络中也可以连接传输层的TCP协议。这就是复用原则。

      2 分组传输原则

      2.1 分组传输协议的好处

        分组传输协议的好处当然不言而喻,它可以提升网络的传输速度,最大限度的利用网络链路和交换设备。

      2.2 分组传输协议的要求

        当然有利就有缺点。分组传输协议的缺点就是传输到另外一侧以后怎么办。这里面包含几个问题。1、如果传输顺序乱掉了怎么办。2、如果分组中间有丢包的怎么办。3、如果某一个分组在传输过程中有些数据被侵入者修改了怎么办。

        因此针对这些问题,我们的协议做了很多的努力和修改。比如说关于顺序问题,我们可以在分组的时候就可以设置好标签1,2,3。这样就可以组合了。2、如果有丢包,那么我想最直接的方式就是重新传输一遍。因此我们需要给其一个回复告知其是否丢包。3、针对数据被入侵者修改我们可以通过设置校验位的方法来检查是否传输的数据被人修改。当然关于这些问题我们在后面聊IP协议,UDP协议,TCP协议的时候会详细阐明的。

      3 分层传输原则

        3.1 分层传输原则的好处

          分层传输原则的好处可以参考设计模式中封装性的好处,就是增删改查以及复用更加方便。简单来说如果你不分层那么你在修改时要把所有的协议全部进行调整,但是现在我们只需要修改一层就OK了,这是非常快捷的。

        3.2 分层传输的要求

          分层传输的缺点就是由于分开使用,所以每一层都要有相应的匹配部分以及相关联的部分。因此我们对分层传输的要求就是要有配套的标记,比如端口,IP等等各个方面。这个我们以后再说。

      3 复用传输原则

        3.1 复用传输原则的好处

          复用传输原则的好处可以与分层传输原则基本相同。因为一个网络中我们需要多个协议协同操作,因此我们需要这个原则。

        3.2 复用传输原则的要求

          这个协议有一个很大的问题就是说需要将其区别开来,就是说IP后面跟着的时TCP还是UDP协议呢?解决这个问题的方法就是在IP协议包中添加上相关的下一个协议族,比如说6代表UDP,17代表TCP,这就是复用传输原则的要求。

        好了,今天就到这里了。

  • 相关阅读:
    浏览器渲染页面
    递归求1-100之和
    border属性
    ES6 Class
    数组去重
    get、post请求
    对象冒充继承
    原型链继承
    实现JS数据拷贝
    【转】centos升级curl版本
  • 原文地址:https://www.cnblogs.com/songyuchen/p/13141263.html
Copyright © 2011-2022 走看看