networking - 我如何强制 tcp 丢弃缓冲区中最旧的数据段并接受 NS2 中应用程序写入的新数据

标签 networking tcp ns2

我正在尝试调整 TCP 以在实时通信中正常工作。要做到这一点,规范之一是强制 TCP 接受应用程序写入的新数据,即使缓冲区已满,这使得 TCP 有时“不可靠”。这样,应用程序写入调用就不会被阻塞,发送方应用程序的时间也不会中断。 我认为 NS2 中必须有一个选项才能使其成为可能。 那么,如何强制 TCP 丢弃缓冲区中最旧的数据段并接受 NS2 中应用程序写入的新数据?

最佳答案

你不能。 TCP 是“可靠流”。任何允许删除数据的功能都与该目标背道而驰,因此不存在此类支持。

如果您希望能够丢弃数据,如果您想要“最可靠的传送”而不是“最大努力”,您将不得不切换到 UDP 之类的东西并实现您自己的窗口/重试。

关于networking - 我如何强制 tcp 丢弃缓冲区中最旧的数据段并接受 NS2 中应用程序写入的新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916396/

相关文章:

networking - 如何克服根域CNAME限制?

linux - 在 Iptable 中阻止网页

java - 计算 NS2 中 UDP 数据包的哈希值

c - fwrite 没有在缓冲区中发送我想要的内容

networking - Hadoop 节点在一段时间后死亡(崩溃)

tomcat - 无法连接到具有IP地址的远程计算机

wcf - WCF HTTP 绑定(bind)是否在 TCP 上运行?

javascript - HTML\PHP - 如何获取用户(访问者)的信息

c++ - ns2 中的段错误

c++ - 如何从 .cc 文件访问 tcl 脚本中的值