互联网的结构从各部分的工作方式上,可以划分为两大块:
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统(endsystem),“端”就是“末端"的意思(即互联网的末端)。边缘部分利用核心部分所提供的服务,使众多主机之间能够互相通信并交换或共享信息。
网络边缘的主要运行方式就是计算机(端系统)之间的通信,“计算机之间的通信”是指“主机A的某个进程和主机B上的另一个进程进行通信”。
端系统之间的通信通常分成两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。在图1-5中,主机A运行客户程序而主机B运行服务器程序。在这种悄况下,A是客户而B是服务器。客户A向服务器B发出请求服务,而服务器B向客户A提供服务。这里最主要的特征就是:客户是服务请求方,服务器是服务提供方。
服务请求方和服务提供方都要使用网络核心部分所提供的服务。
在实际应用中,客户程序和服务器程序通常还具有以下一些主要特点。
客户程序:
服务器程序:
客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。
对等连接(peer-to-peer,简写为P2P)是指两台主机在通信时,并不区分哪一个是服务请求方和哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通估。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此这种工作方式也称为P2P方式。在图1-6中,主机C,D,E和F都运行了P2P程序,因此这几台主机都可进行对等通信(如C,D,E以及F)。实际上,对等连接方式从本质上看仍然使用客户-服务器方式,只是对等连接中的每一台主机既是客户同时又是服务器。例如主机C,请求D的服务时C是客户,D是服务器。但如果C又同时向F提供服务,那么C又同时起若服务器的作用。
网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘部分中的大量主机提供连通性,使边缘部分中的任何一台主机都能够与其他主机通信。
在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不叫作主机)。路由器是实现分组交换(packetswitching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
从通信资源的分配角度来看,交换(switching)就是按照某种方式动态地分配传输线路的资源。
和电路交换比起来,由于一次性将这次要发送的信息都打包发送了,所以在通信的间隔,通信双方不需要一直维持物理通路的连接,而空闲的通信链路就可以为其他通信方提供服务。
在计算机网络中,采用报文交换方式进行通信时,交换机(路由器)接受发送端或上一级交换机(路由器)发来的报文,将其存储在本地,然后按照报文中记录的目的地,将其转发到下一级交换机(路由器),这个过程被称为存储转发。
分组交换与报文交换的过程大致相同,都采用了存储转发技术。但是分组交换将一份报文切分成若干组(packet),每一个分组又称为一个包(packet),每个包都携带完整的“发件信息”、“收件信息”和原始报文的一部分,这些分组被成功发送到接收端后再进行重组,形成完整的原始报文。分组交换限制了每个分组的最大长度,极大缓解了网络堵塞。同时,由于原始报文被分成了许多份,如果其中一个包丢失,发送端不必要再发送完整的报文,而只需要再次发送丢失的那一个分组即可。
电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。