在之前的文章中已经介绍过虚电路交换,详细请参见:http://blog.csdn.net/todd911/article/details/9069447

这边介绍下使用虚电路交换的2中WAN技术:帧中继和ATM。

帧中继

帧中继(frame relay)是一种虚电路广域网。设计用来满足20世纪80年代和20世纪90年代早期对新型广域网的需求。

帧中继主要有一下特性:

1.以较高的速率(1.544Mbps以及最近的44.376Mbps)进行工作。

2.只工作再物理层和数据链路层

3.允许突发性数据。例如:一个用户可能想以6Mbps的速度发送数据2秒,7秒不发送,以3.44Mbps发送数据1秒,总共在10秒内发送了15.44M的数据,平均速度是1.544M。

4.允许帧的大小为9000个字节,这适合于所有的局域网帧。

5.比传统的广域网花费少。从用户的角度上来说,所花费的费用少。

6.在数据链路层有错误检测,但是没有流量和错误控制。

下图是一个简单的帧中继网络:

帧中继一个很好的特性是提供了拥塞控制(congestion control)和服务质量(quality of service,QoS),这些特定在以后的会进行介绍。

ATM

异步传输模式(asynchronous transfer mode,ATM)是由ATM论坛设计的信元中继(cell relay)协议,并被ITU-T采纳。ATM和SONET(关于SONET的介绍请参见之前的文章:http://blog.csdn.net/todd911/article/details/9324615)的结合将允许世界上的网络之间高速互连。

混合网络

在ATM之前,数据链路层的数据通信是基于帧交换的和帧网络的,不同协议使用大小和复杂性不同的帧。可以想象,帧大小的变化导致通信量不可预测。交换机,多路复用器和路由器必须融合复杂的软件系统来管理不同大小的帧,必须阅读大量的帧头信息,并对每个位计数和赋值来确保每个帧的完整性。

另一个问题,在帧大小不可预测且变化很大的情况下,如何提供稳定速率的传输。为了从宽带计数中获得最大的好处,通信量必须被时分复用到共享的通路上,想象一下,将来自由不同需求(和帧设计)的网络中的帧复用到同一条链路上(如下图),会出现什么结果?当线路1使用很大的帧(数据帧),而线路2使用非常小的帧(音视频帧),会发生什么情况?

因为帧X先到达,所以多路复用器将帧X先方到通路上,帧A必须要等到整个X的位进入通路后才能跟随进入,帧X的绝对大小导致了帧A的不正常延时,同样的不平衡可能影响从线路2来的所有帧。因为音视频帧通常很小,将它和传统的数据帧混合传输,往往导致这种类型帧的不可接受的延时,使得共享帧链路无法为语音和视频信息所使用。

信元网路

和帧互连网络有关的许多问题可以通过采用信元网络(cell network)的概念来解决。一个信元是一个固定大小的数据单元。在信元网路中,使用信元(cell)作为数据交换的基本单位,所有的数据都装载入相同的信元中,这些信元可以按照完全可预测和统一的方式进行传输。当大小和格式不同的帧从分支网络到达信元网络时,他们被分割成相同大小的多个小数据单元,并装载如信元中。这些信元和其他信元多路复用并路由通过整个信元网络。

下图显示了有2条链路的多路复用器发送信元而不是帧的情形,帧X被分割成3个信元:X,Y和Z,链路1中的第一个信元在链路2中的第一个信元前发送,这两条链路的信元将交织在一起,没有一个信元忍受漫长的延时。

异步TDM

ATM使用异步时分复用来处理来自不同通道的信元,这就是为什么成为异步传输模式。它使用固定大小的时隙(一个信元的大小)。ATM复用器使用来自任何输入通道的一个信元填充一个时隙,如果通道没有发送的信元,则时隙为空。

ATM有很先进的拥塞控制和服务质量,这些内容会在以后讲到。

《数据通信与网络》笔记--虚电路网络:帧中继和ATM的更多相关文章

  1. python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  2. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容

    python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...

  3. FC网络学习笔记02 -网络配置方法

    随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm ...

  4. TCP/IP笔记(一)网络基础知识

    计算机与网络发展 计算机自诞生伊始,经历了一系列演变与发展.大型通用机计算机.超级计算机.小型机.个人电脑.工作站.便携式电以及现如今的智能手机终端都是这一过程的产物.它们性能逐年增强,价格却逐年下降 ...

  5. CentOS8_在线安装_网络源_网络镜像源填写格式_以及其他笔记

    CentOS8_在线安装_网络源_网络镜像源填写格式_以及其他笔记 转载注明来源: 本文链接 来自osnosn的博客,写于 2020-10-1. 参考: Centos8.0.1905 在线安装源选择 ...

  6. ****** 四十 ******、软设笔记【网络基础】-Internet和Intranet基础

    Internet和Intranet基础 一.网络地址及子网掩码 1.IP地址结构及类别 IP地址是由32位二进制数,即4个字节组成的,由网络号和主机号两个字段组成. 网络号的位数决定了可以分配的网络数 ...

  7. Docker笔记03-docker 网络模式

    docker网络模式分为5种 Nat (Network Address Translation) Host other container none overlay 第一种 Nat模式 docker的 ...

  8. 红帽学习笔记[RHCE]网络配置与路由转发

    目录 网络配置基本的IPV4与IPV6 拓扑图 操作 新加一块网卡 将增加的网卡分别加到两台虚拟机上 在两台虚拟机上配置IPV4与 IPV6 配置域名访问 拓展路由转发 拓扑图 操作 关于网关设置 重 ...

  9. 读书笔记_python网络编程3(5)

    5. 网络数据与网络错误 应该如何准备需要传输的数据? 应该如何对数据进行编码与格式化? Py程序需要提供哪些类型的错误? 5.1. 字节与字符串 PC与网卡都支持将字节作为通用传输单元.字节将8比特 ...

随机推荐

  1. C++函数声明和定义深度解析

    概述: 声明是将一个名称引入一个程序. 定义提供了一个实体在程序中的唯一描述. 声明在单个作用域内可以重复多次(类成员除外),定义在一个给定的作用域内只能出现一次. 一个定义就是一个声明,除非: 它定 ...

  2. Java 网络编程(Elliotte Rusty Harold)

    最近看了本Java网络编程方面的书,系统化一下Java网络编程,主要内容如下: 1.网络基础篇 这里包括基础的网络概念/ 输入输出流BIO/ Internet地址/URI/URL/HTTP/URLCo ...

  3. android sdk Manager path

  4. IOS 警告框 (UIAlertView)的使用方法

    1.普通警告框 IOS的SDK中提供了一个方便的类库UIAlertView,配合着不同参数来使用此类可以做出大多数的警告框,如下代码是IOS最简单的警告框. UIAlertView *alert = ...

  5. ThinkPHP 3.1.2 模板中的基本语法<1>

    # # ThinkPHP 3.1.2 模板中的基本语法 一.传统的方式,导入CSS和JS文件 1.css link js scr <link rel='stylesheet' type='tex ...

  6. [Windows编程] #pragma once 和#ifndef ... #define ... #endif 比较

    C++中防止头文件被多次include 的常见方式有: 1) 用#ifndef ...  #define ... #endif  宏 #ifndef __MYHEADER_H__#define __M ...

  7. HDU 3802 Ipad,IPhone

    http://wutyyzchangde.blog.163.com/blog/static/172226566201132311311374/ #include <cstdio> type ...

  8. Spark调研笔记第2篇 - 怎样通过Sparkclient向Spark提交任务

    在上篇笔记的基础上,本文介绍Sparkclient的基本配置及Spark任务提交方式. 1. Sparkclient及基本配置 从Spark官网下载的pre-built包中集成了Sparkclient ...

  9. JavaScript 数字相关的转换和方法

    类型判断 isNaN - 是否是 NaN(Not a Number).主要用来判断 NaN 是否是 NaN,因为 NaN == NaN 是 false. isNaN(NaN);       // tr ...

  10. 阿里Android一面(校招)

    4.8号晚上8点多接到了阿里一面的电话,面试官人很好,和我聊了半个多小时.我面的是无线事业部,就是做淘宝客户端的那个部门.面试问的都很基础,刚开始问了hashmap和快速排序.接着就是问Android ...