这是Sam Liang和David Cheriton的一篇名为“ TCP-RTM:使用 TCP 进行实时多媒体应用程序”的论文。
本文是为了适应 tcp 在实时应用中的使用。我实际上希望您帮助我的两个主要修改是:
- 在 TCP 连接上的应用程序级读取时,如果没有按顺序读取的数据排队等待连接,但有一个或多个乱序数据包排队等待连接,则第一个连续范围的乱序数据包将从乱序队列到接收队列,接收指针前进到这些数据包之外,并将产生的数据传递给应用程序。在接收到序列号在逻辑上大于当前接收指针 (rcv next ptr) 的无序数据包并且读取器正在等待连接时,数据包数据被传递到等待接收器,接收指针提前过去这个数据,这个新的接收指针在下一个确认段中返回。
- 在发送方的发送缓冲区因大量积压数据而已满的情况下,TCP-RTM 会丢弃缓冲区中最旧的数据段,并接受应用程序写入的新数据。TCP-RTM 也将其发送窗口推进到丢弃的数据段。这样,应用程序写入调用永远不会被阻塞,并且发送方应用程序的时间不会被破坏。
他们实际上在真实环境中的旧 linux 2.2 内核中更改了 tcp 的“tcpreno with sack”版本。但是,我想在NS2中模拟这个。我可以使用 NS2,例如分析、制作性能图表等。我查看了所有相关文件,但找不到更改的地方。所以,请你帮我做这件事。