应用层是最靠近用户的一层,参考模型中唯一的一层,不需为它的上层服务,向应用程序(TCP/IP模型外)提供网络通信。
网络应用程序可被分为两大类:
- 直接网络应用程序:Browser, e-mail, FTP, Telnet
- 间接网络应用程序:Word , resource manager, (通过 Redirector,置于应用中的一种透明的小软件,将服务转到直接网络应用)
下面介绍几种应用。
域名系统DNS
在互联网中,使用IP地址作为机器的绝对地址,是行不通的,有两个原因:
- 计算机可能常常地更换IP地址
- IP地址难于记忆
但是,我们的报文里面没有域名。ARPANET时代,有一个文件hosts.txt,列出了当时网络上所有的主机和它们对应的IP地址,现在则通过 DNS(Domain Name System) 去查询。
DNS的使用方法:
- 为了将一个名字映射为IP地址,应用程序调用一个叫解析器( resolver )的库过程,把名字作为参数传递给这个过程
- 解析器发送一个UDP分组给本地DNS服务器,它会负责查找该名字,然后将对应的IP地址返回给解析器
- 解析器返回结果给应用程序,然后应用程序即可开始工作了
DNS 名字空间:
- 互联网被分成200多个顶级域
- 每个域被分成若干子域,子域还可进一步划分
- 一个叶子节点可以只包含一台主机,也可以代表一个公司,包含上千台主机
顶级域有两种(需要向 ICANN 申请)
- 通用域( generic ):
.com
,.edu
- 国家域( country ):
.uk
,.cn
二级域名:只需要向顶级域名的注册机构申请缴费即可,比如 .edu.cn
,.gov.cn
域名:
- 每个域的名字是:从它向上到根(未命名)的路径,各个部分间用圆点隔开
- 域名可以是绝对的,也可以是相对的,绝对域名总是以圆点结束,比如
eng.sun.com.
- 相对域名必须在一定的上下文环境中被解释出来才有意义,从而唯一地确定其真实的含义
- 绝对域名和相对域名都引用了域名树中一个特定的节点,以及它下面的所有节点
- 域名是大小写无关的
- 各组成部分的名字最多有 63 个字符长,整个路径不超过 255 个字符
- 每个域自己控制它下面的域(子域)的划分
- 要创建一个新的域,创建者必须得到该新域的上级域的许可,一旦创建成功,该新域可以创建子域,而无需征得上级域的同意
- 域名遵循的是组织的边界而不是物理网络的边界
每个域,无论是单主机域还是顶级域,都可以有一组跟它相关联的资源记录( Resource Records ),一个资源记录包括5个部分:
- 域名(Domain name):指出这条记录适用于哪个域
- 生存期(Time to Live):指示该条记录的稳定程度
- 类别(Class):对于互联网信息,它总是 IN
- 类型(Type):指出了这是什么类型的记录(见下表)
- 值(Value):就是 IP 地址
域名服务器负责储存资源记录。整个互联网有很多域名服务器,但只有13 根域服务器,负责存储所有顶级域名的名字和IP,它们的名字分别是(a to m.rootservers.net)
域名解析的过程如下:
- 当一个解析器收到一个域名查询时,它将该查询传递给本地的一个域名服务器
- 如果待查询的域名落在该名字服务器的管辖范围内,它将返回权威资源记录(来自于管理该记录的权威机构,因此总是正确的)
- 如果被请求的域名是远程的,且本地没有关于它的信息,那么本地名字服务器向根域服务器发送一条查询此域的消息
- 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
- 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
- 优化方法:高速缓存—减少查询环节,提高效率
- 缺点:缓存中的内容不具有权威性
电子邮件系统通常由两部分组成:
- 用户代理(UA):让用户能够阅读和发送邮件
- 消息传输代理 (MTA):将消息从源端送到目标端
电子邮件消息格式:
- ASCII 电子邮件信息通常采用 RFC 822
- MIME – the Multipurpose Internet Mail Extensions,多用途互联网邮件扩展,可传输 非 ASCII 码(Base64 编码)
传输则使用 SMPT (Simple Mail Transfer Protocol),SMPT 只能传输ASCII消息(所以需要用 Base64编码),并且邮件是明文
在ISP的一台机器上运行一个消息传输代理(message transfer agent); 这台机器可以一天24小时运行,随时都可以接收邮件,然后用户通过 POP3 (Post Office Protocol Version 3) 或 IMAP (InternetMessage Access Protocol) 拷贝邮件。
WWW
万维网(World Wide Web)的组成部分:
- 资源,web页面,Resource (html)
- 统一资源定位器:URL(Uniform Resource Locators)
- 通信协议HTTP
客户端:
- 浏览器检查URL (读取浏览器的输入)
- 浏览器向 DNS 服务器询问域名的IP地址
- DNS 返回对应的 IP 地址
- 浏览器和Web服务器建立TCP 连接(在端口 80)
- 浏览器发送请求,要求获取文件products.html
- Web服务器返回被请求的文件
- TCP 连接被释放
- 浏览器解释显示下载到本地的文件
客户端:
- 接收来自客户的TCP连接
- 获取所需文件的名字
- 从本地磁盘上获取文件(静态页面)
- 将文件返回给客户
- 释放TCP连接
Cookie
- 一个小于4kB的命名串
- 当客户请求时,web服务器除了应答外,附送一个cookie,存储在客户机磁盘
- 客户再访问同一个web服务器时,同时发送cookie
- 服务器辨识出该用户,并得到它关心的一些信息
文件传输
- FTP:一种可靠的面向连接的服务,采用TCP在支持FTP的系统间传输文件,它支持双向二进制文件和ASCII文件传输(20端口负责控制,21端口传输数据)
- TFTP:一种无连接的不可靠的服务,采用UDP在支持TFTP的系统间传输文件。
远程登陆
Telnet:
- 本地用户在本地终端对远地系统进行远程登陆,该远程登陆的内部视图实际上是一个TCP连接(服务器端口:23);
- 将本地终端上的键盘输入逐键传到远地机;
- 将远地机输出送回本地终端
SSH 为 Secure Shell,在22端口,为远程登陆提供安全的传输。