推荐书籍:计算机网络.一种开源的设计方法,从设计层面,面向实际问题来讲解计算机网络的来龙去脉,将计算机网络的知识系统化了,首先从计算机网络的需求出发,再到现有提供的解决方案,最后到解决方案的开源实现,整个文章脉络清晰,是计算机网络进阶的好书。 通读完这本书后,结合自己的见解,做了一些读书笔记,记录一下。
一、计算机网络互联需求
计算机网络的核心需求:“通过各种共享媒体和设备连接越来越多的用户和应用程序,以便它们可以相互通信”,需要解决三个关键性问题,分别是,
1. 连通性,谁以及如何连接。
2. 可扩展性,有多少连接。
3. 资源共享,如何利用连接。
连接性,可视为“从一组节点和链路钩子的连通图,任一节点可以通过一系列联系起来的节点和链路组成的路径到达彼此”。这里节点指的是主机或中间设备;链路指的是两个及以上的节点连接,两个为点对点,两个以上为广播(广播链路上的节点通过竞争获得发送权),链路的连接方式可以是有线的或无线的,节点的通信方式可以使全双工或半双工;两个节点之间的路径指的是,一系列联系起来的中间链路和节点,它可分为交换式和路由式,前者需要中间节点建立路径连接并在发送消息之前交换表中记录路径的状态信息,而后者可通过非预设的,能独立选择的路径进行转发,也许经过的路径不一定相同。
可扩展性,“一种可扩展到大量节点的平台,以便能够使每个节点知道如何到达任何其他节点”。将节点组织成很多组,少量节点可以组成一个组,多个组也可以聚合成一个超组,可创建一种可管理的树状层次结构,把每个组都分层并连接起来。分组的方式可按地理区域划分,如局域网、域域网和广域网。
资源共享,“一种共享平台,使用节点和链路的容量在节点之间传送通信信息”。这是正是数据通信和传统语言通信之间最大的不同(分组交换和电路交换的区别),传统语音通信在开始通话之前,首先需要找到主叫和被叫之间的电路并进行交换,之后会维持着这样一条64kbps的电路,这种专用资源分配的好处是可提供稳定的资源,从而在连续的数据流中保持高质量,不好的地方是,对于闲置时间长会效率低。而数据通信是一种更加宽松和高效的资源共享实践,不会建立专用线路,数据分组成包(