目录
六、计算机网络和因特网
6.1 引言
6.1.1 网络
网络是一系列可用于通信的设备相互连接构成的。在这个定义里,一个设备可以是一台主机(或称为端系统),比如台式机、计算机等;设备也可以是连接设备,比如路由器(连接网络)或者交换机(连接不同的设备)。
局域网(LAN):通常是单个办公室、建筑或校园内几个主机相连的私有网络。在局域网中,每一台主机都有作为这个主机在局域网中唯一定义的一个标识符和一个地址。一台主机向另一台主机发送的数据包中包含了源主机和目标主机的地址。
广域网(WAN):广域网也是通信设备相互连接构成的,但它的跨度更大,可以是一个城镇、一个省甚至整个世界。局域网将主机互连,广域网则将交换机、路由器或调制解调器等连接设备互连。局域网为机构私有,而广域网则由通信公司创建并运营,并租给使用它的机构。广域网分为两类:点对点广域网(通过媒介连接两个通信设备的网络)、交换广域网(至少有两个端的网络)。交换广域网用于当今全球通信的骨干网。可以说交换广域网是数个点对点广域网连接产生的结合体。互联网络:当两个或多个网络互相连接时,它们构成一个互联网络,或称为网际网。
6.1.2 因特网
一个网际网(internet,小写 i )是两个或多个可以互相通信的网络。最值得注意的网际网是因特网(Internet,大写 I ),它由成千上万个互连的网络组成。
在顶层,骨干网为通信公司拥有,这些骨干网通过一些复杂的交换系统(网络对等交汇点)相互连接 ;第二层有一些规模较小的网络,称为供应商网络,它们付费使用骨干网上的一些服务,供应商网络与骨干网相连,有时也与其他供应商网络相连;最后一层为客户网络,它们向供应商网络付费来得到服务。
骨干网和供应商网络也被称为因特网服务供应商(ISP),骨干网通常被称为国际因特网服务供应商,供应商网络被称为国内或地域性因特网服务供应商。
6.1.3 硬件和软件
因特网是大大小小的网络相连组成的一个整体。但如果只是仅仅将这些部分连接起来,明显不会发生什么。为了产生通信,需要硬件和软件的配合使用,下面会介绍如何通过协议分层来进行通信。
6.1.4 协议分层
协议定义了发送器、接收器以及所有中间设备必须遵守的以保证有效通信的规则。简单的通信可能只需要一条协议,当通信变得复杂时,需要将任务分配到不同的协议层,在每一个协议层都需要一个协议,这就是协议分层。
在上图的场景中,Maria(以下称为M)想要和Ann(以下称为A)通过邮件进行联系。如果写一封信直接通过邮局发送,当信件被拦截时,别人可以很清楚的知道信件中的内容,所以需要对信件进行加密。那么就可以把通信过程分为三个协议层。在第三个协议层,M先制作出明文;然后通过第二协议层对明文进行加密;再通过第一协议层给信件加上收信人信息和寄信人信息;在A这边,第一协议层接收到信件,然后将密文送到第二协议层进行解密,最后通过第一协议层传递给A。
协议分层可以将大任务简化成几个更小更简单的任务。例如,如果M和A想要更换加密和解密的规则,她们只需要替换第二协议层的机器即可,另外两层保持不变,这称为模块化。这里的模块化指独立的协议层。如果不适用协议分层,那么就需要替换整个机器。
协议分层的一个优势是可以将服务和其实现分开。每层使用更低层的服务,并向更高一层提供服务。使用服务时不必考虑它是如何实现的,例如,如果M能够完成第三协议层的工作,那么她就只需要两个协议层。
协议分层的另一个优势是可以简化通信系统。不是每个通信系统中的设备都需要所有的协议层,如果不使用协议分层,那么每个设备都需要像端系统一样复杂。
协议分层的原则:如果想双向通信,那么每个协议层都必须能够完成两个对立且方向相反的工作,例如上述三层协议中的第二层既要能够加密,也要能够解密;两个站点中每一层的两个对象必须完全相同,例如,第三层的对象都应该是明文。
逻辑连接:发送该协议层创建的对象是基于每层的逻辑(假想的)连接,逻辑连接可以帮助我们更好地理解在数据通信和建立数据关系网络中遇到的分层工作以及层与层之间的通信。
6.1.5 TCP/IP协议族
如今因特网中使用的协议集(一组通过不同分层进行组织的协议)被称为TCP/IP(传输控制协议/网际协议)协议族。它是一个分层协议,由提供特殊功能交互式模块组成。分层这个术语说明每一个高层协议都基于一个或多个低层协议提供的服务。
1. 分层架构
为了展示TCP/IP协议族中的分层是如何在两台主机通信中的作用,我们假设使用一个由3个LAN(链接)构成的小网络,且链路层开关与每个LAN相连,同时这些链接都与同一个路由器相连。
假设A与B通信,源主机(A)需要在应用层创建消息并通过协议层向下发送,这样消息才能物理地发送至目标主机。目标主机需要在物理层接收消息并通过协议层向上发送至应用层。
路由器只有三个层,路由器仅用来路由,所以不需要传输层和应用层。由于路由器所连接的不同链接可能会有自己的链路层协议和物理层协议,所以路由器需要两个数据链路层和物理层。三个LAN连接成一个互联网络,它们都有自己唯一的地址,所以路由器只需要一个网络层。
交换机只在一个链接中传输数据,所以只需要一个数据链路层和一个物理层。
2. 地址和数据包名称
在应用层,通常使用名称(someorg.com)或邮箱地址来定义提供服务的站点;
在传输层,地址被称为端口号,用来在源和目标之间定义应用层程序,端口号各程序的本地地址来辨别多个运行的程序;
在网络层,这些地址在整个因特网范围下是全球化的,网络层地址独一无二的定义了该设备与因特网的连接;
在链路层,地址有时称MAC地址,是在本地定义的地址,每一个链路层地址在计算机网络(局域网或广域网)中定义一个特定的主机或路由器;
物理层由于数据交换的单位是位,所以没有地址。
6.2 应用层
应用层是协议的最高层,这一层的协议不向其他协议提供服务,直接收传输层的协议提供的服务。这意味着该层的协议可以轻易去除,只要新的协议能够使用传输层中的某个协议提供的服务,这个协议就可以添加到应用层上。
在逻辑连接下,应用层是两个应用程序间的通信。
6.2.1 应用层模式
1. 传统模式:客户机-服务器模式
在这种模式中,服务提供者是一个应用程序,叫作服务器进程,这个进程一直运行,等待另一个叫作客户端进程的应用程序通过因特网连接请求服务。通常一些服务器进程能够提供特定的服务,但是向服务器进程请求服务的用户会很多,所以服务器进程需要一直运行,