文章目录
- 应用层协议的特点
每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层协议就是规定应用进程在通信时所遵循的协议。
应用层的许多协议都是基于客户服务器方式。客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方
1. 域名系统 DNS
1.1 域名系统概述
- 许多应用层软件经常直接使用域名系统 DNS。互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
1.2 互联网的域名结构
- 互联网采用了层次树状结构的命名方法。
- 域名的结构由标号序列组成,各标号之间用点隔开:… . 三级域名 . 二级域名 . 顶级域名
- 域名只是个逻辑概念
- 域名只是个逻辑概念,并不代表计算机所在的物理地点。
- 域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。
- 顶级域名:
- 国家顶级域名 nTLD,例如:
.cn 表示中国,
.us 表示美国,
- 国家顶级域名 nTLD,例如:
- 互联网的域名空间:
1.3 域名服务器
- 一个域名服务器所负责管辖的(或有权限的)范围叫做区 (zone)。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。
- 区的不同划分方法举例
- 根域名服务器:
- 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器
- 在互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)。
- 根域名服务器共有 13 套装置,不是 13 个机器。
- 这些根域名服务器相应的域名分别是:
a.rootservers.net
b.rootservers.net
…
m.rootservers.net - 到2016年2月,全世界已经在 588 个地点安装了根域名服务器,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。
- 根域名服务器并不直接把域名直接转换成 IP 地址。
- 顶级域名服务器:
- 顶级域名服务器(即 TLD 服务器)负责管理在该顶级域名服务器注册的所有二级域名。
- 权限域名服务器:负责一个区的域名服务器。
- 本地域名服务器:每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器。这种域名服务器有时也称为默认域名服务器。
- 提高域名服务器的可靠性:
- DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。
- 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性(主从结构)
- 域名的解析过程
- 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
- 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
- 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
- 名字的高速缓存:
- 每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。可大大减轻根域名服务器的负荷,使互联网上的 DNS 查询请求和回答报文的数量大为减少。
2. 文件传送协议
2.1 FTP 概述
文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。
- FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
2.2 FTP 的基本工作原理
- FTP特点(不考):FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
- NFS 采用另一种思路(不考):NFS 可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。
3. 远程终端协议 TELNET(略)
4. 万维网 WWW
4.1 万维网概述
- 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
- 万维网是一个大规模的、联机式的信息储藏所。
- 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
- 这种访问方式称为“链接”。
- 万维网提供分布式服务
- 万维网的工作方式
- 万维网以客户 - 服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
- 万维网以客户 - 服务器方式工作。
- 怎样标志分布在整个互联网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。
使每一个文档在整个互联网的范围内具有唯一的标识符 URL。
- 使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。
- 用何协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- 怎样使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
- 怎样使用户能够很方便地找到所需的信息?
- 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
4.2 统一资源定位符 URL
4.2.1 URL 的格式
- URL 的一般形式
- 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
- URL 的一般形式是:
- <主机> 是存放资源的主机在互联网中的域名
- HTTP 的默认端口号是 80,通常可省略。
4.3 超文本传送协议 HTTP
1. HTTP 的操作过程
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。从层次的角度看,HTTP 是面向事务的 (transaction-oriented) 应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
- 万维网工作过程:
- HTTP 的主要特点:
- HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
- HTTP 是面向事务的客户服务器协议。
- HTTP 1.0 协议是无状态的 (stateless)。不认识对方的改变。
- HTTP/1.1 协议使用持续连接 (persistent connection)。万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
2. 代理服务器
- 使用高速缓存可减少访问互联网服务器的时延
- 使用高速缓存的情况
- (1) 浏览器访问互联网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文。
- (2) 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。
- (3) 否则,高速缓存就代表发出请求的用户浏览器,与互联网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。
- (4) 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。
- (5) 高速缓存收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。
3. HTTP 的报文结构
-
HTTP 有两类报文:
- 请求报文——从客户向服务器发送请求报文。
响应报 文——从服务器到客户的回答。
- 请求报文——从客户向服务器发送请求报文。
-
HTTP报文结构
-
状态码都是三位数字
- 1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。
- 1xx 表示通知信息的,如请求收到了或正在进行处理。
4. 在服务器上存放用户的信息
- 万维网站点可以使用 Cookie 来跟踪用户。
Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。
4.4 万维网的文档
4.4.1 HTML
- XML:XML (Extensible Markup Language) 是可扩展标记语言,它和 HTML 很相似。
但 XML 的设计宗旨是传输数据,而不是显示数据(HTML 是为了在浏览器上显示数据)。
XML 不是要替换 HTML,而是对 HTML 的补充。
4.4.2 动态万维网文档
- 静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。
5. 电子邮件
5.1 电子邮件概述
- 电子邮件的组成:三个主要构件
- 用户代理 UA (User Agent):
- 用户与电子邮件系统的接口。又被称为电子邮件客户端软件。
基本功能:撰写、显示、处理和通信。
- 用户与电子邮件系统的接口。又被称为电子邮件客户端软件。
- 邮件服务器 (Mail Server):
- 又被称为邮件传输代理。
功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。
按照客户 – 服务器方式工作。
在发送和读取邮件时使用两个不同的协议:SMTP,POP3。- 邮件发送和读取使用不同的协议协议。
简单邮件发送协议 SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。
邮局协议 POP3:用于用户代理从邮件服务器读取邮件。
- 邮件发送和读取使用不同的协议协议。
- 邮件服务器必须能够同时充当客户和服务器。
SMTP和POP3(或IMAP)都是使用TCP连接来传送邮件的,目的是为了可靠地传送邮件。
- 又被称为邮件传输代理。
5.2 简单邮件传送协议SMTP
- SMTP 规定了在两个相互通信的 SMTP 进程交换信息的方法。
SMTP 使用客户–服务器方式。
SMTP基于 TCP 实现客户与服务器的通信。 - SMTP 通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
5.3 电子邮件的信息格式
- 一个电子邮件分为信封和内容两大部分。
- RFC 5322 只规定了邮件内容中的首部 (header) 格式,而对邮件的主体 (body) 部分则让用户自由撰写。
- 邮件内容的首部:
- “To:” 后面填入一个或多个收件人的电子邮件地址。用户只需打开地址簿,点击收件人名字,收件人的电子邮件地址就会自动地填入到合适的位置上。
- “Subject:” 是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件。
- “Cc:” 表示应给某某人发送一个邮件副本。
- “From” 和 “Date” 表示发信人的电子邮件地址和发信日期。
- “Reply-To” 是对方回信所用的地址。
5.4 邮件读取协议 POP3 和 IMAP
-
两个常用的邮件读取协议:
- POP3:邮局协议 (Post Office Protocol) 第3个版本
- IMAP:网际报文存取协议 (Internet Message Access Protocol)(更常用)
-
IMAP 与 POP3 比较:
-
操作位置 操作内容 IMAP POP3 收件箱 阅读、标记、移动、删除邮件等 客户端与邮箱更新同步 仅在客户端内 发件箱 保存到已发送 客户端与邮箱更新同步 仅在客户端内 创建文件夹 新建自定义的文件夹 客户端与邮箱更新同步 仅在客户端内 草稿 保存草稿 客户端与邮箱更新同步 仅在客户端内 垃圾文件夹 接收并移入垃圾文件夹的邮件 支持 不支持 广告邮件 接收并移入广告邮件夹的邮 支持 不支持
-
-
三协议区别:
- 邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 完全不同。
发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。
- 邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 完全不同。
5.6 通用互联网邮件扩充 MIME
- SMTP 有以下缺点:
- SMTP 不能传送可执行文件或其他的二进制对象。
SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。
SMTP 服务器会拒绝超过一定长度的邮件。
- SMTP 不能传送可执行文件或其他的二进制对象。
5.6.1 MIME概述
通用互联网邮件扩充 MIME 并没有改动 SMTP 或取代它。
MIME 的意图是继续使用目前的 [RFC 822] 格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。
5.6.2 内容类型
-
MIME 着标准规定 Content-Type 说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用“/”分开。
MIME 标准原先定义了 7 个基本内容类型和 15 种子类型。
MIME允许发件人和收件人自己定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用的内容类型选择的名字要以字符串 X-开始。 -
MIME Content-Type 说明中的类型及子类型
-
内容类型 子类型举例 说明 text(文本) plain, html, xml, css 不同格式的文本 image(图像) gif, jpeg, tiff 不同格式的静止图像 audio(音频) basic, mpeg, mp4 可听见的声音 video(视频) mpeg, mp4, quicktime 不同格式的影片 model(模型) vrml 3D模型 application(应用) octet-stream, pdf, javascript, zip 不同应用程序产生的数据 message(报文) http, rfc822 封装的报文 multipart(多部分) mixed, alternative, parallel, digest 多种类型的组合
-
5.6.3 内容传送编码(Content-Transfer-Encoding)
编码方法 | 说明 |
---|---|
7bit | 7 位 ASCII 编码,每行不能超过 1000 个字符(包括回车和换行)。缺省编码方法。 |
8bit | 8 位非 ASCII 编码,每行不能超过 1000 个字节(包括回车和换行)。 |
Binary | 8 位非 ASCII 编码,任意长度的字节串。 |
Base64 | 将任意长度的字节串转换为用 7 位 ASCII 编码表示的字符串。可用于二进制和非文本数据(表情包)的编码。 |
Quoted-printable | 将任意长度的字节串转换为 ASCII 编码表示的字符串。可用于二进制和非文本数据的编码。 |
6. 动态主机配置协议 DHCP
-
在协议软件中,给协议参数赋值的动作叫做协议配置。
一个协议软件在使用之前必须是已正确配置的。
连接到互联网的计算机的协议软件需要配置的参数包括:
IP 地址
子网掩码
默认路由器的 IP 地址
域名服务器的 IP 地址 -
DHCP:
- 互联网广泛使用的动态主机配置协议 DHCP 提供了即插即用连网 的机制。这种机制允许一台计算机加入新的网络和获取 IP 地址,而不用手工配置。
- DHCP给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。
-
DHCP工作方式
- DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。
- 需要IP地址的主机向DHCP服务器广播发送发现报文 (DHCPDISCOVER) 。
- DHCP服务器回答提供报文 (DHCPOFFER),表示“提供”IP地址等配置信息。
- DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。
-
DHCP中继代理以单播方式转发发现报文
-
租用期:DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期。 租用期的数值应由 DHCP 服务器自己决定。DHCP 客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求。