一、互联网概述
计算机网络是由若干节点(node)和连接这些节点的链路(link)组成。
网络之间还可以通过路由器互联起来,这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。
网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机。
二、互联网结构发展的三个阶段
从宏观上人们都在追求更快更高效更可靠的信息传输方式
(1)第一个阶段
从单个网络ARPANET向互联网发展的过程
(2)第二个阶段
特点是建成了三级结构的互联网:主干网、地区网、校园网(企业网)
(3)第三个阶段
特点是逐渐形成了多层次ISP(互联网服务提供者Internet Service Provider)结构的互联网。从上个世纪九十年代开始,美国政府资助的NSFNET逐渐被若干个商用的互联网主干网取代,政府不再负责互联网的运营,互联网管理机构不零售IP给个人,而是把一批IP地址有偿租赁给审查合格的拥有通信线路和路由设备的机构,这样的机构称为ISP。任何机构或者个人只需要向某个ISP缴纳规定的费用,就可以从该ISP获得IP的使用权,并通过该ISP接入互联网,即实现"上网"。
根据提供服务的覆盖面积以及所拥有的IP地址数目的不同,ISP也分为不同层次的ISP:主干ISP、地区ISP和本地ISP
随着互联网上数据流量的急剧增长,人们开始研究如何更快地转发分组,以及如何更加有效地利用网络资源,于是互联网交换点IXP(Internet exchange point)就应运而生了。
互联网交换点IXP的主要作用就是允许两个网络直接连接并交换分组,而不需要再通过第三个网络来转发分组,自然提高了信息传输的效率和速度。
典型的IXP由一个或者多个网络交换机组成,许多的ISP再连接到这些网络交换机的相关端口上。ISP通常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互联起来。
三、互联网的组成
从工作方式上分为边缘部分和核心部分
(1)边缘部分
由所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享
(2)核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
1、边缘部分
处在互联网边缘的部分就是连接在互联网上的所有的主机,这些主机又称为端系统(end system)。在网络边缘的端系统之间的通信方式通常可以划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
(1)客户-服务器方式(C/S)
客户是服务请求方,服务器是服务提供方,客户与服务器建立通信关系后是双向的,二者都可以发送和接收数据
客户程序:被用户调用后运行,在通信时主动向远地服务器发起通信。客户程序必须知道服务器程序的地址;不需要特殊的硬件和很复杂的操作系统
服务器程序:可以同时处理多个远地或者本地的客户的请求;系统启动后即自动调用并一直不断的运行着,被动地等待并接受来自各地的客户的通信请求;一般需要 强大的硬件和复杂的操作系统支持
(2)对等连接方式(peer-to-peer)
主要是指两台主机在通信时不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件,它们就可以进行平等的对等连接通信。
P2P也是区块链系统连接各对等节点的网络组成技术,结合图示也可以发现一个很显著的特点是去中心化,利用存储、计算能力等网络边缘资源,使其具有分布性。
2、核心部分
在网络核心部分起特殊作用的是路由器。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
(1)电话交换
在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
(2) 分组交换(package switching)
(i)基本原理
分组交换采用存储转发技术(store-and-forward)。通常我们把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分为一个个更小的等长数据段。在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就构成了一个分组。分组又被称为包,而分组的首部也可称为包头。
分组交换的本质是数据通信过程中动态分配带宽的策略,在传送数据之前不必先占用一条端到端的链路的通信资源。只有当需要传输数据时,才会占用网络带宽。当没有数据传输时,链路可以为其他用户的分组服务。这种动态分配带宽的策略能够充分利用网络资源,而不会像电路交换那样,预留一条专用链路占用资源,导致浪费。比如如果网络中有多个分组在同一时间到达一个交换节点,这个节点会根据当前的网络情况动态决定优先转发哪个分组,并将其他分组暂时存储起来,等待下一次转发机会。
(ii)具体过程
如上图(b)所示,我们往往把单个的网络简化为一条链路,而路由器成为核心部分的结点。如上图所示比如要将数据包从H1-->H5:
如果信息量较小,选择A-C-E线路即可,先将一个一个的短分组沿着链路由A-->C,暂时存储在C路由器的内存,然后查找转发表,比如查找到转发到E,则继续通过C-E链路传输出去。分组在输出时就这样一段一段地断续占用通信资源,省去了建立连接和释放连接的开销。
如果信息量较大 ,那么路由器A可以选择把分组沿着另一个路由传送,可以先转发到路由器B,再转发到路由器E,最后再将分组送到主机H5。
(iii)路由器的存储与转发
当一个分组(数据包)通过网络链路到达节点时,节点首先会通过其接收接口来捕获这个分组。这个接收接口可能是有线网卡、无线网卡等。分组到达后,会被临时存储在节点的缓冲区中。节点会开始解析分组的头部信息(如IP包头、TCP/UDP包头等),从中提取关键信息,包括目的地址、源地址、协议类型、数据长度等。这个过程主要是为了确定接下来如何处理分组。解析完分组的头部信息后,路由器会根据其目的地址来查找路由表,决定该分组的下一跳应该是哪个节点,以及通过哪个接口转发。当分组准备就绪并且接口空闲,节点会从缓冲区中取出分组,通过对应的接口将分组发送到下一个节点(下一跳)。一旦分组成功发出,该分组就会从缓冲区中删除,释放存储空间供后续的分组使用。
在分组交换中,根据分组的目的地址决定下一步该将分组转发到哪条路径上的过程称为 路由选择(Routing)。网络设备(如路由器或交换机)会根据路由表和路由协议的机制,选择最合适的路径将分组传输到下一个节点,直到最终到达目的地。路由表(routng table)最基础的包括目标网络地址和下一跳地址(Next Hop)即分组应该转发到的下一个路由器或节点的地址。
为了提高分组交换网络的可靠性,互联网的核心部分采用了网络拓扑结构,当结点或者链路发生故障时路由器可以灵活地改变转发路由不至于引起通信中断和全网瘫痪。同时还有路由选择协议也可以在发生故障时选择路径。
(iv)分组交换的问题
(1)分组在路由器存储时需要排队,造成一定的时延
(2)乱序问题即一个消息被拆分成多个分组(即数据包)发送后,这些分组在到达目的地时,可能会按照与发送时不同的顺序抵达。
(3)各分组必须携带的控制信息也造成了一定的开销,整个分组交换网络还需要专门的管理和控制机制
(3)报文交换
整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。
四、计算机网络的性能
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延