与修订TCP 相关的RFC 各个版本分别主要解决了什么技术问题?
答:
1) 第一个关于 TCP 的 RFC 文档是于 1980 年 1 月发布的编号为 761 的文档
“DoD standard Transmission Control Protocol”(已作废)。该文档定义了
TCP 实现的细节,以及 TCP 之间、TCP 与上层协议之间交互的方法。
2) 1981 年 9 月发布了编号为 793 的文档“Transmission Control Protocol”,
这个文档被公认为是 TCP 的原始正式定义。在文档中定义了 TCP 实现
的细节,以及 TCP 之间、TCP 与上层协议之间交互的方法。
3) 1982 年 7 月 发 布 了 编 号 为 813 的 文 档 “WINDOW AND
ACKNOWLEDGEMENT STRATEGY IN TCP”。本文档描述了窗口与确
认机制的策略和实现。
4) 1983 年 11 月发布了编号为 879 的文档“The TCP Maximum Segment Size
and Related Topics”。本文档认为以前发布的关于 TCP 的文档没有把 TCP
头部中的可选项部分阐述清楚,因此在本文档中讨论了 TCP 的最大段长
度以及它与 IP 最大数据报的关系。本文档又于 2012 年 8 月发布了更新
版本,RFC 编号为 6691:TCP Options and Maximum Segment Size (MSS)。
5) 1989 年 6 月发布了编号为 1106 的文档“TCP Big Window and Nak
Options”。在本文档中讨论了 TCP 头部选项域中针对高带宽、高延迟、
或两者兼备的线路上使用的“窗口大小”和“接收否认”这两个选项的
实现。本文档又于 2011 年 5 月发布了更新版本,RFC 编号为 6247:Moving
the Undeployed TCP Extensions RFC 1072, RFC 1106,RFC 1110, RFC
1145, RFC 1146, RFC 1379, RFC 1644, and RFC 1693 to Historic Status。
6) 1989 年 10 月发布了编号为 1122 的文档“Requirements for Internet Hosts
-- Communication Layers”。随着时间推移,TCP 原始定义中的一些错误
和不一致性被逐渐检测出来,而且在某些领域中需求也发生了变化,本
文档详细阐述了这些内容,提出了修补方案,如慢启动和拥塞避免等。
7) 1992 年 5 月发布了编号为 1323 的文档“TCP Extensions for High
Performance”。本文档针对 TCP 窗口大小有限的问题,提出了一个
Window scale 选项,使发送方和接收方可以协商一个窗口尺度因子,大
大提高了传送效率。
8) 1992 年 11 月和 1994 年 7 月分别发布了编号为 1379 的文档“Extending
TCP for Transactions -- Concepts”和编号为 1644 的文档“T/TCP -- TCP
Extensions for Transactions Functional Specification”。这两个文档描述了
事务型 TCP 的概念和方法,将“用 UDP 实现 RPC 的高效率”与 TCP
的可靠性结合起来。在 2011 年 5 月又发布了更新版本,RFC 编号为 6247:
Moving the Undeployed TCP Extensions RFC 1072, RFC 1106,RFC 1110,
RFC 1145, RFC 1146, RFC 1379, RFC 1644, and RFC 1693 to Historic
Status。
9) 关于拥塞控制最早的文档是于 1984 年 1 月发布的 RFC896:Congestion
Control in IP/TCP Internetworks。在 1997 年 1 月发布了编号为 2001 的文
档“TCP Slow Start, Congestion Avoidance,Fast Retransmit, and Fast
Recovery Algorithms”,提出了慢启动、拥塞控制、快速重传、快速恢复
四个算法并给出具体实现,本文档又于 1999 年 4 月发布了更新版本,
RFC 编号为 2581:TCP Congestion Control。目前的最新版本是 2009 年
9 月发布的 RFC5681:TCP Congestion Control。
10) 1996 年 10 月发布了编号为 2018 的文档“TCP Selective Acknowledgment
Options”。本文档提出了选择性确认 SACK 的机制,与选择性重传配合
增强了 TCP 的基础功能。
11) 1999 年 3 月发布了编号为 2525 的文档“Known TCP Implementation
Problems”。本文档罗列了当前 TCP 在实际应用中的一些问题。
12) 2000 年 11 月发布了编号为 2988 的文档“Computing TCP's Retransmission
Timer”。本文档提出 TCP 重传计时器应该如何设置的问题并给出了相应
的算法。本文档的最新版本是 2011 年 6 月发布的 RFC6298。
13) 2001 年 1 月发布了编号为 3042 的文档“Enhancing TCP's Loss Recovery
Using Limited Transmit”。本文档提出“Limited Transmit”算法,增强了
TCP 在拥塞窗口较小时丢包恢复的效率。
14) 2003 年 2 月发布了编号为 3481 的文档“TCP over Second (2.5G) and Third
(3G) Generation Wireless Networks”。本文档讨论了 TCP 在 2.5G、3G 无
线网上的运用相关问题。
15) 2006 年 9 月发布了编号为 4614 的文档“A Roadmap for Transmission
Control Protocol (TCP) Specification Documents”。本文档描述了 TCP 协
议发展的 RFC 路线图。
16) 2007 年 7 月发布了编号为 4953 的文档 “Defending TCP Against Spoofing
Attacks”。本文档针对 TCP 易受欺骗攻击的不足,提出了防范攻击的方
法。
17) 2007 年 8 月发布了编号为 4987 的文档 “TCP SYN Flooding Attacks and
Common Mitigations”。本文档描述了 TCP SYN 洪泛攻击,比较了几种
防范攻击的方法。
18) 2009 年 3 月发布了编号为 5482 的文档 “TCP User Timeout Option”。本
文档针对一个 TCP 连接被强制关闭之前未确认的数据应该保存多久的
问题,提出了一种新的方法。
19) 2010 年 2 月发布了编号为 5690 的文档 “Adding Acknowledgement
Congestion Control to TCP”。本文档提出了一种端到端确认的拥塞控制
的新方法。
20) 2010 年 6 月发布了编号为 5925 的文档 “The TCP Authentication
Option”。本文档定义了一个 TCP 认证选项,用以取代在 RFC2385 中定
义的 TCP MD5 签名选项。
21) 2010 年 8 月发布了编号为 5961 的文档 “Improving TCP's Robustness to
Blind In-Window Attacks”。本文档对 TCP 处理接收到数据的方式做出改
进,提高了 TCP 在遭受攻击时的鲁棒性。
22) 2011 年 1 月发布了编号为 6093 的文档 “On the Implementation of the
TCP Urgent Mechanism”。本文档分析了当前 TCP 实现中紧急指针的用
法以及真实网络中 middlebox 的应用给其带来的影响,对 TCP 中相关定
义进行了更新并对实际应用提出了建议。
以 上 是 自 己 作 课 程 作 业 总 结 的 , 个 人 觉 得 总 结 得 最 好 的 还 是
RFC4614,需要的人可以参考一下。