一、基本介绍
应用层处于计算机网络体系结构的最顶层,如下图所示:
1. 互联网应用技术发展的3个阶段
- 基本的网络服务
- TELNET:一般用于远程与服务器进行命令交互
- E-mail:电子邮件
- FTP:文件传输
- HTTP:Web相关传输
- 基于Web的网络服务
- Web
- 电子商务
- 电子政务
- 远程教育
- 新兴网络服务
- 网络电话
- 网络电视
- 博客
- 网络游戏
2. 端系统的相关概念
- 端系统(end system):网络边缘部分的用户设备。
- 端系统运行FTP应用程序、E-mail应用程序、Web应用程序、或P2P文件共享程序、即时通信程序等的计算机
- 未来网络应用中,端系统的类型将从计算机扩展到所有能够接入互联网的设备(如PDA、移动电话、数码相机、电视机、无线传感器网络的传感器结点,以及各种家用电器)
3. 应用程序体系结构的分类
一般分成三类:
- 客户机/服务器结构(Client/Server, C/S)
- 点对点结构(Peer to Peer, P2P)
- 混合结构(Hybrid)
3.1 CS模型(客户端/服务器)
示意图如下:
客户端:发起同服务器的联系 (“speaks first”)。一般都从服务器请求服务。(服务消费者)
例如:
- Web:客户端由浏览器实现
- e-mail:通过OE、Foxmial实现
服务器:向客户端提供所请求的服务(服务提供者)
例如:
- Web 服务器发送被请求的 Web 页面
- 邮件服务器传递 e-mail
两者的特点:
- 客户端
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP(IP不是稳定的)
- 不会与其它客户机直接通信
- 服务器
- 不间断提供服务
- 永久性访问地址/域名
- 利用大量服务器实现可扩展性
采用C/S模式原因:网络资源分布的不均匀性
网络中计算机系统的类型、硬件结构、功能都存在着很大的差异
从软件角度来看,大型应用软件都是安装专用服务器中,合法用户需要通过互联网访问服务器,使用网络资源
从信息资源角度来看,数据、文本、图像、音视频资源存放在服务器中,合法用户可以通过互联网访问这些信息资源。这样做对保证信息资源使用的合法性与安全性,以及保证数据的完整性与一致性【了解即可】
3.2 P2P模型
P2P模型下相当于交互的两个用户主机分别既可以作为客户端接收数据也可以作为服务器发送数据,因而具备以下特点:
- 没有永远在线的服务器
- 任意端系统/节点可以通信
- 节点间歇性接入网络
- 节点可能改变IP(用户IP可能改变)
优点:高度可伸缩,灵活
缺点:难于管理
补充特征:
网络结点之间采取对等方式,通过直接交换信息共享计算机资源和服务。
应用方向:实时通信、协同工作、内容分发、分布式计算等领域。
- 通信模式:网络中对等结点之间直接通信的能力。
- 基本特征:互联网中由对等结点组成的一种动态的逻辑网络。
- 实现技术:实现对等结点之间直接通信所需设计的协议、软件等
P2P网络并不是一个新的网络结构,而是一种新的网络应用模式
3.3 混合结构
可以将CS和P2P模型混合使用,例如Napster的例子:
- 文件传输采用P2P
- 文件的搜索采用C/S
- 每个节点向*服务器登记自己的内容
- 每个节点向*服务器提交查询请求,查找感兴趣的内容
4. 应用层协议
5. 网络应用对传输层协议的选择
可以根据需求选择TCP协议或UDP协议,两者的特点如下:
各种网络应用以及它们使用的应用层和传输层协议如下所示:
应用类型 | 应用层协议 | 传输层协议 |
---|---|---|
SMTP | TCP | |
TELNET(主机远程登录) | TELNET | TCP |
Web | HTTP | TCP |
FTP(文件传输) | FTP | TCP |
DNS(域名解析) | DNS | 一般为UDP |
流媒体 | Real Network | 一般为UDP |
VolP(IP电话) | Net2phone | UDP |
二、Web服务与HTTP协议
1. Web服务的基本概念
超文本传输协议HTTP:Web服务应用层协议,超文本在浏览器与Web服务器之间的传输协议。
超文本标记语言HTML:文档中的特殊数据格式,一个文档可以链接到另一个文档
统一资源定位符URL:标识Web中的资源,以便于用户查找
超文本与超媒体:在Web系统中,信息按超文本方式组织;超媒体进一步扩展了超文本所链接的信息类型
超文本的核心是超链接,原先web中超链接一般都是指向一个新的html文件,但超媒体允许链接到图片、音频和视频等更多种信息类型。
超文本:
超媒体:
Web工作模式:C/S模式(浏览器:客户端 -> 服务器)
2. HTTP协议
2.1 URL与信息资源定位
-
提供Internet上资源定位、访问方式的一种抽象表示方法
-
由三部分组成:协议类型、主机名、路径及地址
-
通过Web浏览器,URL不仅能漫游Web网,也能用于FTP、E-mail和TELNET等
-
URL格式
访问方式://服务器域名[:端口号]/路径/文件名
- URL左边的常见协议类型有:
- http:超文本传输协议(HTTP)
- ftp:文件传输协议(FTP)
- telnet:交互式会话
- mailto:电子邮件地址
- HTTP的默认端口号是80(可以省略)
- 路径/文件名用于直接指向服务器中的某一个文件
- 省略路径和文件名,则URL就指向了Internet上的某个主页
2.2 HTTP工作机制
HTTP使用面向连接的TCP协议,客户端Web浏览器需要与Web服务器之间建立一个TCP连接。
客户端与服务器进行HTTP通信的过程如下:
- 客户端与服务器端建立TCP连接
- 浏览器进程发送HTTP请求报文,并等待接收应答报文
- Web服务器接收到HTTP请求报文,并发送应答报文
- 浏览器接收到完整的HTTP应答后关闭TCP连接
TCP提供可靠服务保证客户进程发送的HTTP请求正确到达服务器端。服务器进程发送HTTP应答报文也正确达到客户端。
Web服务器发送HTTP应答报文时,不保存浏览器的任何请求状态信息(属于无状态协议)
2.3 非持续连接和持续连接
非持续连接(HTTP1.0)
持续连接(HTTP1.1)
持续连接时,服务器在发出响应后保持该TCP连接,相同的客户端进程与服务器端之间的后续报文都通过该连接传送
在持续连接工作模式下,又存在非流水线和流水线模式,如下图所示:
2.4 HTTP的报文格式
HTTP请求报文
如下所示:
常见的请求方法有:GET、POST、PUT、DELETE、HEAD等
HTTP响应报文
状态码及其表达含义:
响应报文中常见的状态行:
三、电子邮件
1. 电子邮件系统的主要功能
2. 四个重要组件
包括:
- 用户代理
- 邮件服务器
- 邮件传输协议:SMTP/MIME
- 邮件存储访问协议:POP、IMAP
①用户代理
- 写作,编辑,阅读邮件
- 外发邮件
- 接收的报文存储在邮件服务器中
例如我们常使用QQ邮箱、Google的Gmail等等。
②邮件服务器
- 邮箱包含了收到的用户邮件 (尚未被阅读)
- 报文队列包含了外发的邮件报文
- SMTP协议用在邮件服务器之间发送邮件
- 客户端:将邮件发送到邮件服务器【SMTP协议】
- “服务器”:接收和转发邮件
- 对应于物理世界中的邮局
如下图所示:
③邮件传输协议
客户端到邮件服务器、邮件服务器之间简单邮件传输协议SMTP。
而SMTP只能完成比较简单的ASCII文本传输,对于图片、链接等富文本需要结合使用MIME协议进行编码后传输:
④邮件存储访问协议
- 邮件服务器 -> 客户端
- 邮政协议第3版POP-3
- Internet邮件访问协议第4版IMAP-4
3. 电子邮箱格式
4. 邮件报文传输过程
- 用户代理先将用户编写好的邮件信息通过SMTP协议传输到发送方邮件服务器中
- 发送方邮件服务器利用SMTP协议将邮件通过互联网发送到接收方邮件服务器中,中间邮件传输过程都是使用SMTP协议进行传输的(运输层为TCP协议)
- 邮件接收方利用POP3协议或IMAP4协议从其邮件服务器取回邮件到其邮件代理中,以供接收方阅读邮件
这样,便完成了从发送方到接收方的邮件传送过程。
5. SMTP协议
SMTP命令和应答:
邮箱报文的封装:
命令交互方式报文的传送:
终止连接:
6. 存储访问协议POP3和IMAP4
7. 基于Web的电子邮件
- 20世纪90年代中期,Hotmail开发了基于Web的电子邮件系统
- 目前几乎所有门户网站都提供基于Web的电子邮件,使用Web浏览器收发邮件
- 基于Web电子邮件,用户代理就是Web浏览器,用户与远程邮箱服务器之间的通信使用的是HTTP协议,而不是POP3或IMAP4协议
- 邮件服务器之间的通信仍然使用SMTP协议
四、文件传输服务与FTP、TFTP协议
1. 基本概念
FTP文件服务:
- FTP允许用户将文件从一台计算机保证可靠传输到另一台计算机
- 使用FTP服务,用户可以方便地访问网络文件资源。不需要对文件进行转换,服务效率高
FTP的工作过程:
采用典型的C/S模式,传输层选择TCP协议
FTP服务器:提供FTP服务的计算机
匿名FTP服务:
- 在FTP服务器上建立一个公开账户(通常为Anonymous),并赋予该账户访问公共目录的权限,以便提供免费的服务
- 要访问匿名服务FTP,不需要输入用户名与用户密码(也可以用“Anonymous”作为用户名,用“Guest”作为密码
- 匿名FTP服务只允许用户下载文件,不允许用户上传文件
TFTP协议:(对比FTP)
- 对传输可靠性的要求。FTP面向连接、可靠;TFTP简洁、采用UDP
- 协议的命令集。FTP制定发送/接收文件、列出目录与删除文件等复杂命令;TFTP协议只定义文件发送/接收基本命令
- 数据表示方式。FTP指定数据类型,TFTP协议只允许传输ASCII码或二进制文本文件
- 用户鉴别。FTP有登录用户鉴别功能,TFTP不提供用户鉴别功能
FTP特点:
- 交互式用户界面:利用FTP命令方便与服务器对话
- 对文件格式说明:允许指定数据类型和格式(文本方式、二进制方式)
- 权限控制:文件传输之前,向服务器提供登录用户名和口令
2. 使用FTP协议进行文件传输
步骤:
- FTP会话之前,FTP客户端使用临时端口号(如5100)与服务器端熟知端口号(21)之间连接一个控制连接。
- 服务器端要求客户端发送用户名和口令。
- 开始发起与客户端的数据连接。客户端使用临时端口号(如5000)与服务器端熟知端口号20之间建立数据连接。
- 文件下载(或上传)。
- 数据连接上文件传输结束,关闭数据连接。
需要注意:FTP回话过程中控制连接是持续的,而数据连接是非持续的,例如我需要下载3个文件,那么我在下载完第一个文件后对应的数据连接即关闭了,当我要下载第二个文件时又重新建立一个数据连接进行数据传输。
五、DNS服务
1. 基本概念
DNS的作用:将主机域名转换成IP地址
如下图所示:
因此DNS服务是实现互联网应用层协议的基础。
DNS系统的功能
- 名字空间定义:系统提供所有可能出现的结点命名的名字空间
- 名字注册:为主机分配在全网具有唯一性的名字
- 名字解析:提供有效的主机名与网络IP地址转换机制
域名结构
域名空间与资源记录
-
按照树形名字空间结构,域名相关数据技术规范建立
-
域名空间树上每个结点和叶子用一组信息命名
-
域名查询就是从某个域的域名集合中抽取某类特殊信息的过程
DNS系统3个基本构件:域名数据库、服务、用户