《31张图详解网络应用层协议.docx》由会员分享,可在线阅读,更多相关《31张图详解网络应用层协议.docx(28页珍藏版)》请在第一文库网上搜索。
1、31张图详解解应用层协议目录1. 应用协议层22. 应用层33. 远程登录74. Telnet 75. SSH96. 文件传输107. FTP 107. 1. ASCII 模式118. 2.二进制流模式119. TFTP 1310. 电子邮件169. 1.通信架构169.2.邮件地址179. 3.SMTP协议189. 4.POP3协议209. 5.IMAP协议2010. WWW2110. 1. URI2310. 2. HTML2310. 3. HTTP2511.网络管理应用261.应用协议层图1应用协议层结构我们前面介绍过TCP/IP模型的下三层,分别是网络接入层、网络层和传输层。它们都是为应
2、用层服务的,传输应用层的各种数据,现在我们就来看看最高层的应用层。应用层传输层 网络层-_物理层%- I#图3应用层功能应用层的目的是向应用程序提供网络接口,直接向用户提供服务。相比于下层的网络协议,应用协议要常见得多,可能大家都听过HTTP、HTTPS、SSH等应用层协议。/I、/应用层协议TelnetSSHFTPTFTPSMTPPOP3IMAPHTTPd图4应用层协议TCP/IP模型中应用层位于传输层之上,传输层的端口号用于标识数据所对应的应用层协议。也就是说,有端口号的协议都是应用层协议。应用协议是终端设备之间的应用通信规则。应用之间交互的信息叫消息,应用协议定义这些消息的格式以及消息的
3、控制或操作的规则。应用协议的通信方式可分为两类:服务器和客户端模型P2P模型在服务器和客户端模型中,始终公开固定IP地址的主机为其它主机的应用程序提供服务,请求服务的主机之间不会互相通信。这些为其它主机提供服务的终端设备称为服务器,那些请求服务的主机则称为客户端。大多数应用层协议,都是这种模型。客户揣HTTP服务器图6服务器和客户端模型在P2P模型中,没有特定的服务器或客户端,这些设备上安装的应用程序,可以在主机间建立对等连接,既可以提供服务,也可以接受服务。通常是大流量的应用程序采用P2P模型,比如:下载器等。对等体对等体对等体wNetwork 图7 P2P模型开发应用程序时,为了实现相应的
4、功能和目的,可以使用现有的应用协议,也可以自己定义一个新的应用协议。同时,应用程序可以直接使用传输层以下的网络传输服务,开发者只需要关心选择哪种应用协议、如何开发即可,而不用考虑数据是如何传输到目的地。这也是TCP/IP分层模型的特点。漏到误:至填服务器图8网络传输服务应用程序有很多,包括Web浏览器、电子邮件、远程登录、文件传输、网络管理等。这些应用程序都会使用应用协议进行通信,应用协议正是为了实现应用程序的功能而设计和创造的。图9应用程序3. 远程登录网络设备的管理方式,分为本地管理和远程管理。远程管理是从本地主机登录到网络对端设备,向网络对端的设备发送管理数据,以实现设备管理的操作方式。
5、通过远程管理,不仅可以直接使用主机上的应用,还可以对主机进行参数设置。远程登录主要使用Telnet和SSH两种协议管理网络设备。登录图10远程登录女神叫大刘去她公司修理网络,大刘都不用去女神的公司,直接远程登录解决问题。4. Telnet在实际工作中,除了个别无法远程管理设备外,大多会采用远程管理的方式,来管理设备的配置文件和系统文件。对比本地管理,远程管理不受物理位置限制,连上网络就可以对世界另一端的设备进行操控,更省去了插拔设备线缆、终端设置的过程,可以通过一个远程应用同时管理大量的网络设备。Telnet协议定义了一台设备通过IP网络向远端设备发起明文管理连接的通信标准,可以在一台设备上通
6、过Telnet协议与一台远端设备建立管理连接,并对远端设备实施配置和监控,这种方式的体验与本地登录设备并无区别。发起管理的设备为Telnet客户端,被管理的设备是Telnet服务器。因此,Telnet协议是一个典型的服务器和客户端模型的应用层协议。Telnet客户湍0Telnet服务器图11 Telnet协议Telnet协议通过TCP协议建立服务器和客户端的一条连接,并通过这条连接向服务器发送用户名、密码和命令。Telnet协议使用的是TCP 23端口,表示客户端在发起Telnet连接时,默认连接服务器的TCP 23号端口。当Telnet客户端输入命令后,这些命令通过TCP连接发送到23号端口
7、,监听请求的守护进程Telnetd收到后,将命令发送给Shell , Shell为操作系统进行命令解释,然后操作系统执行Telnet客户端发出的命令。同理,操作系统按照相反的顺序,将命令执行的结果发回给Telnet客户端。Telnet协议实现了远程命令传输,但是客户端和服务器跨越不可靠的公共网络时,在命令传输过程中可以截获Telnet通信的所有数据,然后使用截获的用户名和密码来通过Telnet服务器的身份认证,并登录到设备上对配置文件进行修改。Telnet协议存在重大安全隐患,不推荐在实验室之外的环境使用。5. SSHSSH协议全程是安全外壳协议,目的就是为了取代Telnet , SSH是加密
8、的远程登录协议,提供更加安全的远程登录服务。使用SSH后会加密通信内容。即使信息被截获,由于无法解密,也无法了解数据的真正内容。图13SSH协议SSH协议常用版本是SSHv2 , SSH客户端通过SSHv2协议与SSH服务器建立一条TCP的加密信道,建立这条安全信道的方式是让客户端使用服务器的RSA公钥来验证SSH服务器的身份。SSH协议默认使用TCP 22端口。如果客户端成功验证了服务器的身份,它们之间就会创建出一个会话密钥,并用双方协商出来的加密算法和会话密钥,对这个信道传输的数据进行加密。这样,两台设备之间就建立了一条安全的信道,使用这条安全信道发送密码,密码以密文的形式传输,通过服务器
9、的身份认证。SSH就是通过这种方式建立加密信道,确保SSH服务器,也就是被管理设备的Shell免遭非法用户操作。6. 文件传输除了远程登录,我们还需要从远端设备传输文件,文件传输协议提供的应用服务可以满足我们的需求。FTP是网络上文件传输的标准协议,FTP使用TCP作为传输协议,支持用户的登录认证和访问权限的控制。另一种常见的文件传输协议是TFTP协议,TFTP是一种简单的文件传输协议,不支持用户的登录认证,也没有复杂的命令。TFTP使用UDP作为传输协议,并有重传机制。第28页共27页主机B主机A图14文件传输7. FTPFTP用于服务器和客户端之间传输文件,是IP网络上传输文件的通用协议。
10、FTP采用客户端和服务器的模式,使用TCP协议提供可靠传输。FTP可以对登录服务器的用户名和密码进行验证,允许客户端指定文件的传输类型,并且可以设置文件的传输权限。FTP使用两条TCP连接实现文件传输。一条是FTP控制连接,用来控制管理;另一条是FTP数据连接,用于数据传输。FTP控制连接用于传输FTP控制命令和命令执行的应答信息,比如登录用户名和密码的验证、发送文件的名称、发送方式的设置。这条连接在整个FTP会话过程中一直保持打开,通过ASCII码字符串发送请求和接收应答。在控制连接上无法发送数据,而FTP数据连接用于文件和文件列表的传输,仅在需要传输数据时建立数据连接,数据传输完毕后终止。
11、FTP服务器FTP客户端图15 FTP协议FTP控制连接使用的是TCP 21号端口,也是FTP服务器的侦听端口,等待客户端的连接。在TCP 21号端口进行文件GET ( RETR )、PUT(STOR ),以及文件表(LIST )等操作时,每次都会建立一个用于数据传输的数据连接。数据和文件表的传输正式在这个数据连接上进行的。数据连接的TCP连接通常使用端口 20 o也可以使用PORT命令修改为其它值。相同的一个文件,不同的操作系统可能有不同的存储方式。为了确保文件能够准确的传送给对方,常用2中传输模式:7. 1. ASCII 模式ASCII模式是默认的文件传输模式。发送方把本地文件转换成标准的
12、ASCII码,然后在网络中传输;接收方收到文件后,根据自己的文件存储方式,把它转换成本地文件。ASCII文件传输模式通常用于传输文本文件。8. 2.二进制流模式二进制流模式也称为图像文件传输模式。发送方不做任何转换,把文件按照比特流的方式进行传输。二进制文件类型通常用于传送程序文件。在FTP数据连接过程中,有两种数据传输方式:主动方式和被动方式。FTP主动传输方式,也称为PORT方式。采用主动方式建立数据连接时,FTP客户端会通过FTP控制连接向FTP服务器发送PORT命令,PORT命令携带参数:Al、A2、A3、A4、Pl、P2 ,其中 Al、A2、A3、A4 表示需要建立数据连接的主机IP
13、地址,而P1和P2表示客户端用于传输数据的临时端口号,临时端口号的数值为256*P1+P2 o当需要传输数据时,服务器通过TCP端口号20与客户端提供的临时端口建立数据传输通道,完成数据传输。在整个过程中,由于服务器在建立数据连接时主动发起连接,因此被称为主动模式。FTP客户端FTP服务器端口1174端口21PORT(192.168.0.1,13,238)TCP三次握手临时端口13*256+238=3566端口3566端口21主动模式数据传输关闭数据连接图16主动模式如果客户端在防火墙内部,主动方式可能会有问题,因为客户端的端口号是随机的,防火墙并不知道。默认安全策略,防火墙只会允许外部主机访
14、问部分内部已知端口,阻断对内部随机端口的访问,从而无法建立FTP数据连接。这时,就需要使用FTP被动方式来进行文件传输。被动方式也被称为PASV方式。FTP控制通道建立后,希望通过被动方式建立数据传输通道的FTP客户端会利用控制通道向FTP服务器发送PASV命令,告诉服务器进入被动方式传输。服务器选择临时端口号并告知客户端,命令参数和主动传输方式一致。当需要传输数据时,客户端主动与服务器的临时端口建立数据传输通道,并完成数据传输。在整个过程中,服务器是被动接收客户端的数据连接,所以被称为被动模式。采用被动方式时,两个连接都由客户端发起。一般防火墙不会限制内部的客户端发起的连接,这样就解决了主动方式下的问题。9. TFTPTFTP也是用于服务器和客户端之间传输文件的,对比FTP , TFTP没有复杂