一、应用层协议概要
1、应用层协议主要是指OSI参考模型中第5层、第6层、第7层的协议。
2、应用协议的定义
利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登陆、文件传输、网络管理等。能够让这些应用进行特定通信处理的正是应用协议。TCP和IP等下层协议是不依赖于上层应用类型、适用性非常广的协议。而应用协议则是为了实现某种应用而设计和创造的协议。例如,远程登陆等应用经常使用的TELNET协议,它的支持基于文字的命令与应答,通过命令可以执行各种各样的其他应用。
3、应用协议与协议的分层
网络应用由不同的用户和软件供应商开发而成。为了实现网络应用的功能,在应用之间进行通信时所用的网络协议是非常重要的。设计师和开发人员根据所开发模块的功能和目的,可以利用现有的应用协议,也可以自己定义一个新的应用协议。应用可以直接享用传输层以下的基础部分。
二、远程登陆
1、远程登陆的介绍
远程登陆是为了实现TSS(Time Sharing System分时系统)环境,是将主机和终端的关系应用到计算机网络上的一个结果。
TSS中通常有一个处理能力很强的主机和能登陆主机的多个终端机器。通过远程登陆到计算机或UNIX工作站以后,不仅可以直接使用这些主机上的应用,还可以对这些计算机进行参数设置。远程登陆主要使用TELNET和SSH两种协议。
2、TELNET
TELNET利用TCP的一条连接,通过这一条连接向主机发送文字命令并在主机上执行。本地用户好像直接与远程主机内部的Shell相连似的,直接在本地进行操作。TELNET可以分为两类基本服务。一是仿真终端功能,二是协商选项机制。TELNET经常用于登陆路由器或高性能交换机等网络设备进行相应的设置。
3、SSH
SSH是加密的远程登陆系统。TELNET中登陆时无需输入密码就可以发送,容易造成通信窃听和非法入侵的危险。使用SSH后可以加密通信内容。即使信息被窃听也无法破解所发送的密码、具体命令以及命令返回的结果。SSH还包括很多非常方便的功能:
(1)可以使用更强的认证机制。
(2)可以转发文件。
(3)可以使用端口转发功能。
端口转发是指特定端口号所收到的消息转发到特定的IP地址和端口号码的一种机制。由于经过SSH连接的那部分内容被加密,确保了信息安全,提供了更为灵活的通信。
三、文件传输
1、文件传输的介绍
FTP是在两个相连的计算机之间进行文件传输时使用的协议。FTP中也需要在登陆到对方的计算机后才能进行相应的操作。互联网上有一种FTP服务器是允许任何人进行访问的,这种服务器叫做匿名服务器(anonymous ftp)。登陆这些服务器时使用匿名(anonymous)或ftp都可以。
2、FTP的工作机制概要
FTP使用两条TCP连接:一条用来控制,另一条用于数据(文件)的传输。用于控制的TCP连接主要在FTP的控制部分使用。例如登陆用户名和密码的验证、发送文件的名称、发送方式的设置。利用这个连接,可以通过ASCII码字符串发送请求和接收应答。此连接无法发送数据,数据需要一个专门的TCP进行连接。FTP控制用的连接使用的是TCP21号端口。在TCP21号端口上进行文件GET(RETR)、PUT(STOR)、以及文件一览(LIST)等操作时,每次都会建立一个用于数据传输的TCP连接。数据的传输和文件一览表的传输正是在这个新建的连接上进行。当数据传输完毕,传输数据的连接也会被断开,然后会在控制用的连接上继续进行命令或应答的处理。数据传输用的TCP连接通常使用端口20.不过可以用PORT命令修改为其他的值。最近,出于安全的考虑,普遍在数据传输用的端口号中使用随机数进行分配。
3、通过ASCII码字符串进行交互
(1)FTP主要的命令
(2)FTP主要应答消息
四、电子邮件
电子邮件可以发送各类文件且发送距离不受限制,所以被广泛使用。
1、电子邮件的工作机制
提供电子邮件服务的协议叫做SMTP(Simple Mail Transfer Protocol)。SMTP为了实现高效发送邮件内容,在其传输层使用了TCP协议。
以前工作机制是:发送端和接收端主机之间建立TCP连接的机制。但是互联网应用逐渐复杂,这种机制就无法正常工作。
现在工作机制是:一直会连接电源的邮件服务器。发送和接收端通过邮件服务器进行收发邮件。接收端从邮件服务器接收邮件时使用POP3(Post Office Protocol)协议。
电子邮件的机制由3部分组成,它们分别是邮件地址,数据格式以及发送协议。
2、SMTP是发送电子邮件的协议。它使用的是TCP的25号端口。SMTP建立一个TCP连接以后,在这个连接上进行控制和应答以及数据的发送。
五、WWW
1、万维网的介绍
万维网(WWW,World Wide Web)是将互联网中的信息以超文本形式展现的系统,也叫Web。可以显示WWW信息的客户端软件叫做Web浏览器。WWW定义了3个重要的概念,它们分别是访问信息的手段与位置(URI,Uniform Resource Identifier)、信息的表现形式(HTML,HyperText Markup Language)以及信息转发(HTTP,HyperText Transfer Protocol)等操作。
2、URI
URI(Uniform Resource Identifier)用于标识资源。URI是一种可以用于WWW之外的高效的识别码,它被用于主页地址、电子邮件、电话号码等各种组合中。
https://www.baidu.com/localhost:4000
www.worthsen.com/
这些一般是主页地址,也叫做URL(Uniform Resource Locator)统一资源定位器。URL用来定位互联网中资源的具体位置。URI不局限于标识互联网资源,它可以作为所有资源的识别码。URI所标识的组合叫方案(Scheme)。URI的http方案的具体格式如下:
http://主机名/路径http://主机名:端口号/路径
http://主机名:端口号/路径?访问内容#部分信息
其中主机名表示域名或IP地址,端口号表示传输端口号。省略端口号时,则表示采用http的默认端口80。路径表示主机上该信息的位置,访问内容表示要传给CGI的信息,部分信息表示页面当中的位置等。
3、HTML
HTML是记述Web的一种语言(数据格式)。它可以指定浏览器中显示的文字、文字的大小和颜色。此外,不仅可以对图像或动画进行相关设置,还可以设置音频内容。HTML具有超链接的功能,超链接可以使得网页之间可以相互关联。HTML也可以说是WWW通用的数据表现协议。下面的例子就是通过HTML表现数据样本的例子。
4、HTTP
当用户在浏览器的地址栏里输入所要访问Web页的URI后,HTTP的处理就会开始。HTTP中默认使用80端口。它的工作机制,首先是客户端向服务器的80端口建立一个TCP连接,然后在这个TCP连接上进行请求和应答以及数据报文的发送。
5、JavaScript、CGI、Cookie
(1)JavaScript
Web的基本要素为URI、HTML和HTTP。而这些无法更改与条件相符的动态内容。为此,通过浏览器端和服务端执行特定的程序可以实现更加精彩、多样的内容。如实现网络购物和搜索。JavaScript是一种嵌入在HTML中的编程语言。
(2)CGI
CGI是Web服务器调用外部程序时所使用的一种服务端应用的规范。
(3)Cookie
Web应用中为了获取用户信息使用一个叫做Cookie的机制。Web服务器用Cookie在客户端保存信息(多为用户名和登录名等信息)。
致谢
1、《图解TCP IP》[第5版] 作者 (日)竹下隆史,等 译者 (日)乌尼日其其格