4.8 更多信息
到这里我们对 HTTP 通道事务处理的介绍就结束了。更多有关 TCP 性能和 HTTP 连接管理功能的内容请参见下列参考资源。
4.8.1 HTTP连接
RFC 2616,“超文本传输协议——HTTP/1.1”是 HTTP/1.1 的官方规范;解释了并行、持久和管道式 HTTP 连接的使用,以及用于实现这些连接的 HTTP 首部字段。此文档并未涵盖对底层 TCP 连接的正确使用。
RFC 2068 是 HTTP/1.1 协议的 1997 年的版本。其中包含了 RFC 2616 中没有的、对 HTTP/1.0+ keep-alive 连接的解释。
这个过期的因特网草案“HTTP Connection Management”,(“HTTP 连接管理”)探讨了 HTTP 连接管理面临的问题。
4.8.2 HTTP性能问题
这个名为“HTTP Performance Overview”(“HTTP 性能概览”)的 W3C Web 页面包含了几篇与 HTTP 性能和连接管理有关的文章和一些工具。
这个由 Simon Spero 制作的简短备忘录“Analysis of HTTP Performance Problems”(“HTTP 性能问题分析”) 是最早(1994 年)对 HTTP 连接性能进行评估的文献之一。对早期由于缺乏连接建立、慢启动和连接共享所造成的影响进行了一些性能测试,这个备忘录给出了一些测试结果。
- ftp://gatekeeper.dec.com/pub/DEC/WRL/research-reports/WRL-TR-95.4.pdf
“The Case for Persistent-Connection HTTP.”(“持久连接 HTTP 的实例。”)
“Performance Interactions Between P-HTTP and TCP”Implementations(“P-HTTP 和 TCP 实现之间的性能交互”)。
“TCP Slow Start Tuning for Solaris”(“Solaris 的 TCP 慢启动调试”)是 Sun 微系统公司的一个 Web 页面,介绍了 TCP 慢启动带来的一些实际的影响。即使工作在不同的操作系统上,读一读这份资料也是有所帮助的。
4.8.3 TCP/IP
下面三本 W. Richard Stevens 的书都非常棒,详细介绍了 TCP/IP 的工程问题。对使用 TCP 的人来说尤其有用:
- TCP Illustrated, Volume 1: The Protocols1(《TCP 详解,卷 1:协议》)
1 本书影印版已由人民邮电出版社出版。(编者注)
W. Richard Stevens,Addison Wesley 公司出版。
- UNIX Network Programming, Volume 1: Networking APIs2(《UNIX 网络编程,卷 1:套接字联网 API(第 3 版)》)
W. Richard Stevens,Prentice-Hall 公司出版。
- UNIX Network Programming, Volume 2: The Implementation3(《UNIX 网络编程,卷 2:进程间通信(第 2 版)》)
W. Richard Stevens,Prentice-Hall 公司出版。
2~3 两本书中文版已由人民邮电出版社出版。(编者注)
下面的文章和规范介绍了 TCP/IP 及影响其性能的特性。其中有些规范已经有 20 多年的历史了,鉴于 TCP/IP 在全球范围内的成功,很可能已经可以将其归为历史宝藏了。
在“Rethinking the TCP Nagle Algorithm”(“对 TCP Nagle 算法的反思”)一文中,Jeff Mogul 和 Greg Minshall 提出了 Nagle 算法的一种现代视角,概括了哪些应用程序应该,哪些不应该使用这个算法,并提出了几条改进意见。
RFC 2001,“TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms”(“TCP 慢启动、避免拥塞、快速重传以及快速恢复算法”)定义了 TCP 慢启动算法。
RFC 1122,“Requirements for Internet Hosts—Communication Layers”(“对因特网主机的要求——通信层”)讨论了 TCP 确认和延迟确认。
RFC 896,“Congestion Control in IP/TCP Internetworks”(“IP/TCP 网络间的拥塞控制”)是 John Nagle 于 1984 年发布的。描述了 TCP 拥塞控制的必要性。介绍了现在称为“Nagle 算法”的算法。
RFC 813,“Window and Acknowledgement Strategy in TCP”(“TCP 中的窗口和确认机制”)是一个早些年(1982 年)制定的规范,它描述了 TCP 窗口和确认的实现机制,解释了延迟确认技术的早期技术。
RFC 793,“Transmission Control Protocol”(“传输控制协议”),是 Jon Postel 于 1981 年给出的 TCP 协议经典定义。