到此为止所介绍的IP协议、TCP协议以及UDP协议是通信最基本的部分,它们属于OSI参考模型中的下半部分。
本文章开始介绍应用协议,主要是指OSI参考模型中第5层、第6层、第7层上半部分的协议,如下图:
应用协议的定义
利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登录、文件传输、网络管理等。能够让这些应用进行特定通信处理的正是应用协议。
TCP和IP等下层协议是不依赖于上层应用类型、适用性非常广的协议。而应用协议则是为了实现某种应用而设计和创造的协议。
例如,远程登录等应用经常使用的TELNET协议,它的支持基于文字的命令与应答,通过命令可以执行各种各样的其它应用。
应用协议与协议的分层
网络应用由不同的用户和软件供应商开发而成。为了实现网络应用的功能,在应用之间进行通信时将其连接的网络协议是非常重要的。应用之间交互的信息叫做消息。应用协议定义这些消息的格式以及使用这些消息进行控制或操作的规则。设计师和开发人员根据所开发模块的功能和目的,可以利用现有的应用协议,也可以自己定义一个新的应用协议。
应用可以直接享用传输层以下的基础部分。因为开发者只要关心选用哪种应用协议、如何开发即可,而不必担心应用中的数据该以何种方式发送到目标主机等问题。这些也是得益于网络层的功劳。
应用协议相当于是OSI中第5,6,7层的协议
TCP/IP的应用层涵盖了OSI参考模型中第5,第6,第7层的所有功能,不仅包含了管理通信连接的会话层功能、转换数据格式的表示层功能,还包括与对端主机交互的应用层功能在内的所有功能。
什么叫做远程登录?实现从自己的本地计算机登录到网络另一端计算功能的应用就叫做远程登录。通过远程登录到通用计算机或UNIX工作站以后,不仅可以直接使用这些主机上的应用,还可以对这些计算机进行参数设置。远程登录主要使用TELNET和SSH两种协议。
TELNET
TELNET利用TCP的一条连接,通过这一条连接向主机发送文字命令并在主机上执行。本地用户好像直接与远端主机内部的Shell相连着似的,直接在本地进行操作。
TELNET可以分为两类基本服务。一是仿真终端功能,二是协商选项机制。如下图:
TELNET经常用于登录路由器或高性能交换机等网络设备进行相应的设置。通过TELNET登录主机或路由器等设备时需要将自己的登录用户名和密码注册到服务端。
选项
TELNET中除了处理用户所输入的文字外,还提供选项的交互和协商功能。例如,为实现仿真终端(NVT,Network Virtual Terminal)所用到的界面控制信息就是通过选项功能发送出去的。而且,乳腺癌他所示TELNET中的行模式或透明模式两种模式的设置,也是通过TELNET客户端与TELNET服务端之间的选项功能进行设置的。
SSH
SSH是加密的远程登录系统。TELNET中登录时无需输入密码就可以发送,容易造成通信窃听和非法入侵的危险。使用SSH后可以加密通信内容。即使信息被窃听也无法破解所发送的密码、具体命令以及命令返回的结果是什么。
SSH还包括很多非常方便的功能:
端口转发是指将特定端口号所收到的消息转发到特定的IP地址和端口号码的一种机制。由于经过SSH连接的那部分内容被加密,确保了信息安全,提供了更为灵活的通信。
FTP是在两个相连的计算机之间进行文件传输时使用的协议。
FTP是通过怎样的机制进行文件传输的呢?它使用两条TCP连接:一条用来控制,另一条用于数据(文件)的传输。
如下图:
提供电子邮件服务的协议叫做SMTP(Simple Mail Transfer Protocol)。SMTP为了实现高效发送邮件内容,在其传输层使用了TCP协议。
早期电子邮件是在发送端主机与接收端主机之间直接建立TCP连接进行邮件传输的。
MIME
MIME:Multipurpose Internet Mail Extensions,广泛用于互联网并极大地扩展了数据格式,还可以用于WWW和NetNews中。
很长一段时间里,互联网中的电子邮件只能处理文本格式的邮件。不过现在,电子邮件所能发送的数据类型已被扩展到MIME,可以发送静态图像、动画、声音、程序等各种形式的数据。鉴于MIME规定了应用消息的格式,因此在OSI参考模型中它相当于第6层表示层。
MIME基本上由首部和正文(数据)两部分组成。首部不能是空行,因为一旦出现空行,其后的部分将被视为正文(数据)。如果MIME首部的“Content-Type”中指定“Multipart/Mixed”,并以“boundary=”后面字符作为分隔符,那么可以将多个MIME消息组合成为一个MIME消息。这就叫做multipart。即,各个部分都由MIME首部和正文(数据)组成。
“Content-Type”定义了紧随首部信息的数据类型。以IP首部为例,它就相当于协议字段。下表是一些具有代表性的“Content-Type”,如下图:
互联网的蓬勃发展
万维网(WWW,World Wide Web)是将互联网中的信息以超文本(超文本用以显示文本及与文本相关的内容)形式展现的系统。也叫做Web。可以显示WWW信息的客户端软件叫做Web浏览器(有时也简称浏览器)。目前人们常用的Web浏览器包括微软的Internet Explorer、Mozilla基金会的Firefox、Google公司的Google Chrome、Opera软件公司的Opera以及Apple公司的Safari等。
借助浏览器,人们不需要考虑该信息保存在哪个服务器,只需要轻轻点击鼠标就可以访问页面上的链接并打开相关信息。
WWW基本概念
WWW定义了3个重要的概念,它们分别是访问信息的手段与位置(URI,Uniform Resource Identifier)、信息的表现形式(HTML,HyperText Markup Language)以及信息转发(HTTP,HyperText Transfer Protocol)等操作。
URI
URI你就可以理解成平常的URL,主要是用来表示资源路径的。
其中主机名表示域名或IP地址,端口号表示传输端口号。省略端口号时,则表示采用http的默认端口80。路径是指主机上该信息的位置。
这种表示方法可以唯一地标识互联网中特定的数据。不过,由于用http方案展现的数据随时都有可能发生变化,所以即使将自己喜欢的页面的URI(URL)记住,也不能保证下次是否还能够访问到该页。
HTML
HTML是记述Web页的一种语言(数据格式)。它可以指定浏览器中显示的文字、文字的大小和颜色。此外,不仅可以对图像或动画进行相关设置,还可以设置音频内容。
HTTP
当用户在浏览器的地址栏输入所要访问Web页的URL以后,HTTP的处理就会开始。HTTP中默认使用80端口。它的工作机制,首先是客户端向服务器的80端口建立一个TCP连接,然后在这个TCP连接上进行请求和应答以及数据报文的发送。
HTTP中常用的有两个版本,一个HTTP1.0,另一个是HTTP1.1。在HTTP1.0中每一个命令和应答都会触发一次TCP连接的建立和断开。而从HTTP1.1开始,允许在一个TCP连接上发送多个命令和应答(这种方式叫做长连接Keep-alive)。由此,大量地减少了TCP连接的建立和断开操作,从而也提高了效率。
Cookie
Web应用中为了获取用户信息使用一个叫做Cookie的机制。Web服务器用Cookie在客户端保存信息(多为“用户名”和“登录名”等信息)。Cookie常被用于保存登录信息或网络购物中放入购物车的商品信息。
从Web服务器检查Cookie可以确认是否为同一对端的通信。从而存放于购物车里的商品信息就不必要再保存到服务器里面了。