ARPANET的设计思想 (分组交换)
目录
- ARPANET
- 网络拓扑结构设计思路
- 数据传输方式
- 线路交换(circuit switching)
- 报文交换(message switching)
- **分组交换 / 包交换**(packet switching)
- 数据报方式
- 虚电路方式
- 三种交换的比较
- 提出通信子网和资源子网
- TCP/IP协议研究与发展
ARPANET
计算机网络的形成与发展过程中有三个标志性的网络:
- ARPANET、NSFNET与Internet
ARPANET,一个专门用于传输军事命令与控制信息的网络
ARPA (Defense Advanced Research Project Agency) 美国国防部高级研究计划署
ARPANET的研究背景:
- 军方需要一个专用军事网络 (可靠、容错、容侵)
通信网络方案的设计要解决两个基本问题:
- 网络拓扑结构
- 数据传输方式
网络拓扑结构设计思路
因为要满足可靠性,所以选择分布式网络的拓扑构型:高度分布与具有容错能力的网状结构
没有中心交换结点,每个节点与相邻结点连接,构成网状结构。如果有结点损坏,数据可通过其他路径传输
数据传输方式
线路交换(circuit switching)
线路交换是面向连接的服务,两台计算机通过通信子网进行数据交换之前,首先要在通信子网中建立一个实际的物理线路连接
- 线路交换在数据传输过程中要经过建立连接、数据传输与释放连接的三个阶段
优点:通信实时性强,适用于交互式会话类通信
缺点:对突发性通信不适应,系统效率低,系统不具有存储数据的能力,不能平滑通信量
典型应用:电话交换网
- 两部电话机互相连接只需一对电线
- 5部电话机两两相连, 需10对电线
- N 部电话机两两相连, 需N(N–1)/2 对电线
- 当电话机的数量增多时,就要使用交换机来完成全网的交换任务。交换机被用来搭建实际的物理线路
数据传输方式为什么不能采用电话交换网?
电话交换网(用于传输语音信号):
- 一种低速模拟信号传输过程,误码率高
- 呼叫过程10~20s,相对整个通话过程可接受
计算机的数据传输:
- 要求准确传输每个bit;
- 一般是突发性的,真正用于传输的时间很短,线路大多数时间空闲。
报文交换(message switching)
报文传输:不管发送数据的长度是多少,都把它当作一个逻辑单元发送
分组交换 / 包交换(packet switching)
报文分组传输:限制一次传输数据的最大长度,如果数据超过规定的最大长度,发送结点就将它分成多个报文分组发送
通常把采用分组交换(包交换)方式的计算机网络称为分组交换网
分组:在分组交换网络中,交换单元是大小可变的数据块,称为分组
存储转发:在每个节点,分组将被暂时储存,然后按照分组头中的信息规定的路线发送
路由选择:转发节点选择合适的传输路径
- 每一个数据段前面添加上首部构成分组。每一个分组的首部都含有地址等控制信息
- 分组交换网中的结点根据收到的分组的首部中的地址信息,把分组转发到下一个结点。用这样的存储转发方式,最后分组就能到达最终目的地
- 接收端收到分组后剥去首部还原成报文
分组交换带来的问题:
分组在各结点存储转发时需要排队,这就会造成一定的时延
分组必须携带的首部也造成了一定的开销
分组交换又可以分为:数据报、虚电路
数据报方式
面向非连接的数据传输方式
在数据报方式中,分组传送之间不需要预先在源主机与目的主机之间建立 “线路连接”:
- 源主机所发送的每一个分组都可以独立地选择一条传输路径。因此,每个分组在通信子网中可能是通过不同的传输路径到达目的主机
缺点:
- 分组到达目的结点时可能出现乱序、重复与丢失现象
优点:
- 灵活、高效:以分组为传送单位,查找路由,有利于提高路由器检错、重传的效率,提高路由器存储空间的利用率
- 迅速、可靠:不必先建立连接就能向其他主机发送报文分组。可以根据链路通信状态、网络拓扑变化,为不同分组动态选择传输路径,减少分组传输延迟。使网络有很好的生存性
虚电路方式
面向连接的数据传输方式
虚电路方式试图将数据报方式与线路交换方式结合起来,充分发挥两种方法的优点,以达到最佳的数据交换效果:
- 虚电路方式在分组发送之前,需要在发送方和接收方建立一条逻辑连接的虚电路
- 虚电路方式与线路交换方式相同,整个通信过程分为以下三个阶段:虚电路建立、数据传输与虚电路释放阶段
一条虚电路组成如下:
- 源和目的主机之间的路径
- 分组首部携带虚电路号 (沿着该路径的每段链路一个号码)
- 沿着该路径的每台路由器的转发表项
虚电路方式与线路交换方式的不同之处:
虚电路是在传输分组时建立起的逻辑连接。每个结点到其它结点间可能有无数条虚电路存在,一个结点可以同时与多个结点之间具有虚电路。
三种交换的比较
线路交换建立了实际的物理线路,所以可以直接将数据传输到终点。而报文交换和分组交换则需要经过若干次的存储转发
提出通信子网和资源子网
ARPANET 使用了 IMP (接口报文处理机) 完成分组接收、校验、存储、转发,并用 IMP 将主机和终端接入网内
IMP 即为路由器的雏形
TCP/IP协议研究与发展
70~80年代网络技术发展迅速,出现大量计算机网络:军用网、研究试验网络、公共服务网络、校园网等
“网络互联” (internet / internetworking) 研究,将不同类型的网络互联起来。需要克服异构网络在分组长度、格式、分组头与传输速率上的差异。
1977年10月,ARPANET研究人员决定将初期的网络协议分为 传输控制协议(TCP) 与 互联网络协议(IP)
- TCP协议主要用于实现源主机与目的主机之间的分布式进程通信的功能
- IP协议主要用于实现分组通过通信子网的路由选择功能。
ARPANET的设计思想 (分组交换)相关推荐
- 计算机网络——ARPANET设计思想
1. 什么是ARPANET ARPANET是什么?大概大家听到这个词都会感到陌生.但是Internet你一定不陌生. ARPANET与Internet一样,是计算机网络形成过程中标志性网络,除此之外还 ...
- AI框架精要:设计思想
AI框架精要:设计思想 本文主要介绍飞桨paddle平台的底层设计思想,可以帮助用户理解飞桨paddle框架的运作过程,以便于在实际业务需求中,更好的完成模型代码编写与调试及飞桨paddle框架的二次 ...
- 彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想
OkHttp 现在统治了Android的网络请求领域,最常用的框架是:Retrofit+okhttp.OkHttp的实现原理和设计思想是必须要了解的,读懂和理解流行的框架也是程序员进阶的必经之路,代码 ...
- Linus 谈 Git 的设计思想,顺带骂了一堆人(视频)
点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废 今天是周末,但也别忘记学习哦~ 昨天在网络上看到一个视频,<Linux介绍git的特点和设 ...
- 「完结」总结12大CNN主流模型架构设计思想
http://blog.sina.com.cn/s/blog_cfa68e330102zocn.html 专栏<CNN模型解读>正式完结了,在这一个专栏中,我们给大家回顾了深度学习中的各类 ...
- MapReduce原理与设计思想
转自:http://www.cnblogs.com/archimedes/p/mapreduce-principle.html 简单解释 MapReduce 算法 一个有趣的例子 你想数出一摞牌中有多 ...
- len(x) 击败 x.len(),从内置函数看 Python 的设计思想
内置函数是 Python 的一大特色,用极简的语法实现很多常用的操作. 它们预先定义在内置命名空间中,开箱即用,所见即所得.Python 被公认是一种新手友好型的语言,这种说法能够成立,内置函数在其中 ...
- 【设计思想解读开源框架】java监听模式和观察者模式
深耕技术,啃下22个技术点 互联网行业更新换代非常快,行业常态便是不断学习,因此这些主流技术你一个都不能落下! ①并发编程 Java并发编程是整个Java开发体系中最难以理解,但也是最重要的知识点之一 ...
- 【设计思想解读开源框架】java如何发送post请求
在这里分享一份 [mybatis从入门到精通] 的强力教程,定能够助你一臂之力. Mybatis基本介绍 ORM和MyBatis 对象/关系数据库映射(ORM) 基本映射方式 流行的ORM框架简介 目 ...
最新文章
- 《.NET最佳实践》与Ext JS/Touch的团队开发
- 一个简单的静态web服务器
- [论文翻译] iCaRL: Incremental Classifier and Representation Learning
- 使用dmidecode获取常用的硬件信息
- 手机腾讯网mt2.0增量更新算法优化小记
- 嵌入式基础面八股文——进程与线程的基本概念(1)
- Caffe傻瓜系列(9):训练和测试自己的图片
- 183.从不订购的客户
- opencv实现银行卡卡号识别
- 人声歌姬语音合成器+拓展-Yamaha Vocaloid 5.0.3 + Libraries WiN 免安装版
- oracle数据库开机自启,oracle数据库开机自动启动
- 公众号淘客返利系统,自动回复淘宝优惠券实现方法
- 使用netwox实现tcp rst 攻击及防御措施
- SQL on log : 同比分析各种指标
- NBA名人堂之-约翰·哈夫利切克|杰里·卢卡斯|詹姆斯·沃西|乔治·格温|沃尔特·弗雷泽
- java 时间戳验证_时间戳校验问题
- Python Selenium3.141+Win7(64位)+IEDriverServer(32位版本)+调用IE11卡死的解决
- 自己动手实现主题搜索引擎
- android10官方刷机包下载,Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载...
- 【HMS Core】统一扫码服务中的RemoteView如何修改视图比例?