相对来说,诊断链路层和网络层的故障相对简单,在协议栈的高层,故障诊断越来越困难。所谓“高处不胜寒”也。可用的管理工具也越来越少,用户需要更多的关于协议如何工作的知识。在本文中,我们看一些传输层的故障诊断方法。
传输层处理客户端和服务器应用程序之间的数据移动。通常用户需要知道有哪些应用程序可用。其实,有很多方法可以决定应用程序的可用性。
远程登录-Telnet
一个经常被忽视的故障诊断工具是Telnet。Telnet是一个终端模拟应用程序。其设计目的是提供对大型主机、UNIX系统、路由器、交换机等的应用程序和相关配置的命令行访问方式。此外,它还可以验证一个程序在服务器上是否可用。
例如,输入下面的命令会验证电子邮件服务器在指定的服务器实际上是可用的:telnet myserver 25。图1:
这里需要注意,在服务器名字后面的数字“25”,是SMTP电子邮件服务器的端口号。为了用这处方法验证,用户必须知道各种应用程序所使用的端口号。这种方法只适用于使用TCP(传输控制协议)的应用程序。
端口扫描
另一个决定服务器上某服务是否可用的方法是使用端口扫描器。不过,用户需要当心。端口扫描器经常被当作黑客工具,企业网络中端口扫描器的使用可能会受到限制。在试验之前,用户需要决定是否允许这样做。
端口扫描器向服务器发送探测消息,并查看服务器是否有响应。在下面的例子中,端口扫描器正在积极地查找所有打开的UDP(用户数据报协议)端口。每一个端口代表一个用户可用的应用程序。图2:
用户还可以运行同样的程序以决定可用的TCP端口或应用程序。下面展示一个例子:图3:
在这两种情况下,用户也就清楚了服务器上有哪些应用程序是可用的。
协议分析仪
利用协议分析仪诊断故障需要对第四层协议(TCP和UDP)的透彻理解。分析仪显示数据报的每一个要素以及相关协议的每一个部分。图4:
上面的例子显示了用协议分析仪捕捉的相关RIP信息和UDP报头。用户需要清楚地了解UDP和RIP协议才能成功地用这些信息进行故障诊断。
下面我们再举另一个例子。下图这个TCP片断涉及到了客户端和服务器的telnet会话。图5: