`
aigo
  • 浏览: 2635700 次
  • 性别: 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 的区别和优缺点 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是两种常用的传输层协议,它们之间存在许多区别,了解这些区别对于网络编程和...

    网络编程 udp tcp

    网络编程是计算机科学中的一个重要领域,它涉及到通过网络在不同设备间交换数据。...通过编写和比较UDP和TCP的聊天程序,开发者能够深入理解这两种协议的优缺点,为今后的网络编程工作打下坚实基础。

    UDP_TCP包测试工具

    在IT领域,网络通信是至关重要的部分,而UDP(用户数据报协议)和TCP(传输控制协议)则是网络通信中最常见的两种传输层协议。本文将深入探讨UDP与TCP的特性,以及如何使用测试工具来分析和理解这两种协议的包。 ...

    UDP,TCP监控实例

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种最常使用的传输层协议。本篇将深入探讨如何使用C#编程语言来实现对TCP和UDP数据包的监控实例,以及如何进行TCP设备...

    基于Socket的UDP和TCP编程介绍

    ### 基于Socket的UDP和TCP编程介绍 #### 一、概述 在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种最为基础且重要的传输层协议,它们各自拥有独特的特性和应用场景。这两种协议都运行在网络...

    tcp和udp理解(有图有例子)

    TCP和UDP协议详解 TCP和UDP是OSI模型中最重要的两种传输层协议,分别是面向连接的可靠的传输控制协议和无连接的用户数据报协议。 一、概述 TCP(传输控制协议)是一种面向连接的协议,提供可靠的全双工字节流...

    TCP、UDP 通信程序设计实验报告

    在深入探讨TCP与UDP通信程序设计实验报告之前,我们首先要了解TCP(传输控制协议)和UDP(用户数据报协议)之间的区别和...最后,比较面向连接的通信和无连接通信的优缺点和适用场景,以便在实际应用中做出合适的选择。

    udp-tcp.rar_TCP连接

    总结来说,TCP和UDP是网络通信的两种主要协议,它们各自有优缺点。TCP提供可靠的服务,适合需要保证数据完整性的应用,如网页浏览、电子邮件和文件传输。UDP则适用于实时应用,如视频会议和在线游戏,牺牲了可靠性以...

    TCP-UDP.zip_TCP 报文_UDP连接_tcp/udp_udp 收发_网络报文

    总的来说,TCP和UDP各有优缺点,选择哪种协议取决于具体的应用需求。理解这两种协议的工作原理及其在网络编程中的应用,是成为一名合格的IT专业人士所必须掌握的基础知识。通过深入学习和实践,我们可以更好地设计和...

    基于Socket的UDP和TCP编程介绍.

    ### 基于Socket的UDP和TCP编程介绍 #### 一、概述 在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种最为基础且重要的传输层协议,它们各自针对不同的应用场景提供了特定的服务。这两种协议都是...

    socket C++ UDP TCP

    TCP和UDP各有优缺点,适用于不同的应用场景。理解并熟练掌握Socket编程,能够帮助开发者构建高效、可靠的网络应用程序。在实际项目中,应根据需求选择合适的协议,并正确处理各种网络情况,以确保数据的准确传输。

    tcp&udp测试工具.zip

    总之,TCP和UDP各有优缺点,适用于不同的应用场景。了解它们的工作原理并掌握相关的调试工具,对于网络编程至关重要。这个"tcp&udp测试工具"无疑是一个便捷的资源,能够帮助我们更好地理解和测试这两种基础网络协议...

    TCP/UDP 传输数据

    总结来说,TCP和UDP是网络通信中不可或缺的协议,它们各有优缺点,选择使用哪种协议取决于应用的需求。理解它们的工作原理和编程实现,对于进行网络编程和优化网络应用至关重要。在实际项目中,开发者应结合TCP和UDP...

    TCP、UDP简单示例程序

    TCP和UDP各有优缺点。TCP适合需要稳定、可靠传输的应用,如文件传输、电子邮件等;而UDP适合实时性要求高的应用,如在线直播、多人在线游戏等。了解并正确选择使用TCP或UDP,对于开发高效、稳定的网络应用程序至关...

    python-3、4-网络udp-tcp编程

    - **长连接与短连接**:分析长连接和短连接的优缺点,根据实际需求选择合适的连接方式。 #### TCP网络程序 - **客户端**:编写客户端代码,连接到服务器并发送请求。 - **服务器**:编写服务器代码,监听客户端连接...

    UDP和TCP哪种协议应用更广泛?.docx

    UDP(用户数据报协议)和TCP(传输控制协议)是互联网传输层的两种主要协议,它们各有特点,适用场景也有所不同。在理解哪种协议应用更广泛之前,我们首先要了解它们的基本特性和工作原理。 UDP是一种无连接的协议...

    TCP-UDP.zip_TCP UDp

    总结来说,TCP和UDP是互联网中至关重要的传输层协议,它们各有优缺点,适应不同的应用场景。这个压缩包提供的客户端和服务器程序为我们提供了一个实践平台,让我们能够亲手探索和理解TCP和UDP的工作机制,从而更好地...

    Socket的TCP、UDP通讯

    总结来说,Socket编程涉及TCP和UDP这两种协议,它们各有优缺点,适用于不同的应用场景。TCP适合需要保证数据完整性和顺序性的场景,而UDP则适用于实时性要求高的场景。通过熟练掌握Socket编程,开发者可以构建各种...

    文件复制,TCP与UDP通信

    总的来说,TCP和UDP各有优缺点,适用于不同的场景。Java作为强大的开发工具,提供了完善的网络编程接口,可以灵活地实现各种网络通信需求,包括文件复制。理解并熟练掌握TCP和UDP的工作原理及Java的网络编程,对于...

    TCP.UDP高级编程(含源代码)

    4. **同步与异步**:理解同步和异步I/O模型在TCP/UDP编程中的应用及其优缺点。 这个资源的源代码部分将涵盖以上提到的各个方面,通过阅读和实践,开发者不仅可以掌握TCP和UDP的基本原理,还能了解到在实际项目中...

Global site tag (gtag.js) - Google Analytics