
应用层面向用户,由用户输出信息,应用层根据数据来源使用不同协议传递给下层(传输层)。
(一)网络应用模型
客户端与服务器端之间如何连接?它们之间的连接方式只有一种吗?其实它们之间的连接方式有两种——C/S模型和P2P模型,但是更为常见的是前者。
1. C/S模型
C:client,发出请求的一方;
S:sever,接收请求的一方;
工作流程是:服务器方处于接收请求的状态,客户端发出服务请求,并且等到接收结果,服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户端。
它们之间形成C/S模型,如图:

2. P2P模型
在C/S模型中,如果客户端向服务器发出过多请求,会导致网络拥塞。如果每个计算机既是客户机又是服务器,那么在两个对等的计算机之间就可以传输数据,这就是P2P模型。

两个模型之间的比较:

(二)应用层协议
应用层中为用户提供很多应用服务,不同应用服务之间往往使用不同协议对数据进行传输。常见的应用层协议有:DNS、 FTP、STMP、POP3和HTTP。
1. 域名系统(DNS)
域名系统是一个关于主机名和IP地址的映射表。人们不善于记忆IP地址,如果用户通过IP地址向一台主机请求数据,那么每次访问前都得进行查IP地址工作,相反,如果IP地址以人们善于记住的形式表现,那么省去查IP地址工作。而这个查IP地址的工作则交给DNS来实现。
DNS使用C/S模型,运行在UDP之上,包括3个部分:层次域名空间、域名服务器和解析器。
-
层次域名空间:域名采用层次树状结构命名,域可以划分为子域,子域也可再划分,这些方便DNS查找。
image.png
-
域名服务器:由于域名以树状结构划分,因此域名服务器以联机分布式的数据库系统设计,每一层域名存储在由特定域名服务器上服务器。
image.png
-
解析器:解析器将域名映射成为IP地址或者把IP地址映射成域名。有两种解析过程:递归查询和递归与迭代相结合查询。
image.png
2. 文件传输协议(FTP)
文件传输协议适合在异构网中的任意计算机之间传送文件,因此使用比较广泛。每次进行交互访问时,允许客户指明文件的类型与格式,允许文件具有存取权利。
FTP采用C/S模型,使用TCP进行传输,可以同时为多个客户进程提供服务。为了保证同时处理多个用户的请求,它在工作时使用两个并行的TCP连接——控制连接和数据连接。
- 控制连接:监听21号端口,等待客户连接,每个控制信息都是以ASCII格式传输,当控制连接打开后,在整个会话期间会一直保持打开状态。
-
数据连接:当收到客户端的文件传输请求后,便创建数据连接以便数据接收,当传送完毕后断开该连接。
image.png
3. 电子邮件(STMP和POP3)
因特网中常用电子邮件来进行信息传递。它的组成包括:用户代理、邮件服务器和协议。
- 用户代理:用户与电子邮件系统的接口,为用户提供编写邮件功能的应用程序,如Outlook;
- 邮件服务器:为用户提供邮件收发服务,并提供邮件传送情况;
- 协议:分别采用两个协议对邮件进行收发,即SMTP和POP3协议。


1. SMTP
SMTP用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,采用的是push的通信方式,也就是邮件客户端主动将邮件push到SMTP服务器端。
为了保证邮件安全性,它采用TCP连接,端口号为25。它有三个通信阶段:
- 连接建立
- 邮件传递
- 连接释放
2. POP3
POP3用于用户代理从邮件服务器读取邮件。采用的是pull的通信方式,用户代理从邮件服务器中pull邮箱中的邮件。它也使用C/S的工作方式,使用TCP传递,端口号为110.
4. 万维网(WWW)
通过万维网可以随意登录各类网站。万维网由三个部分组成:统一资源定位符(URL)、超文本传输协议(HTTP)和超文本标记语言(HTML)。URL其实就是我们熟悉的网址,虽然我们看不见HTTP,但是它是一条通向服务器获取资源的路径,HTML是所见的网站页面。
万维网以C/S方式工作,基于TCP传输数据。
- URL:用于标识万维网上的各类文档,具有唯一性,它的一般形式是:<协议>://<主机>:<端口>/<路径>;
- HTTP:使用TCP连接进行可靠的传输,是浏览器与服务器之间交互所必须严格遵守的协议;
- HTML:对页面上的各种信息进行描述。
1. HTTP
HTTP协议执行的过程,是从对域名解析开始,通过域名解析获取服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求,如下图:

服务器端安装有web服务程序,它监听TCP的80端口。当有浏览器通过HTTP发送TCP请求时,便与服务器器建立起连接。连接建立后如果接收HTTP请求,要求获取某个HTML页面,查找后在通过HTTP返回给浏览器。
HTTP是无状态协议,也就是如果某个HTTP请求一旦该连接断开,再次访问时服务器不会记得该HTTP请求,因此,通过cookie来跟踪用户信息。
HTTP连接服务器有两种方式:非持久性连接与持久性连接。
在非持久性连接下,每次HTTP请求完毕后便断开TCP连接,再次访问时,要再次建立TCP连接后才能请求资源,这种方式速度慢,用户体验不好。

持久性连接改进了连接方式,一旦TCP连接建立,服务器响应后不立即断开连接。


网友评论