language-agnostic - 在 TCP 之上是否有针对高吞吐量和低延迟进行优化的协议(protocol)/标准?

标签 language-agnostic tcp protocols

是否存在针对高吞吐量和低延迟优化的 TCP 协议(protocol)/标准?

我唯一能想到的是FAST .

目前我只设计了一个简单的基于文本的协议(protocol),由特殊字符分隔。我想采用一种专为快速传输而设计的协议(protocol),并且可能支持对通过 TCP 套接字传输的数据进行压缩和缩小。

最佳答案

我们可以通过以下任何一种方式,在UDP之上利用TCP的面向连接/可靠的特性,而不是使用重量级的TCP:

  1. UDP-based Data Transfer Protocol(UDT) : UDT 通过添加拥塞控制和可靠性控制机制构建在用户数据报协议(protocol) (UDP) 之上。 UDT 是一种应用层、面向连接的双工协议(protocol),支持可靠的数据流和部分可靠的消息传递。

    致谢: UDT 使用周期性确认 (ACK) 来确认数据包交付,而否定 ACK(丢失报告)用于报告数据包丢失。当数据传输速度很高时,周期性的 ACK 有助于减少反向路径上的控制流量,因为在这些情况下,ACK 的数量与时间成正比,而不是数据包的数量。

  2. 可靠用户数据报协议(protocol) (RUDP): 它旨在提供一种 UDP 过于原始的解决方案,因为需要保证顺序的数据包交付,但 TCP 增加了太多的复杂性/开销。

    它通过添加以下附加功能扩展了 UDP:

    1. 收到数据包的确认
    2. 开窗和拥塞控制
    3. 重传丢失的数据包
    4. 过度缓冲(比实时流式传输更快)

    en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol

关于language-agnostic - 在 TCP 之上是否有针对高吞吐量和低延迟进行优化的协议(protocol)/标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1380427/

相关文章:

language-agnostic - 衡量成功重构的指标

language-agnostic - 游戏框架的优缺点

algorithm - 如何快速找到最佳投弹区?

debugging - "if' VS "else if"

linux - 如何使用 netfilter 等 native Linux 工具按内容过滤数据包?

firefox-addon - 引导的 firefox 插件中的自定义协议(protocol)处理程序

java - 直接写入socket,获取TCP ZeroWindow

c++ - TCP 套接字(客户端-服务器)recv() 返回 -1 值

http - 当您不将 HTTP cookie 写回客户端时发生了什么?

swift - 在协议(protocol)中指定一个可设置的属性/变量