本节书摘来自异步社区《UNIX网络编程 卷1:套接字联网API(第3版)》一书中的第2章,第2.5节,作者:【美】W. Richard Stevens , Bill Fenner , Andrew M. Rudoff著,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.12 标准因特网服务
图2-18列出了TCP/IP多数实现都提供的若干标准服务。注意,表中所有服务同时使用TCP和UDP提供,并且这两个协议所用端口号也相同。
这些服务通常由Unix主机的inetd守护进程提供(见13.5节)。它们还提供使用标准的Telnet客户程序就能完成的简易测试机制。举例来说,下面就是时间获取和回射这两个标准服务器的测试过程:
aix % telnet freebsd daytime
Trying 12.106.32.254... Telnet客户输出
Connected to freebsd.unpbook.com. Telnet客户输出
Escape character is ′^]′. Telnet客户输出
Mon Jul 28 11:56:22 2003 daytime服务器输出
Connection closed by foreign host. Telnet客户输出(服务器关闭连接)
aix % telnet freebsd echo
Trying 12.106.32.254... Telnet客户输出
Connected to freebsd.unpbook.com. Telnet客户输出
Escape character is ′^]′. Telnet客户输出
hello,world 我们键入这行
hello,world 它由服务器回射回来
^] 键入Ctrl+]以与Telnet客户交谈
telnet> quit 告诉客户我们已测试完毕
Connection closed. 这次客户自己关闭连接
在这两个例子中,我们键入主机名和服务名(daytime和echo)。这些服务名由/etc/services文件映射到图2-18所示的端口号,详见11.5节。
注意,当我们连接到daytime服务器时,服务器执行主动关闭,然而当连接到echo服务器时,客户执行主动关闭。回顾图2-4,我们知道执行主动关闭的那一端就是历经TIME_WAIT状态的那一端。
为了应付针对它们的拒绝服务攻击和其他资源使用攻击,在如今的系统中,这些简单的服务通常被禁用。