码迷,mamicode.com
首页 > 其他好文 > 详细

应用层

时间:2016-05-06 12:32:57      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

工作原理
应用层协议(application layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。
应用层协议的定义
(1)交换的报文类型,如请求报文和响应报文;
(2)各种报文类型的语法,如报文中的各个字段公共详细描述;
(3)字段的语义,即包含在字段中信息的含义;
(4)进程何时、如何发送报文及对报文进行响应。
有些应用层协议是由RFC文档定义的,因此它们位于公共领域。例如,web的应用层的协议HTTP(超文本传输协议,RFC 2616)就作为一个RFC供大家使用。如果浏览器开发者遵从HTTP RFC规则,所开发出的浏览器就能访问任何遵从该文档标准的web,服务器并获取相应的web页面。还有很多别的应用层协议是专用的.不能随意应用于公共领域。例如,很多现有的P2P文件共享系统使用的是专用应用层协议。
应用层协议分类
(1)域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。
(2)文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。
FTP是一种文件传输协议,它支持两种模式:一种方式叫做 Standard (也就是 Active,主动模式),一种是 Passive (也就是 PASV,被动模式)。 Standard 模式是 FTP 的客户端发送 PORT 命令到 FTP 服务器。Passive 模式是 FTP 的客户端发送 PASV 命令到 FTP 服务器。两种方式中数据和控制链路都是分开传输的,惟一的区别在于主动模式由服务器端发起数据链路的链接请求,而被动模式由客户端发起数据链路的链接请求。
FTP 通信过程中它的控制链路和数据链路不是在同一个端口进行通信的,而是在两个不同的 端口独立进行通信。首先由客户端向服务器发起控制链接的请求,当和服务器建立控制链接成功之后,在主动模式下客户端将会发一个端口号给服务器,告诉当前这次传输服务器所使用的数据传输端口,服务器收到这个信息后就向客户端发起数据链接请求,成功后进行当前这次的数据传输。在当前传输完成之后,该数据链路就被拆除了,如果客户端进行一次新的传输,则向服务器发送一个新的端口号,重新建立链接。在整个过程中,控制链路的链接一直都存在,直到 FTP 的整个通信过程结束,而数据链路每一次传输就需要建立一次新的链接。而被动模式过程和上述通信过程差不多,只是由客户端发起数据链路的建立请求。
在 FTP 交互的过程中,客户端通过命令字来告诉服务器相关的信息,常用的有访问控制命令 USER,PASS,CWD,QUIT 等八种;传输参数命令 PORT,PASV,TYPE, STRU,MODE 五种;FTP 服务命令 RETR,STOR,LIST,ABOR 等二十种。 服务器则通过一些状态码告诉客户端当前服务器的反馈状态。一般 2xx 表示当前的操作成功,3xx 表示权限问题,4xx 表示文件问题,5xx 表示服务器问题。[1]
(3)简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能
SMTP是一种提供可靠且有效电子邮件传输的协议。SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,SMTP 服务器在默认端口 25 上监听客户请求,主要用于传输系统之间的邮件信息。
SMTP 交互过程
比较简单,首先客户端向服务器的 SMTP 服务端口发起请求,通过三次握手建立链接。然后服务器返回 220 的状态码告诉客户端当前已经准备好服务,客户端收到该状态码后向服务器发出 HELO 或者 EHLO 的命令告诉服务器该客户端需要的服务类型,其中 HELO 是默认的 SMTP 服务,EHLO 要求除了默认的服务之 外还要支持扩展服务。当服务器告诉客户端它所支持的服务之后,双方用命令字和状态码进行交互。[1]
(4)超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。
是一个属于应用层的面向对象的协议,它是基于 TCP(Transfer Control Protocol, 传输控制协议)的可靠传输,采用的是客户端/服务器的工作模式。在 HTTP 通信过程中,首先由客户端向服务器发起建立链接的请求,通过 TCP三次握手来完成,然后客户端向服务器发出请求,告诉服务器想得到的信息。服务器通过响应返回客户端需要的信息。最后通过 TCP 四次握手关闭链接,从而完成一次基本的通信过程。[1]
(5)简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。
(6)远程登录协议(Telnet):用于实现远程登录功能。

应用层

标签:

原文地址:http://blog.csdn.net/qq_28809143/article/details/51328977

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!