第8章 应用协议 图解TCP/IP 详解
8.1 应用层协议概要
应用层协议的定义
TCP和IP等下层协议是不依赖上层应用类型、实用性非常广的协议。而应用协议则是为了实现某种应用而设计和创造的协议。
应用协议与协议的分层
应用可以直接享用传输层以下的基础部分。因为开发者只关心选用哪种应用协议、如何开发即可,而不必担心应用中的数据该以何种方式发到目标主机等问题。
TCP/IP的应用层涵盖了OSI参考模型的第5、第6 、第7层的所有功能。
8.2 远程登录
通过远程登录到通用计算机或UNIX工作站以后,不仅可以直接使用这些主机上的应用,还可以对这些计算机进行参数设置。远程登录主要使用TELNET 和SSH两种协议。
8.2.1 TELNET
TELNET 利用TCP的一条连接,通过这一条丽娜姐向主机发送文字命令并在主机上执行。本地用户好像直接与远端主机内部的Shell相连似的,直接在本地进行操作。
TELNET可以分为两类基本服务。一是仿真终端功能,二是协商选项机制。
TELNET 经常用于登录路由器或高性能交换机等网络设备进行相应的设置。
通过TELNET 登录主机或路由器等设备时需要将自己的登录用户名和密码注册到服务端。
TELNET 客户端是指利用TELNET协议实现远程登录的客户端程序。很多情况下,它的程序名就是telnet 命令。
telent 客户端
所谓TELNET客户端是指利用TELNET 协议实现远程登录的客户端程序。很多情况下,它的程序名就是TELNET 命令。
TELNET 客户端通常与目标主机的23号端口建立连接,并于监听这个端口的服务端程序telnetd进行交互。当然,也可以与其他的TCP端口号连接,只要在该端口号上有监听程序能够处理telnet 请求即可。
8.2.2 SSH
SSH是加密的远程登录系统。telnet 中登录时无需输入密码就可以发送,容易造成通信窃听和非法入侵的危险。使用SSH 后,可以加密通信内容。
端口转发 是指将特定端口号所收到的消息转发到特定的IP地址和端口号的一种机制。由于经过SSH连接的那部分内容被加密,确保了信息安全,提供了更为灵活的通信。
8.3 文件传输
FTP file transform protocol
FTP是两个相连的计算机之间进行文件传输时使用的协议。
FTP也需要在登陆到对方的计算机后才能进行响应的操作。
互联网上有一种FTP服务器是允许任何人进行访问的,这种服务器叫做匿名服务器 anonumous ftp .
FTP的工作机制概要
它使用两条TCP连接:一条用来控制,另一条用于数据文件的传输。
FTP控制用的连接使用的是TCP21号端口。在TCP21号端口上进行文件GET 、PUT以及文件一览 LIST 等操作时,每次都会建立一个用于数据传输的TCP连接。数据的传输和文件一览表的传输正是在这个新建的连接上进行。当数据传送完毕止呕,传输数据的纸条连接也会被断开,然后会在控制用的连接上继续进行命令或应答的处理。
通过ASCII码字符串进行的交互处理
FTP中请求命令中使用的RETR 等ASCII码字符串。而针对这些命令的应答则使用200 等3位数字的ASCII码字符串。
一行字符串表示一个命令或一个应答,而空白则用来标识与参数之间的分割符。即命令和应答的消息通过换行区分、参数用空格区分。
8.4 电子邮件
8.4.1 电子邮件的工作机制
提供电子邮件服务的协议叫做SMTP Simple Mail Transfer Protocol 。SMTP为了实现高效发送邮件内容,在其传输层使用TCP协议。
接收端从邮件服务器接受邮件时使用POP3 post office protocol 协议。
8.4.2 邮件地址
使用电子邮件时需要用到的地址叫做邮件地址。它就相当于通信地址和姓名。互联网中电子邮件地址的格式如下:名称@通信地址
电子邮件的发送地址由DNS进行管理。DNS中注册有邮件地址以及作为发送地址时对应的邮件服务器的域名。这些映射信息被称作MX记录。
根据MX记录中指定的邮件服务器,可以管理不同邮件地址与特定邮件服务器之间的映射关系。
8.4.3 MIME
multipurpose internet mail extensions 广泛用于互联网并极大的扩展了数据格式,还可以用于WWW和NetNews 中。
鉴于MIME规定的应用消息的格式,因此在OSI参考模型中它相当于第六层表示层。
MIME 基本上由首部和正文两部分组成。首部不能是空行,因为一旦出现空行,其后的部分将被视为正文。
如果MIME首部的Content-Type中指定Multipart/Mixed ,并以boundary =后面字符作为分隔符,那么可以将多个MIME消息组合成一个MIME消息。这就叫做multipart .即各个部分都由MIME首部和正文组成。
content -type 定义了紧随首部信息的数据类型。以IP首部为例,它就相当于协议字段。
8.4.4 SMTP
SMTP simle message transform protocol 是发送电子邮件的协议 。它使用的是TCP 的25 号端口。SMTP建立一个TCP连接以后,在这个连接上进行控制和应答以及数据的发送。客户端以文本的形式发送请求,服务端返回一个3位数字的应答。
8.4.5 POP
个人电脑不可能长时间处于开机状态。只有用户使用时才会开机。在这种情况下,人们希望一开机就能接收到邮件。然而SMTP没有这种处理机制。SMTP的一个不利之处就是在于它支持的是发送大癤的行为,而不是根据接收端的请求发送邮件。
POP协议是一种用于接收电子邮件的协议。发送段的邮件根据SMTP协议将被转发给一直处于插电状态的POP服务器。客户端再根据POP协议从POP服务器接收对方发来的邮件。
8.4.6 IMAP
internet message access protocol 与POP类似,也是接收电子邮件的协议。在POP中邮件由客户端进行管理,而在IMAP中邮件则由服务器进行管理。
8.5 WWW
8.5.1 互联网的蓬勃发展
8.5.2 WWW基本概念
WWW定义了3个重要的该奶奶,他们分别是访问信息的手段与位置URI uniform resource identifier 信息的表现形式 HTML hypertext markup language 以及信息转发 http hypertext transfer protocol 。
8.5.3 URI
URI是uniform resource identifier 的缩写,用于标识资源。URI是一种可以用于WWW之外的高效的识别码,它被用于主页地址、电子邮件、电话号码等各种组合。
这些例子属于一般主页地址,也被叫做URL uniform resource locator .URL 常被用来表示互联网那个中文件的具体位置。但是URI不局限于互联网资源,它可以用做所有资源的识别码。
相比于URL 狭义的该奶奶,URI是一个广义的概念。因此,URI可以用于除了WWW之外的其他协议中。
URI 所表示的组合叫做方案 scheme .在众多URI的scheme中WWW主要用其中的HTTP和https表示web 页的位置和访问web页的方法。
8.5.4 HTML
HTML 是记录web页的一种语言。它可以指定浏览器中显示的文字、文字的大小和颜色。
HTML也可以说是WWW通用的数据表现协议。即使在异构的计算机上,只要是可以用HTML展现的数据,那么效果基本上是一致的。
XML
WWW中将数据存入文件或在应用之间进行交互时经常使用的XML extensible markup lanuage .
8.5.5 HTTP
当用户在浏览器的地址栏里如数要访问的web页的URI以后,HTTP的处理即会开始。
HTTP中常用的有两个版本,一个HTTP1.0 ,另一个是HTTP1.1 。在HTTP1.0 中每一个命令和应答都会出发一次TCP连接的建立和断开。而从HTTP1.1 开始,允许在一个TCP连接上发送多个命令和应答,由此大量的减少了TCP连接的建立和断开操作,从而提高了效率。
8.5.6 JavaScript CGI Cookie
javascript 程序可以在客户端得到执行。这种javascript程序用于验证客户端输入可以用于操作HTML或XML的逻辑结构 以及动态显示web页的内容和页面风格上。
服务器不需要读取整个页面而是通过javascirpt 操作DOM来实现更为生动的web页面的技术。这就是ajax asynchronous javascrip and XML
CGI
CGI common gateway interface 是web 服务器调用外部程序时所使用到的一种服务端应用的规范。
引入CGI 以后客户段请求会出会触发web 服务器端运行另一个程序,客户端所输入的数据也会传给这个外部程序。该程序运行结束后将会生成的HTML和其他数据再返回给客户端。
Cookie
8.6 网络管理
8.6.1 SNMP
SNMP simple network management protocol 手机必要的信息。它是一款基于UDP/IP 的协议。
SNMP中管理端叫做管理器manager 网络监控终端 ,被管理端叫做代理 (路由器、交换机)。
决定管理器与代理之间的通信中所要交互信息的正式SNMP。
起初SNMP的安全机制并不完备。
SNMPv3不仅集合了所有的SNMP的功能于一个版本,定义了个别的功能模块(Component),并可以结合各种不同的版本进行通信。
8.6.2 MIB
SNMP中交互的信息是MIB management information base . MIB 是在树形结构的数据库中为每个项目附加编号的一种信息机构。
8.6.3 RMON
RMON是remote monitoring MIB 的缩写。
8.6.4 SNMP应用举例
MRTG multi route traffic grapher 是利用RMON定期收集网络中路由器的网络流量信息的工具。
8.7 其他应用层协议
8.7.1 多媒体通信实现技术
8.7.2 P2P
8.7.3 LDAP