zoukankan      html  css  js  c++  java
  • TCP/IP 物理层卷二 -- 交换技术

    一、概念

      交换技术是指各台主机之间、各通信设备之间或者主机和通信设备之间(简单理解:你的PC和我的PC之间、你的PC和我的路由器、路由器之间)为交换信息所采用的的数据格式和交换装置的方式。

    二、交换技术分类

    2.1 电路交换(Circuit Switching)

    2.1.1 什么是电路交换?

      Anderw S.Tanenbaum 在 《Computer Network 》给电路交换下了定义:

    Conceptually, when you or your computer places a telephone call, the switching equipment within the telephone system seeks out a physical path all the way from your telephone to the receiver’s telephone. This technique is called circuit switching.

      从概念上讲,当你或是你的计算机想要拨打电话时,电话系统内的交换设备会寻找一条从你的电话到接收方电话之间的物理路径。 这种技术称为电路交换。在打电话的过程中,我们需要明白几个概念。拨号方相当于源结点,接收电话方相当于目标结点,而我们从拿起话筒、拨号、等待、通话、挂断等一系列过程我们把它称之为一个完整的电路交换过程。所以简而言之,电路交换就是在源结点和目标结点之间建立一条专用的通路用于数据传输。

    2.1.2 电路交换具体过程

      对应于我们日常的电话通信步骤:拨号、通话、挂断,电路交换主要包括三个阶段,分别是建立连接、传输数据、断开连接

    • 建立连接

      两个节点之间通信是需要传输媒介的,打电话亦然。所以我们需要电话线来传输我们的语音信号。所以当我们需要通话时,首先要做的事情便是建立一条通信线路,也就

    是要占用一条专用的电话线(Occupy a dedicated path between both ends)。

    • 传输数据

      通信线路的建立是端系统实现通信的基础(在面向连接的通信方式中)。当链路建立完成后,便可以通过信道传输我们通话的语音信号了,当然这里面还可能涉及数据的编码和调制。

    • 断开连接

      当两个节点通信结束后,为了提高数据传输率和资源利用率,我们需要让出通信线路给需要通信的节点。所以我们得释放连接。

       

      在实际生活中,我们打电话的行为类似这张图:

    拨号后等待的时间就相当于左边的电话在通过多口开关选择一条未被占用的电话线路一样。中间需要 Switching Office 来实现数据接力。当通信结束后,将开关拨开就相当于断开连接。

    2.1.3 电路交换的优缺点

     a) 优点

    • 通信时延小
    • 有序传输
    • 无数据冲突
    • 实时性强
    • 控制简单

     b) 缺点

    • 建立连接时间长(通常从拨号到接通需要10秒的时间,这比起网络通信实在是延迟不少!!!)
    • 线路独占,信道利用率低
    • 线路的抗故障性差(一点故障,重新连接)
    • 难以规格化(数据直达不缓存,不同速率信号难以通信) 

    2.2 报文交换(Message Switching)

    2.2.1 什么是报文交换?

      报文交换实质是一种采用存储转发技术,在源结点和目的结点间通过中间结点(路由器)来实现对报文进行交换,从而实现报文的传输。

      可以将报文交换理解为我们现实生活中的接力比赛,第一棒选手拿着接力棒从起点出发,然后中途会把接力棒交给下一个队友,最后接棒的队友兴奋地奔向终点!其中报文就好比接力棒,而这些中途参加接力的运动健儿们就是中间的交换结点啦。这样的分析后,我们便很好把握报文交换的特点了。

    2.2.2 报文交换的特点

      a) 优点

    • 无须建立连接(与电路交换不同)
    • 动态分配线路(路由算法选择最佳线路)
    • 线路抗故障性强(不会出现“一点断,多点瘫”情况)
    • 提高线路利用率(相对于电路交换,不会一直占用信道)
    • 提供多目标服务(一个报文可广播多个目的地)

      b) 缺点

    • 转发时延长
    • 存储开销大

      这两点从时间和空间的角度考察了报文交换的不足之处。因为报文(数据)进入交换结点后要经历存储、排队、转发等过程(不像电路交换,连接一建立就直接发),所以会引起额外的转发时延。当然也正因为采用存储转发技术,所以要求中间结点需要具备一定的缓存空间来暂时存储接收到的报文,然后才依次为各个报文选择恰当的路线发送给下一个结点。

    2.3 分组交换(Package Switching)

    2.3.1 什么是分组交换?

      实质上,分组交换与报文交换是相同的,他们都采用“存储-转发”的思想,唯一的不同是,分组交换考虑地更加细致,它在报文的长度上给出了限制。换而言之,报文不能以任意长度传输,必须在固定的长度范围内,如果超过既定范围就需要将一个报文分成两个甚至多个报文来进行传输。因此我们在分组交换技术下,数据一般被称为“分组”(Packet)。类似于IP分组。

    2.3.2 分组交换的特点

     a) 优点

      除了具有与报文交换相同的优点外,还具有:

    • 简化了存储设备(相对于报文交换,分组长度固定,便于操作)
    • 流水线式加速传输(多个分组的排队等待、发送可以并行)
    • 降低出错率和重传率(分组长度较短,出错概率降低)

     b) 缺点

    • 存在传输时延
    • 需要传输额外信息(每个分组都需要指定源地址、目的地址、分组号等额外信息)
    • 增加额外处理时间(分组实现对大数据报的切分,同时也带来对分组组装,排序等额外工作的开销)

    三、三种交换技术对比

      龙书作者 Anderw S.Tanenbaum 给出了电路交换与分组交换的各项指标的对比:(报文交换与分组交换实质是一样滴)

    就目前的引用场景来说,电路交换技术一般用于有线电视、有限电话系统等要求可靠传输的领域。而报文交换只是电路交换到分组交换的过渡时期的替代品,已经成为历史。分组交换应用就更加广泛了,比如IP报文,ICMP报文等都使用了分组交换技术。

    没有拿到保研名额,权衡之下,选择了考研,只为了不断地提升自己。不管是从技术还是心理,内心总是坚定:少说话,多做事。

  • 相关阅读:
    <转>lua 调用 C函数
    <转>VC之获取CPU序列号
    <转> 求结构体偏移
    借助 FireBug 进行轻量级代码自动生成。
    内存盘配置IIS临时目录
    导出带有复合表头的Excel方案.
    左右互博之精简代码
    [转]JavaScript 秘密花园
    MVC中,Ajax Post 数组的实现方案
    Sql 存储过程 参数传递空字符串, 到SQL 端变成了 空格!!
  • 原文地址:https://www.cnblogs.com/sheepcore/p/11577670.html
Copyright © 2011-2022 走看看