防火墙是一种可以通过有选择地阻止 Internet 连接来保护您的计算机的设备。防火墙可以使用硬件、软件或两者的组合来构建,并且某些操作系统(例如 Windows XP 和 Linux)包含防火墙软件作为操作系统本身的一部分。
如果您有任何类型的防火墙并计划将其与 NIST Internet Time 服务一起使用,则需要考虑许多要点。您必须了解计算机如何通过 Internet 进行通信才能正确配置防火墙。
有 4 个参数指定客户端程序如何与远程服务器通信。第一个是服务器地址,可以使用名称指定,例如 time-a.nist.gov 或使用一系列数字,例如 129.6.15.28。这两个规范是等效的,尽管数字形式是系统实际使用的 - 名称会自动转换为数字形式。一般来说,名称使用起来更方便,但数字形式需要较少的处理开销,如果您要向同一服务器发出许多请求,则通常首选。
第二个参数是协议,它指定交换的消息的格式。NIST 服务器支持两种常用协议:tcp(传输控制协议)和 udp(用户数据报协议)。最后,第三个和第四个参数是客户端和服务器上的端口号。服务器端口号指定 NIST 服务器上的哪个程序将实际处理您的请求,客户端端口号指定您系统上的哪个程序将处理响应。
您系统上的端口号是任意的,通常在每次客户端程序准备发出时间请求时由您的系统随机选择。因此,它可能因一个请求而异。但是,NIST 时间服务器只会侦听和响应寻址到一些特定端口号和协议的请求。这些组合是:
- UDP 端口 123,由网络时间协议和简单网络时间协议使用。NIST 客户端软件可以配置为使用此端口,但默认情况下不使用它。
- tcp 端口 13,默认情况下由 NIST 客户端软件和其他使用“白天”协议的程序使用。
- tcp 端口 37 和 udp 端口 37,它们被 DATE、RDATE、SDATE 和其他使用“时间”协议的程序使用。
为了成功访问 NIST 时间服务器,您的防火墙必须允许通过您将使用的远程端口和协议组合进行出站连接。您系统上的端口号可能会因一个请求而异,并且如果消息寻址到 NIST 系统上的特定端口之一,则您可能必须允许来自系统上任何端口号的消息通过防火墙,如果消息从这些特定时间服务端口之一返回,则允许发送到系统上任何端口的消息通过防火墙。
当您的客户端使用基于 TCP 的白天格式时,配置防火墙通常更容易,因为 TCP 通信隐式地将来自我们的时间服务器的响应与请求它的请求相关联,并且防火墙不太可能阻止对请求的响应源自本地系统。(默认情况下,NISTIME 客户端软件使用这种通信格式。)但是,这并不总是正确的,有时使用基于 UDP 的网络时间协议 (NTP) 格式更容易。由于这种格式使用非常广泛,所以很多防火墙默认都会以这种格式传递消息。
NISTIME 客户端软件可以使用这两种格式中的任何一种,如果防火墙不通过默认使用的基于 TCP 的消息,您应该尝试使用 NTP 格式。两种格式之间的选择是使用 File | 选择服务器菜单。列表中的每个服务器都可以配置为以任一格式进行查询。配置服务器后,您应该使用 File | 保存配置。保存配置,以便您在再次运行程序时不必选择这些选项。
如果这些连接被阻止,程序将不会收到对时间请求的响应,并且通常会报告错误。此外,某些防火墙不会将来自服务器的响应与请求它的消息相关联,并将响应视为未经请求的“攻击”。如果您看到许多似乎源自上面列出的时间服务端口之一的“攻击”,您应该考虑这种可能性。最后,许多 DATE、RDATE 和 SDATE 程序的错误处理能力很差,如果响应被阻塞或出现乱码,可能会将系统上的时间设置为一个奇怪的值(通常在 2036 年)。出于这个原因,我们不推荐任何这些程序。