总结:TCP/IP 详解(卷3:TCP 事务协议、HTTP、NNTP 和 UNIX 域协议)--第十章 T/TCP 实现:TCP 函数

第十章  T/TCP 实现:TCP 函数

本章包括了 T/TCP 作过修改的各个 TCP 函数。也就是说,tcp_output、tcp_input,和 tcp_usrreq 以外的所有函数。本章定义了两个新的函数,tcp_rtlookup 和 tcp_gettaocache,用于在 TAO 缓存中查找记录项。

tcp_close 函数修改以后,当使用 T/TCP 的连接关闭时,可以在路由表中记录往返时间估计值(平滑的平均值和平均偏差估计)。常规协议只在连接上传送了至少 16 个满数据报文段后才纪录。然而,T/TCP 通常只发送少量数据,但与同一对等端之间的这些不同连接的估计值应该保留下来。

T/TCP 中对 MSS 选项的处理也有所改变。有一部分改变是为了在 Net/3 中清理过载的 tcp_mss 函数,这样就把它分成了一个计算 MSS  以便发送的函数和另一个处理接收到的 MSS 选项的函数。T/TCP 同时也将从对等端收到的最新 MSS 值保存到 TAO 缓存记录项中。在接收到服务器的 SYN 和最新的 MSS 之前,如果要随 SYN 发送数据,T/TCP 就用这个记录来初始化发送 MSS。

Net/3 中的 tcp_dooptions 函数修改以后能够识别三个新的 T/TCP 选项:CC、CCnew 和 CCecho。

给定主机的 TAO 信息保存在路由表的记录项中。函数 tcp_gettaocache 读取为某主机缓存的 TAO 数据,但如果在 PCB 的路由缓存中尚不存在相应的路由,则调用 tcp_rtlookup 来查找主机。

T/TCP 修改 tcp_close 函数,在路由表中为 T/TCP 连接保存两个估计值 srtt 和 rttvar,即使连接中只传送了不到 16 个满长度的报文段。这样就使与该主机的下一次 T/TCP 连接可以在开始时使用这两个估计值。

Net/3 的函数 tcp_mss 在 T/TCP 中分成了两个函数:tcp_mssrcvd 和 tcp_msssend。前者在收到 MSS 选项后调用,后者在发出 MSS 选项时调用。后者与通常的 BSD 做法的不同之处在于,它一般声明其 MSS 为输出接口的 MTU 减去 TCP 和 IP 首部的长度。BSD 系统会向非本地对等主机声明取值为 512 的 MSS。

Net/3 中的 tcp_dooptions 函数在 T/TCP 中也有改变。函数的若干个参数取消了,用一个结构来代替。这就使函数可以处理新的选项,而不需增加参数。

希望我的总结可以帮助大家,感谢阅读我的博客!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值