参考引用
- 计算机网络微课堂-湖科大教书匠
- 计算机网络(第7版)-谢希仁
1. 应用层概述
- 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分
-
早期基于文本的应用 (电子邮件、远程登录、文件传输、新闻组)
-
20 世纪 90 年代将因特网带入干家万户的万维网 WWW(使用超文本传送协议 HTTP)
-
当今流行的即时通信、P2P 文件共享及各种音视频应用
-
动态主机配置 DHCP
-
2. 客户/服务器方式 (C/S方式) 和对等方式 (P2P方式)
- 网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务
- 开发一种新的网络应用首先要考虑的问题就是:网络应用程序在各种端系统上的组织方式和它们之间的关系,目前流行的主要有以下两种
- 客户/服务器 (Client/Server,c/S) 方式
- 对等 (Peer-to-Peer,P2P) 方式
2.1 客户/服务器方式 (C/S方式)
- 客户和服务器是指通信中所涉及的两个应用进程,客户/服务器方式所描述的是进程之间服务和被服务的关系
- 客户是服务请求方,服务器是服务提供方,服务器总是处于运行状态,并等待客户的服务请求
- 服务器具有固定端口号 (例如 HTTP 服务器的默认端口号为 80)
- 运行服务器的主机也具有固定的 IP 地址
- C/S 方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是 C/S 方式
- 包括万维网 WWW、电子邮件、文件传输 FTP 等
- 基于 C/S 方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上
- 由于一台服务器计算机要为多个客户机提供服务,在 C/S 应用中,常会出现服务器计算机跟不上众多客户机请求的情况
- 为此,在 C/S 应用中,常用计算机群集 (或服务器场) 构建一个强大的虚拟服务器
2.2 对等方式 (P2P方式)
- 在 P2P 方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者
- 基于 P2P 的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑,它们通常位于住宅、校园和办公室中
- P2P 方式的最突出特性之一就是它的可扩展性
- 因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低
- P2P 方式具有成本上的优势,因为它通常不需要庞大的服务器设施和服务器带宽
3. 动态主机配置协议 DHCP
3.1 DHCP 的作用
- 通过 DHCP 自动获取网络配置信息
3.2 DHCP 工作过程
4. 域名系统 DNS
4.1 域名系统 DNS 作用
-
ping 的是 Web 服务器的域名,但 ping 命令实际上 ping 的是 Web 服务器的 IP 地址
- TCP/IP 体系采用 IP 地址进行寻址
- 即使不使用域名也可以通过 IP 地址来导址目的主机,但域名与 IP 地址相比, 便于人们记忆
-
因特网是否可以只使用一台 DNS 服务器?
- 这种做法并不可取。因为因特网的规模很大,这样的域名服务器肯定会因为超负荷而无法正常工作,而且一旦域名服务器出现故障,整个因特网就会瘫痪
- 早在 1983 年,因特网就开始采用层次结构的命名树作为主机的名字 (即域名),并使用分布式的域名系统 DNS
- DNS 使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高
- 由于 DNS 是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行
4.2 域名系统 DNS 结构
-
因特网采用层次树状结构的域名结构,域名的结构由若干个分量组成,各分量之间用 “点” 隔开,代表不同级别的域名
- 每一级的域名都由英文字母和数字组成,不超过 63 个字符,不区分大小写字母
- 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边
- 完整的域名不超过 255 个字符
-
域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构 ICANN 进行管理
-
示例
-
顶级域名 TLD(Top Level Domain)
- 国家顶级域名 nTLD
- 采用 ISO 3166 的规定。如 cn 表示中国,us 表示美国,uk 表示英国等
- 通用顶级域名 gTLD
- 最常见的通用顶级域名有七个,即:com (公司企业)、net (网络服务机构)、org (非营利性组织)、int (国际组织)、edu (美国教育结构)、gov (美国政府部门)、mil (美国军事部门)
- 反向域 arpa
- 用于反向域名解析,即 IP 地址反向解析为域名
- 国家顶级域名 nTLD
-
在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为 jp 的日本,将其教育和企业机构的二级域名定为 ac 和 co,而不用 edu 和 com。我国则将二级域名划分为以下两类
- 类别域名
- 共七个:ac (科研机构)、com (工、商、金融等企业)、edu (教育机构)、gov (政府部门)、net (提供网络服务的机构)、mil (军事机构) 和 org (非营利性组织)
- 行政区域名
- 共 34 个,适用于我国的各省、自治区、直辖市。例如:bi 为北京市、sh 为上海市、js 为江苏省等
- 类别域名
-
示例
这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点
4.3 域名服务器
- 域名和 IP 地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS 使用分布在各地的域名服务器来实现域名到 IP 地址的转换
- 域名服务器可以划分为以下四种不同的类型
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
4.4 域名解析的过程
5. 文件传送协议 FTP
-
文件传送协议 FTP (File Transfer Protocol) 是因特网上使用最广泛的文件传送协议
- FTP 提供交互式的访问,允许客户指明文件的类型与格式 (如指明是否使用ASCI码),并允许文件具有存取权限 (如访问文件的用户必须经过授权,并输入有效的口令)
- FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件.
-
文件传送协议 FTP 的应用
- FTP 的常见用途是在计算机之间传输文件,尤其是用于批量传输文件
- FTP 的另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的 Web 服务器
6. 万维网 WWW
-
万维网 WWW(World Wide Web) 并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用
-
万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网
-
万维网是欧洲粒子物理实验室的 Tim Berners-Lee 最初于 1989 年 3 月提出的
-
目前流行的浏览器
-
浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示
- 不同的浏览器内核对网页内容的解析也有不同,因此同一网页在不同内核的浏览器里的显示效果可能不同
- 网页编写者需要在不同内核的浏览器中测试网页显示效果
6.1 万维网应用
- 为了方便地访问在世界范围的文档,万维网使用统一资源定位符 URL 来指明因特网上任何种类 “资源” 的位置
- URL 的一般形式由以下四个部分组成
6.2 万维网文档
6.3 超文本传输协议 HTTP(HyperText Transfer Protocol)
-
HTTP 定义了浏览器 (即万维网客户进程) 怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器
-
HTTP/1.0 采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立 TCP 连接当收到响应后就立即关闭连接
- 每请求一个文档就要有两倍的 RTT 的开销。若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费 2RTT 的时间
- 为了减小时延,浏览器通常会建立多个并行的 TCP 连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重
-
HTTP/1.1 采用持续连接方式。在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个客户 (浏览器) 和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行
-
使用 Cookie 在服务器上记录用户信息
- 早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计。
- 现在,用户可以通过万维网实现各种复杂的应用,如网上购物、电子商务等。这些应用往往需要万维网服务器能够识别用户
Cookie 提供了一种机制使得万维网服务器能够 “记住” 用户,而无需用户主动提供用户标识信息。也就是说,Cookie 是一种对无状态的 HTTP 进行状态化的技术