计算机网络(第8版)-第6章 应用层

6.1 域名系统 DNS

++应用层的许多协议都是基于客户服务器方式。即使是 P2P 对等通信方式++ ,实质上也是一种特殊的客户服务器方式。这里再明确一下,客户 (client)和服务器 (server)都是指通信中所涉及的两个应用进程 。客户服务器方式所描述的是进程之间服务和被服务的关系。这里最主要的特征就是:++客户是服务请求方,服务器是服务提供方++

6.1.1 域名系统概述

6.1.2 互联网的域名结构

6.1.3 域名服务器

图6-3 树状结构的 DNS 域名服务器

从图6-3 可看出,互联网上的 DNS 域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为以下四种不同的类型:

(1)根域名服务器 (root name server):根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。++虽然互联网的根域名服务器总共只有 13 个域名,但根域名服务器并非仅由 13 台机器所组成++(如果仅仅依靠这 13 台机器,根本不可能为全世界的互联网用户提供令人满意的服务)。

(2)++顶级域名服务器(++ 即 TLD 服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。

(3)权限域名服务器:这就是前面已经讲过的负责一个区的域名服务器。

(4)本地域名服务器(local name server):本地域名服务器并不属于图6-3 所示的域名服务器层次结构,但它对域名系统非常重要。

下面简单讨论一下域名的解析过程。这里要注意两点。

第一,主机向本地域名服务器的查询一般都采用递归查询(recursive query)。

第二,++本地域名服务器向根域名服务器的查询通常采用迭代查询++(iterative query)。

6.2 文件传送协议

6.2.1 FTP 概述

++基于 TCP 的 FTP++ 和*++基于 UDP 的简单文件传送协议 TFTP++* ,它们都是文件共享协议中的一大类,即**复制整个文件,**其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。

6.2.2 FTP 的基本工作原理

图6-5 FTP 使用的两个 TCP 连接

++当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知++ ++端口 21++(用作控制连接的) ,同时还要告诉服务器自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己++传送数据的熟知端口 20++(用于数据传输)与客户进程所提供的端口号建立数据传送连接。

6.2.3 简单文件传送协议 TFTP

6.3 远程终端协议 TELNET

6.4 万维网 WWW

6.4.1 万维网概述

万维网是一个分布式的超媒体 (hypermedia)系统,它是++超文本++ (hypertext)系统的++扩充++。

万维网以客户服务器方式工作。上面所说的浏览器 就是在用户主机上的万维网++客户程序++ 。万维网文档所驻留的主机则运行服务器程序,因此这台主机也称为万维网服务器。 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档 。在一个客户程序主窗口显示出的万维网文档称为页面(page)。

从以上所述可以看出,万维网必须解决以下几个问题:

(1)++怎样标志分布在整个互联网上的万维网文档++?

(2)++用什么样的协议来实现万维网上的各种链接++?

(3)怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?

(4)怎样使用户能够很方便地找到所需的信息?

为了解决第一个问题,万维网使用++统一资源定位符 URL++ (Uniform Resource Locator)++来标志万维网上的各种文档++ ,并使每一个文档在整个互联网的范围内具有唯一的标识符 URL。为了解决上述的第二个问题,就要使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是++超文本传送协议 HTTP++ (HyperText Transfer Protocol)。 HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。为了解决上述的第三个问题,万维网使用++超文本标记语言 HTML++(HyperText Markup Language),使得万维网页面的设计者可以很方便地用链接从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的主机屏幕上将这些页面显示出来。 最后,用户可使用搜索工具在万维网上方便地查找所需的信息。

6.4.2 统一资源定位符 URL

1. URL 的格式

++统一资源定位符 URL++ ++是用来表示从互联网上得到的资源位置和访问这些资源的方法++。

++现在最常用的协议就是 http(超文本传送协议 HTTP),其次是 ftp(文件传送协议 FTP)++。

2. 使用 HTTP 的 URL

URL 的"协议"和"主机名"部分,字母不区分大小写。但"路径"中的字符有时要区分大小写

6.4.3 超文本传送协议 HTTP

1. HTTP 的操作过程

协议 HTTP/1.0 的++主要缺点,就是每请求一个文档就要有两倍 RTT 的开销++。

协议 HTTP/1.1 较好地解决了这个问题,它使用了持续连接 (persistent connection)。所谓持续连接就是万维网++服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文++ 。协议 HTTP/1.1 的持续连接有两种工作方式,即非流水线方式 (without pipelining)和流水线方式(with pipelining)。

协议 HTTP/2 是协议 HTTP/1.1 的升级版本,其 HTTP 方法/状态码/语义等都没有改变,其主要特点如下:

(1)++HTTP/2 把服务器发回的响应变成可以并行地发回(使用同一个 TCP 连接)++,这就大大缩短了服务器的响应时间。

(2)++HTTP/2 允许客户复用 TCP 连接进行多个请求++,这样就节省了 TCP 连续多次建立和释放连接所花费的时间。

(3)++HTTP/2 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率++。

HTTP/2 是向后兼容的。

2. 代理服务器

3. HTTP 的报文结构

4. 在服务器上存放用户的信息

在 RFC 6265 中对 Cookie 进行了定义,++规定万维网站点可以使用 Cookie 来跟踪用户++。

6.4.4 万维网的文档

1. 超文本标记语言 HTML

++超文本标记语言 HTML (HyperText Markup Language)++ 就是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。但请注意, HTML 并不是应用层的协议,它只是万维网浏览器使用的一种语言。

2. 动态万维网文档

上面所讨论的万维网文档只是万维网文档中最基本的一种,即所谓的静态文档 (staticdocument)。++静态文档在文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变++。

++动态文档(dynamic document)是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建的++。

3. 活动万维网文档

6.4.5 万维网的信息检索系统

在万维网中用来进行搜索的工具叫做搜索引擎 (search engine)。搜索引擎的种类很多,但大体上可划分为两大类,即全文检索 搜索引擎和分类目录搜索引擎。

++全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件++ (例如一种叫做"蜘蛛"或"网络机器人"的 Spider 程序)++到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站,像蜘蛛爬行一样++。

++分类目录搜索引擎并不采集网站的任何信息++,而是利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。因此,分类目录搜索也叫做分类网站搜索。

6.4.6 博客和微博

1. 博客

2. 微博

++每条微博字数最初限制为 140 英文字符++,但现在已增加了"长微博"的选项,可输入更多的字符。

6.4.7 社交网站

6.5 电子邮件

6.5.1 电子邮件概述

一个电子邮件系统应具有图6-16 所示的三个主要组成构件,这就是用户代理邮件服务器 ,以及邮件发送协议(如 SMTP)和邮件读取协议(如 POP3)。POP3 是邮局协议(Post Office Protocol)的版本3。凡是有 TCP 连接的,都经过了互联网,有的甚至可以跨越数千公里的距离。这里为简洁起见,没有画出网络。在互联网中,邮件服务器的数量是很大的。正是这些邮件服务器构成了电子邮件基础结构的核心。在图6-16 中为了说明问题,仅仅画出了两个邮件服务器。

图6-16 电子邮件的最主要的组成构件

互联网上有许多邮件服务器 可供用户选用,邮件服务器24小时不间断地工作,并且具有大容量的邮件信箱。邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器按照客户服务器方式工作。邮件服务器需要使用两种不同的协议 。++一种协议用于用户代理向邮件服务器发起邮件或在邮件服务器之间发送邮件,如 STMP 协议,而另一种协议用于用户代理从邮件服务器读取邮件 ,如邮局协议 POP3++。

6.5.2 简单邮件传送协议 SMTP

6.5.3 电子邮件的信息格式

6.5.4 邮件读取协议 POP3 和 IMAP

6.5.5 基于万维网的电子邮件

6.5.6 通过互联网邮件扩充 MIME

1. MIME 概述

于是在这种情况下就提出了通用互联网邮件扩充 MIME [RFC 2045-2049,前三个文档是草案标准]。++MIME 并没有改动或取代 SMTP。MIME 的意图是继续使用原来的邮件格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则++。

MIME 主要包括以下三部分内容:

(1)5 个新的邮件++首部字段++,它们可包含在原来的邮件首部中。这些字段提供了有关邮件的主体信息。

(2)定义了许多邮件内容的++格式++,对多媒体电子邮件的表示方法进行了标准化。

(3)定义了++传送编码++,可对任何内容格式进行转换,而不会被邮件系统改变。

2. 内容传送编码

3. 内容类型

6.6 动态主机配置协议 DHCP

连接到互联网的计算机的协议软件需要配置的项目包括:

(1)++IP 地址++;

(2)++子网掩码++;

(3)++默认路由器的 IP 地址++;

(4)++域名服务器的 IP 地址++。

DHCP 使用客户服务器方式。需要 IP 地址的主机在启动时就++向 DHCP 服务器广播发送发现报文++(DCHPDISCOVER)(将目的 IP 地址置为全 1,即255.255.255.255),这时该主机就成为 DHCP 客户。

++当 DHCP 中继代理收到主机 A 以广播 形式发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答++。

图6-18 DHCP 中继代理以单播方式转发发现报文

图6-19 DHCP 协议的工作过程

下面按照图6-19 中的注释编号(①至⑨)进行简单的解释。

②++DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文++。

6.7 简单网络管理协议 SNMP

6.7.1 网络管理的基本概念

图6-20 网络管理的一般模型

SNMP 的网络管理由三个部分组成,即 SNMP 本身、管理信息结构 SMI (Structure of Management Information)和管理信息库 MIB(Management Information Base)。

6.7.2 管理信息结构 SMI

6.7.3 管理信息库 MIB

6.7.4 SNMP 的协议数据单元和报文

6.8 应用进程跨越网络的通信

6.8.1 系统调用和应用编程接口

6.8.2 几种常用的系统调用

6.9 P2P 应用

6.9.1 具有集中目录服务器的 P2P 工作方式

6.9.2 具有全分布式结构的 P2P 文件共享程序

6.9.3 P2P 文件分发的分析

6.9.4 在 P2P 对等方中搜索对象

本章的重要概念

习题

相关推荐
吃土少女古拉拉1 小时前
什么是计算机网络
计算机网络·学习笔记
hakesashou1 小时前
Python中常用的函数介绍
java·网络·python
C++忠实粉丝2 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
九州ip动态2 小时前
做网络推广及游戏注册为什么要换IP
网络·tcp/ip·游戏
Estar.Lee2 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
蝶开三月2 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
G丶AEOM2 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
儒道易行2 小时前
【DVWA】RCE远程命令执行实战
网络·安全·网络安全
Koi慢热3 小时前
路由基础(全)
linux·网络·网络协议·安全
hzyyyyyyyu5 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全