`
aigo
  • 浏览: 2541479 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

UDP和TCP的优缺点比较

阅读更多

UDP vs TCP, how much faster is it?

http://stackoverflow.com/questions/47903/udp-vs-tcp-how-much-faster-is-it

 

其中这段话是重点:

In some applications TCP is faster (better throughput) than UDP.

 

This is the case when doing lots of small writes relative to the MTU size. For example, I read an experiment in which a stream of 300 byte packets was being sent over Ethernet (1500 byte MTU) and TCP was 50% faster than UDP.

 

The reason is because TCP will try and buffer the data and fill a full network segment thus making more efficient use of the available bandwidth.

 

UDP on the other hand puts the packet on the wire immediately thus congesting the network with lots of small packets.

 

You probably shouldn't use UDP unless you have a very specific reason for doing so. Especially since you can give TCP the same sort of latency as UDP by disabling the Nagle algorithm (for example if you're transmitting real-time sensor data and you're not worried about congesting the network with lot's of small packets).

 

之前网上很多老文章都说关闭Nagle算法可以提高tcp通信性能,但是这应该看场景,如果客户端和服务端之前的小包消息频率不高,禁用nagle确实可以提高性能,但是反之:客户端服务端之间大部分时间都不是空闲而是不停收发消息,那么禁用nagle就降低性能了,如果是分布式服务器的应用场景,各个服务器之间用tcp通信,那么肯定不能禁用nagle,毕竟服务器压力较大时内部通信肯定极度频繁。

 

 

分享到:
评论

相关推荐

    TCP和UDP的区别和优缺点

    TCP和UDP的区别和优缺点

    网络通讯支持库(c#),支持udp、tcp、组播

    使用socket对象封装的网络通讯库。支持udp、tcp、组播,原来有一个项目需要经常改变传输方式,所以所有网络对象被设计为都从socketBase下继承,这样设计的优点及缺点就自己看吧。

    TCP/udp/ip协议分析

    互连网早期的时候,主机间的互连使用...为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。 TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议

    delphi UDP 安全传输 代码

    UDP安全传输(完整源码)大家都知道UDP比TCP好用发送速度快很多,程序写起来也简单的多,可缺点也同样明显UDP容易丢包,而且不能自动重发也不能自动组包没有数据安全机制,发的包不能超过2K(INDY,NMUDP等控件都是...

    UDP应用编程

    UDP应用编程参考文献, UDP协议同TCP协议相比的优缺点,利用UdpClient类完成单播、组播和广播。

    UDP可靠传输代码(delphi)

    大家都知道UDP比TCP好用发送速度快很多,程序写起来也简单的多,可缺点也同样明显UDP容易丢包,而且不能自动重发也不能自动组包没有数据安全机制,发的包不能超过2K(INDY,NMUDP等控件都是这样)否则就出错。...

    UDP传输的服务器

    UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的...

    UDP协议通信演示Delphi源码

    UDP通信的缺点 一旦UDP包过大的话,也能正常工作。只是优势就丢失了。 idUdpClient 主要用于发送udp请求,在接收udp响应的时候是同步的,所以一定要设置超时,否则的话程序容易死。 idUpdServer 即能用于发送udp...

    实时流媒体传输技术研究综述.pdf

    进展,阐述了一些目前主流的基于UDP和TCP的实时流媒体传输技术,并且比较分析了它们的优缺点。最后指 出低比特率、高丢包率与无线、强干扰环境下保证流媒体服务质量是未来的研究方向,移动实时流媒体业务则是 实时流...

    Hioc+Loic+Xoic

    本工具可以用来测试IP/TCP/UDP/ICMP FLOOD攻击,缺点不能设置攻击数量,只能验证ADS对应防护的基本功能。 根据用户选择的端口与协议执行DOS攻击任何服务器。该工具有三种攻击模式,第一个被称为测试模式,是非常基本...

    C语言教程-UDP传输系统实现,启动步骤和源码分享与教程解析

    UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的...

    论文研究-实时流媒体传输技术研究综述.pdf

    分层总结和综述了实时流媒体传输过程中的主要研究问题和研究进展,阐述了一些目前主流的基于UDP和TCP的实时流媒体传输技术,并且比较分析了它们的优缺点。最后指出低比特率、高丢包率与无线、强干扰环境下保证流媒体...

    Java中实现UDP协议编程的方法

    什么是UDP协议 UDP协议的全称是用户数据报...UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 为什么要使用UDP 在选择使用协议的时候,选择UD

    Java语言完成UDP协议编制程序

    UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据...

    delphi UDp通信

    UDP通信的缺点 一旦UDP包过大的话,也能正常工作。只是优势就丢失了。 idUpdServer (indy 版本为10.6.2) 即能用于发送udp数据包,也能用于接收udp数据包。 亲自测试过,传送掉包情况基本没有出现,通信状况良好

    eNET_New.zip

    大家都知道UDP这个东西太不可靠了,存在着乱序,丢包,包重复等缺点,但它的速度快,包有界等优点,但在实际编程中要自己处理乱序啊之类的问题会发疯 的。也许大家说用TCP就得了,第一点TCP的速度比较慢,第二个TCP...

    06-浏览器问题-网络问题-个人课堂总结

    强制缓存 && 协商缓存、进程、线程和协程区别联系、网络问题、HTTP 和 HTTPS概念区别优缺点工作原理、TCP三次握手四次挥手、TCP/IP / 如何保证数据包传输的有序可靠、TCP和UDP的区别、请求跨域问题、Cookie、...

    Android网络编程之UDP通信模型实例

    UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户...

    浅谈uIP中UDP协议改进方案

    UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的...

    Linux网络编程超级详细笔记

    需要了解不同的通信模型的优缺点和使用方式。 网络编程库:Linux下有多种网络编程库,包括libnet、libpcap等。这些库提供了丰富的函数和接口,可以方便地实现网络编程。 总之,Linux网络编程是一个非常重要的领域

Global site tag (gtag.js) - Google Analytics