计算机网络位于通信和计算机的交叉点上,是两者不断融合和促进的产物。
第一篇文章简单介绍下计算机网络的发展过程。
计算机网络诞生于在1960年代美苏冷战时期,当时的美国国防部要求研发一种新型网络,要求一下特点:
1. 该网络不是为了打电话,而是为了计算机之间传输数据
2. 能连接不用类型的计算机
3. 网络上的节点同等重要
4. 有冗余的路由
5. 尽可能地简单,但是非常可靠
在此之前,美国已有发达的电信网。计算机网络是在电信网的基础之上提出的,所以有必要对比一下两者。
电信网的最基本特点是电路交换(circuit switching),而电路交换是面向连接的。
面向连接的通信有三个步骤:1)建立连接;2)传输整条报文;3)释放连接。
如果通信链路中断,那么就必须重连(**可靠性差**)。
为什么计算机网络不使用电路交换的思想去设计呢?
简单说就是链路的数据传输效率低。电路交换的特点是,在通话的全部时间内,通话的两个用户始终占用端到端的固定传输带宽。而计算机通信的数据往往是突发的,在整个通信过程中,可能只是很少的时间用于传输数据,大部分时间可能用于用户在编辑一个文件等。所以通信链路没有被充分利用。
计算机网络的设计原理是分组交换(packet switching)。网络会把一个报文(message)拆分成一个一个的分组(packet),分组又称“包”,是互联网中的传输数据单元。
分组由两部分组成:包头部分和数据部分。包头中有分组的控制信息,比如目的地址和源地址。正是有了这些信息,分组才能在分组交换网中选择路由。在使用分组交换时,可以无需建立连接就直接发送数据。这种通信机制不是面向连接的。
![分组的概念](https://box.kancloud.cn/000af7c5371c4810aeb8cb8446edce34_543x163.png)
注意上图有错误:报文中的数据存放在数据部分,不会存放在包头。
存储交换的工作原理是**存储转发**,这个过程是由**节点交换机**完成的。交换机有很多端口,用这些端口和外部路线联系。交换机会把收到的分组放入缓存,再查找转发表,找到目的地址应该从哪个端口转发,然后再把分组传递到相关的端口。在传输过程中,如果某些结点或者线路被破坏,交换机会根据路由转发协议,找到其他路径。存储转发策略的本质是在通信过程中动态(断续)地分配带宽资源,非常适合突发式数据的传输,大大提高了通信线路的利用率。
分组交换的优点是显而易见的:
1. 高效:动态分配带宽资源,对通信线路逐段占有
2. 灵活:对每一个分组独立地选择转发路由
3. 迅速:不需要建立连接;网络使用高速线路
4. 可靠:完善的网络协议,分布式,多路由。
分组交换也带了一些问题:
1. 分组在存储转发的时候需要排队,增加了时延。
2. 分组的首部的控制信息是额外开销
3. 分组交换网需要专门地
思考题:分组交换和电路交换有什么不同?计算机网络为什么使用前者?
提示:所谓“交换”,其实是指在通信中分配带宽资源。