T/TCP实现:TCP输出
T/TCP实现:TCP输出 9.1 概述 77 9.2 tcp_output函数 77 9.2.1 新的自动变量 77 9.2.2 增加隐藏的状态标志 77 9.2.3 在SYN_SENT状态不要重传SYN 78 9.2.4 发送器的糊涂窗口避免机制 78 9.2.5 有RST或SYN标志时强制发送报文段 79 9.2.6 发送MSS选项 80 9.2.7 是否发送时间戳选项 80 9.2.8 发送T/TCP的CC选项 80 9.2.9 根据TCP选项调整数据长度 83 9.3 小结 83 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,广泛应用于互联网中。T/TCP是对TCP协议的扩展,旨在提高TCP在网络环境中的性能,特别是对于短连接和高延迟网络环境。本章主要讨论了T/TCP在TCP输出方面的实现,即如何改进TCP的报文段发送机制以适应T/TCP的需求。 9.1 概述 T/TCP对tcp_output函数进行了修改,以支持更多的功能和优化。这些修改包括允许在SYN_SENT状态下发送多个报文段(前提是知道对等端也支持T/TCP),以及引入新的隐藏状态标志,如TH_SYN和TH_FIN,以更灵活地控制报文段的发送。 9.2 tcp_output函数 9.2.1 新的自动变量 在tcp_output函数中添加了新变量tao_p,用于指向对等端的TAO缓存记录项。这有助于在处理连接状态时快速访问对等端的信息。 9.2.2 增加隐藏的状态标志 通过从tcp_outflags向量读取TCP标志,可以设置或清除TH_FIN和TH_SYN标志,以控制报文段的发送状态。这样可以更加精确地管理连接的建立和结束过程。 9.2.3 在SYN_SENT状态不要重传SYN 在SYN_SENT状态下,如果已经发送了SYN,不再重复发送。这是为了防止在应用程序发送大量数据(超过MSS)时,错误地重传SYN标志。只有在确认对等端支持T/TCP的情况下,才可以在三次握手完成后发送多个报文段。 9.2.4 发送器的糊涂窗口避免机制 糊涂窗口避免机制是为了防止因窗口大小变化导致的不必要的重传。T/TCP对这一机制进行了改进,使得发送方能够更智能地决定何时发送报文段,以减少网络拥塞。例如,如果允许发送最大报文段,或者满足特定条件(如Nagle算法关闭,TCP发送缓存为空),则会发送报文段。 9.2.5 强制发送报文段 当报文段带有RST或SYN标志时,会强制发送,这可能是因为收到了对端的异常信号或需要重新建立连接。 9.2.6 发送MSS选项 TCP连接建立时,会发送MSS(最大段大小)选项,以告知对等端其能接收的最大报文段大小。 9.2.7 发送时间戳选项 TCP时间戳选项用于计算RTT(往返时间),帮助估计网络延迟并优化拥塞控制。 9.2.8 发送T/TCP的CC选项 T/TCP引入了新的选项,如CC、CCNew和CCEcho,用于实现更高效的流量控制和拥塞控制策略。 9.2.9 根据TCP选项调整数据长度 根据TCP选项,可能会调整发送的数据长度,以适应不同的传输需求。 9.3 小结 tcp_output函数的这些改进提高了T/TCP的效率和性能,特别是在处理短连接和高延迟网络环境时。通过隐藏状态标志、糊涂窗口避免机制以及其他选项的发送,T/TCP实现了更精细的控制,从而更好地适应了现代网络环境。 在Java网络编程中,理解TCP和T/TCP的工作原理至关重要,特别是对于开发涉及Socket通信的应用。掌握这些概念可以帮助开发者编写出更高效、更健壮的网络应用。
- 粉丝: 50
- 资源: 244
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助