互联网根据工作方式可以分为边缘部分和核心部分
一. 互联网的边缘部分
处在互联网边缘部分的是连接在互联网上的所有主机。这些主机又称为端系统(end system)。
“主机A和主机B通信”指的是运行在主机A上的某个程序和运行在主机B上的某个应用程序进行通信,"进程“就是运行着的程序,因此,就是指运行在主机A上的某个进程和运行在主机B上的某个进程进行通信。这种比较严密的说法可以称作是”计算机之间通信“。
在网络边缘的端系统之间通信方式通常分为两类:客户-服务器方式(C/S 方式)和对等方式(P2P方式)。
1. 客户端-服务器方式
这种方式在互联网上是最常用的,也是传统的方式。我们在网上发送邮件或者查找资料时都是这种通信方式。
客户(client)和服务器(sever)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。客户端是服务请求方,服务器是服务提供方。
在实际应用中,客户端和服务端程序通常有以下特点:
客户程序:
(1) 被用户调用以后,在通信时主动向远程服务器发起通信。因此,客户端必须知道服务器程序的地址。
(2) 不需要特殊的硬件和复杂的操作系统
服务器程序:
(1) 是一种专门用来提供服务的程序,可同时处理多个远程或本地客户的请求。
(2) 系统启动后即自动调用并一直不断的运行着,被动地等待并接受来自各地的客户的请求,因此,服务器不需要知道客户程序的地址
(3)一般需要强大的硬件和高级的操作系统的支持。
客户端和服务端的通信关系建立以后,通信可以是双向的,客户和服务器都可以发送和接收数据。
2. 对等连接方式
对等连接(peer-to-peer, 简写为p2p)是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件(p2p),他们就可以进行平等的、对等连接通信。这时,双方都可以下载对方已经存储到硬盘中的共享文件。对等连接方式支持大量对等用户(上百万个)同时使用。
二、互联网的核心部分
网络核心部分是互联网中最复杂的部分,因为核心部分要向边缘中的大量主机提供连通性,使边缘的任何一台主机都可以向其他主机通信。
在网络核心部分起特殊作用的是路由器,是一种专门的计算机(但是不叫主机)。路由器是实现分组交换(packet switching)的关键构件, 其任务是转发收到的分组,这是核心部分最重要的部分。
1.电路交换的主要特点。(有兴趣可以自己去看一下)
2. 分组交换的主要特点。
分组交换采用存储转发技术(实质上采用了在数据通信过程中断续/动态分配传输带宽的策略)。把一个报文划分为几个分组后再进行传输。
通常我们把要传输的整块数据称为一个报文(message)。在发送报文前,先把较长的报文划分成一个一个更小的等长数据段,在每一个数据段前面,加上一些由必要的控制信息组成的首部(Header)后,就构成了一个分组(packet)。分组又称为包,首部又称为包头。分组是互联网中传送的数据单元。分组中首部是非常重要的,首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正常地交付到分组传输的终点。
路由器收到一个分组(一个个短的分组暂存在路由器的存储器/内存中而不是在磁盘中),先暂时存储一下,检查首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步,最终把分组交付给目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
为了提高分组交换网的可靠性,互联网的核心部分通常采用网状拓扑结构,使得当发生网络拥塞、少数节点/链路故障时,路由器可以灵活的转变转发路由,而避免通信中断或全网的瘫痪。
带来的问题:1. 分组在路由器存储转发时需要排队,会造成一定的延时。2.各组必须携带控制信息,造成了一定的开销(overhead)。