Finger协议-软件无线电原理与应用第二版
第30章其他的TCP/IP应用程序
30.1 引言
本章中我们描述了另外一些很多实现都支持的TCP/IP应用程序。有些很简单,易于全面了解(Finger和Whois),而另一个则相当复杂(X窗口系统)。我们只提供了这个复杂应用程序的一个简短的概述,集中介绍其对TCP/IP协议的使用。另外,我们提供一些Internet上资源发现工具的概述。包括一组在Internet上导航的工具,可以帮助寻找一些我们不知道确切位置和名字的信息。
30.2 Finger协议
Finger协议返回一个指定主机上一个或多个用户的信息。它常被用来检查某个人是否登录了,或者搞清一个人的登录名以便给他发送邮件。RFC1288 [Zimmerman 1991] 指明了这个协议。由于两个原因,很多站点不支持一个Finger服务器。第一,Finger服务器的一个早期版本中的一个编程错误被1988年声名狼藉的Internet蠕虫病毒利用,作为进入点之一(RFC1135 [Reynolds 1989] 和 [Curry 1992] 更详细地描述了蠕虫)。第二,Finger协议有可能会泄露一些很多管理员认为是有关用户的私有信息(登录名、电话号码,他们上次的登录时间,等等)。RFC1288的第3节给出了这个有关服务安全方面的细节。从一个协议的角度来看,Finger服务器有一个知名的端口79。客户对这个端口做一个主动打开,然后发送一个在线的请求。服务器处理这个请求,把输出发送回去,然后关闭连接。查询和响应都是采用NVT ASCII,类似于我们在FTP和SMTP协议中所看到的。尽管大多数的Unix用户都是使用finger(1)客户来访问Finger服务器,我们将从使用Telnet客户与Finger服务器直接相连开始,看看客户发出的每一条在线命令。如果客户的查询是一个空行(在NVT ASCII中,空行以一个回车符CR跟着一个换行符LF来传输),它就是一个请求查询所有在线用户信息的命令。office和office phone的空白输出字段是从用户的口令(password)文件记录的选项字段中取出的(在这个例子中,这两个字段的值没有提供)。服务器必须在最后做一个主动的关闭操作,因为服务器返回的是一个可变长度的信息。
Telnet客户输出前三行这儿我们键入回车作为Finger客户的命令Telnet客户的输出