为什么UDP在有损网络中的性能比TCP好

为什么UDP在有损网络中的性能比TCP好,tcp,udp,snmp,Tcp,Udp,Snmp,我正在浏览以下链接。 我不明白为什么UDP在有损网络中的性能比TCP好?有人能澄清一下吗?首先,因为这个问题是关于网络而不是编程的,所以无论如何,它不属于这里 TCP是一种比UDP更慢、更可靠的协议。相比之下,UDP速度更快、效率更高。例如,TCP有更多的标志(窗口长度、syn、ack等),并且还以非常稳定的方式启动和结束连接,而UDP只有源IP、目的IP、长度、源端口、目的端口和校验和 为了发送所有这些额外的数据包来启动和结束连接,每个数据包的验证过程都需要时间——而UDP是一个数据流,不介意

我正在浏览以下链接。
我不明白为什么UDP在有损网络中的性能比TCP好?有人能澄清一下吗?

首先,因为这个问题是关于网络而不是编程的,所以无论如何,它不属于这里

TCP是一种比UDP更慢、更可靠的协议。相比之下,UDP速度更快、效率更高。例如,TCP有更多的标志(窗口长度、syn、ack等),并且还以非常稳定的方式启动和结束连接,而UDP只有源IP、目的IP、长度、源端口、目的端口和校验和

为了发送所有这些额外的数据包来启动和结束连接,每个数据包的验证过程都需要时间——而UDP是一个数据流,不介意到处丢失几个字节,TCP是一个可靠的协议——这反过来需要更长的时间,效率更低


这是一个非常笼统的解释——首先,我强烈建议你

,因为这个问题是关于网络而不是编程的,无论如何,它不属于这里

TCP是一种比UDP更慢、更可靠的协议。相比之下,UDP速度更快、效率更高。例如,TCP有更多的标志(窗口长度、syn、ack等),并且还以非常稳定的方式启动和结束连接,而UDP只有源IP、目的IP、长度、源端口、目的端口和校验和

为了发送所有这些额外的数据包来启动和结束连接,每个数据包的验证过程都需要时间——而UDP是一个数据流,不介意到处丢失几个字节,TCP是一个可靠的协议——这反过来需要更长的时间,效率更低

这是一个非常笼统的解释-我强烈建议您: 在协议栈的较低级别,由于网络拥塞、流量负载平衡或其他不可预测的网络行为,IP数据包可能丢失、复制或无序传送。TCP检测这些问题,请求重新传输丢失的数据,重新排列无序的数据,甚至帮助最小化网络拥塞以减少其他问题的发生。如果数据仍然未送达,则会将此故障通知其来源。一旦TCP接收器重新组装了最初发送的八位字节序列,它就会将它们传递给接收应用程序。因此,TCP从底层网络细节中抽象出应用程序的通信。 TCP针对准确传递而不是及时传递进行了优化,因此,在等待无序消息或丢失消息的重新传输时,TCP有时会产生相对较长的延迟(以秒为单位)。它并不特别适用于实时应用,如IP语音。对于此类应用程序,通常建议使用运行在用户数据报协议(UDP)上的实时传输协议(RTP)等协议。 (来源维基百科)

SNMP通过UDP进行实时监控

更多的上下文解释

查看snmp数据详细信息。关于有损网络中tcp与udp的一些图 TCP: 在协议栈的较低级别,由于网络拥塞、流量负载平衡或其他不可预测的网络行为,IP数据包可能丢失、复制或无序传送。TCP检测这些问题,请求重新传输丢失的数据,重新排列无序的数据,甚至帮助最小化网络拥塞以减少其他问题的发生。如果数据仍然未送达,则会将此故障通知其来源。一旦TCP接收器重新组装了最初发送的八位字节序列,它就会将它们传递给接收应用程序。因此,TCP从底层网络细节中抽象出应用程序的通信。 TCP针对准确传递而不是及时传递进行了优化,因此,在等待无序消息或丢失消息的重新传输时,TCP有时会产生相对较长的延迟(以秒为单位)。它并不特别适用于实时应用,如IP语音。对于此类应用程序,通常建议使用运行在用户数据报协议(UDP)上的实时传输协议(RTP)等协议。 (来源维基百科)

SNMP通过UDP进行实时监控

更多的上下文解释

查看snmp数据详细信息。关于有损网络中tcp与udp的一些图
UDP本身在有损网络中表现不佳。UDP仅用于不同类型的应用程序:

  • 如果少量数据丢失不是主要问题,则可以使用UDP。这就是为什么UDP用于实时音频,其中延迟很差,但可以解决少量数据丢失的问题。它用于syslog或SNMP等可能丢失一些数据的情况
  • 如果您需要可靠的数据传输,即不丢失数据,那么TCP会更好,因为它会确认所有接收到的数据并重新传输丢失的数据包。因此,TCP被用于Web、邮件传输等

除此之外,TCP和UDP都不是为高数据包丢失的网络设计的。他们都希望由于拥塞等原因造成小的数据包丢失,并希望底层(即以太网、WLAN等)能够处理主要的传输问题。

UDP本身在有损网络中表现不佳。UDP仅用于不同类型的应用程序:

  • 如果少量数据丢失不是主要问题,则可以使用UDP。这就是为什么UDP用于实时音频,其中延迟很差,但可以解决少量数据丢失的问题。它用于syslog或SNMP等可能丢失一些数据的情况
  • 如果您需要可靠的数据传输,即不丢失数据,那么TCP会更好,因为它会确认所有接收到的数据并重新传输丢失的数据