我想知道我是否可以在 ubuntu 14.04 上强制特定程序使用 udp 协议而不是 tcp?有什么方法可以实现吗?我需要跳转 vlan 和 udp 连接才能完成这项工作。
答案1
你不能强迫程序使用 UDP 而不是 TCP,除非重写程序本身的某些部分。这些协议差别太大,无法互换。
TCP 是面向流的(接收方将所有事物视为按照发送方输出的确切顺序连续的流);UDP 是面向数据报的(每个数据报都在单独的数据包中发送,甚至可以重新排序)。
TCP 具有流量控制功能,因此发送方(或发送方的操作系统)确切地知道应该以多快的速度发送数据,而不会溢出链接或显著影响其他连接。UDP 不会执行任何这些操作 - 一个“强制”不当的程序可能会开始通过 UDP 每秒发送数 GB 的数据,而不管链接速度如何
- TCP 具有重传功能,因此如果数据包在中途丢失(例如由于网络过载或其他问题),它将被重新发送。如果协议依赖于可靠的传输,并且您强制它通过 UDP 传输,那么一旦至少一个数据包丢失,连接就可能完全中断。(数据包会丢失;请参阅上面的第 1 点和第 2 点。)
希望这可以帮助!