一、概念

  交换技术是指各台主机之间、各通信设备之间或者主机和通信设备之间(简单理解:你的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报文等都使用了分组交换技术。

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

TCP/IP 物理层卷二 -- 交换技术的更多相关文章

  1. TCP/IP 物理层卷一 -- 基本概念

    一.基本概念: 物理层:TCP/IP 协议簇的最底层,物理层所需要考虑的是如何在连接计算机的传输媒体上传输数据的比特流,而不是连接计算机的具体物理设备. 信号:数据的电气或电磁表现,是数据在传输媒体上 ...

  2. TCP/IP 物理层卷四 -- 数据报与虚电路

    一.数据报(Datagram) 1.1 概念 数据报是分组交换的一种,主要向通信子网中的端系统提供无连接的分组交换服务.通信子网的某主机发送一个报文时,无需建立连接,只需在实现高层协议的前提下对数据拆 ...

  3. TCP/IP 物理层卷三 -- 传输介质

    一.有线传输介质(Guided Transmission Media)  1.1 双绞线(Twisted Pair) 双绞线(twisted pair)是一种综合布线工程中最常用的有线传输介质(导向传 ...

  4. TCP/IP协议栈源码图解分析系列10:linux内核协议栈中对于socket相关API的实现

    题记:本系列文章的目的是抛开书本从Linux内核源代码的角度详细分析TCP/IP协议栈内核相关技术 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com linu ...

  5. 关于TOE(TCP/IP Offload Engine)

    前言 昨天在电脑上抓取的报文,想进行回话,但是发现全部被设备丢弃了,没有debug信息,查看了抓包文件,原来是IP头和TCP.UDP头的检验和全部为0,也就是TOE(TCP/IP Offload En ...

  6. tcp/ip 卷一 读书笔记(2)物理层和链路层网络

    物理层和链路层网络 术语 链路 是一对相邻结点间的物理线路,中间没有任何其他的交换结点. 数据链路 除了物理线路外,还必须有通信协议来控制这些数据的传输. 帧 数据链路层的协议数据单元(PDU) 串行 ...

  7. TCP/IP(二)物理层详解

    前言 在前面说了一下,计算机网络的大概内容,没有去深刻的去了解它,这篇文章给大家分享一下物理层! 我们知道ISO模型是七层,TCP/IP模型是五层,而tcp/ip协议只将七层概括为4层,我们将学习其中 ...

  8. 【原创】技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)

    1.前言 作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难 ...

  9. 单片机联网需求攀升 WIZnet全硬件TCP/IP技术崛起

    --新华龙电子为韩国WIZnet公司网络芯片授权代理商,具有20多年的专业团队IC应用开发实力-- 如今不管是在企业还是小区.街道,甚至是居民室内,以太网接口无处不在.有鉴于此,电子设备必将向更加智能 ...

随机推荐

  1. BZOJ 4388 [JOI2012春季合宿]Invitation (线段树、二叉堆、最小生成树)

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4388 题解 模拟Prim算法? 原题所述的过程就是Prim算法求最大生成树的过程.于是我 ...

  2. JVM之Java类加载机制

    什么是类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这既是虚拟机的类加载机制 类的生命周期 生命周期简述 ...

  3. xcode6 如何编译64位iOS应用

    原文:http://mobile.51cto.com/hot-412500.htm 随着iPhone5S的推出,大家开始关心5S上所使用的64位CPU A7. 除了关心A7的性能以外,大家还会关心一个 ...

  4. 线程系列1--Java创建线程的几种方式及源码分析

    线程--创建线程的几种方式及源码分析 开始整理下线程的知识,感觉这块一直是盲区,工作中这些东西一直没有实际使用过,感觉也只是停留在初步的认识.前段时间一个内推的面试被问到,感觉一脸懵逼.面试官说,我的 ...

  5. IP输出 之 ip_output、ip_finish_output、ip_finish_output2

    概述 ip_output-设置输出设备和协议,然后经过POST_ROUTING钩子点,最后调用ip_finish_output: ip_finish_output-对skb进行分片判断,需要分片,则分 ...

  6. GitHub:Python

    ylbtech-GitHub:Python 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://github.com/python 2.   6 ...

  7. vue.js-动态绑定class 利用index实现导航

    <template> <div class="stock"> <div class="buin_leftcont nav_ctrl" ...

  8. MySQL 存储过程 函数 routine 权限

    MySQL 存储过程 函数 routine 权限 Table of Contents 1. mysql存储过程/函数权限 1.1. 相关对象操作权限检查 1.2. 执行权限 1 mysql存储过程/函 ...

  9. 安卓之Android.mk编写

    题记:编译环境可以参考https://www.cnblogs.com/ywjfx/p/9960817.html 不管是写C还是java,我想所有的程序员都经历过HelloWorld程序的编写,现在让我 ...

  10. c#根据配置文件反射

    由于项目中用到了反射,准备把各个类库都先写在配置文件中,然后读取配置文件,再对配置文件中配置的类库进行反射. 这样做的好处是各个类库保持独立,其中一个类库出现问题不会影响其他类库,更新项目时,只要更新 ...