`

TCP和UDP之间的区别

    博客分类:
  • tcp
阅读更多

转自<http://feinibuke.blog.51cto.com/1724260/340272>

TCP和UDP区别
 
 
TCP
UDP
是否连接
面向连接
面向非连接
传输可靠性
可靠的
不可靠的
应用场合
传输大量的数据
少量数据
速度
 
 OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议)。
UDP
    UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP。ICQ 短消息使用 UDP 协议发送消息。
    许多程序将使用单独的TCP连接和单独的UDP连接。重要的状态信息随可靠的TCP连接发送,而主数据流通过UDP发送。
TCP
    TCP的目的是提供可靠的数据传输,并在相互进行通信的设备或服务之间保持一个虚拟连接。TCP在数据包接收无序、丢失或在交付期间被破坏时,负责数据恢 复。它通过为其发送的每个数据包提供一个序号来完成此恢复。记住,较低的网络层会将每个数据包视为一个独立的单元,因此,数据包可以沿完全不同的路径发 送,即使它们都是同一消息的组成部分。这种路由与网络层处理分段和重新组装数据包的方式非常相似,只是级别更高而已。
    为确保正确地接收数据,TCP要求在目标计算机成功收到数据时发回一个确认(即 ACK)。如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要 时丢弃它。
TCP与UDP的选择
    如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数和目的端口数也都支持一台 主机上的多个应用。一个16位的UDP包包含了一个字节长的头部和数据的长度,校验码域使其可以进行整体校验。(许多应用只支持UDP,如:多媒体数据 流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。)
    很明显,当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。当强调传输性能而不是传输的完整性时,如:音频和多 媒体应用,UDP是最好的选择。在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。把 SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。TCP丰富的功能有时会导致不可预料 的性能低下,但是我们相信在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。
 
TCP协议和UDP协议特性区别总结:
     1. TCP协议在传送数据段的时候要给段标号;UDP协议不
     2. TCP协议可靠;UDP协议不可靠
     3. TCP协议是面向连接;UDP协议采用无连接
     4. TCP协议负载较高,采用虚电路;UDP采用无连接
     5. TCP协议的发送方要确认接收方是否收到数据段(3次握手协议)
     6. TCP协议采用窗口技术和流控制
分享到:
评论

相关推荐

    TCP 和 UDP区别

    介绍和解释TCP , UDP, 他们之间的区别是什么,是我们更清楚他们之间的区别

    Socket编程-即时通讯工具-基于TCP和UDP协议-包括服务器端和客户端

    基于TCP和UDP协议实现的一个即时通讯工具,具体功能包括: 工具包括服务器端和客户端; 具备用户注册、登录、找回密码功能(基于TCP协议); 两个用户如果同时在线,采用点到点通信方式进行聊天,信息不需要通过...

    C#实现 TCP/UDP与串口之间相互转发通信,包含多个实例,有心跳过滤等

    C#实现 TCP/UDP与串口之间相互转发通信,包含多个实例,有心跳过滤等。包含串口之间相互转发。UDP与串口之间转发,TCP与串口之间相互转发。注释比较少,包含各种情况模拟事例,可自行参考相关描述。工程内包含多个...

    TCP-UDP服务管理

    TCP-UDP服务管理,可以方便的测试服务器和客户端之间的通信

    TCP/UDP 传输数据

    分别基于tcp/udp 协议 的客户与服务器之间传输数据的实现源码

    TCP+UDP聊天室

    TCP+UDP通信聊天室,C与S之间的连接使用TCP,C与C之间的通信使用UDP通信。

    socket 网络编程 TCP协议UDP协议传输

    socket 网络编程 TCP协议 UDP协议 服务器和客户端之间的传输

    Winform 实现UDP协议以及TCP协议进行通信

    这是用Winform实现TCP以及UDP协议之间的通讯,包含tcp客户端与服务器端,以及内部之间的通讯。UDP也是一样的

    基于TCP或UDP的客户端与服务器编程网络聊天-课程设计(含课程报告和代码).rar

    基于TCP或UDP的客户端与服务器编程网络聊天-课程设计(含课程报告和代码)

    TCP+UDP通信实验

    1,Server支持多客户访问; 2,C与S之间使用TCP连接; 3,C与C之间直接通信(不是通过S传递)。...4,C与C之间直接通信既可以使用TCP,也可以使用UDP。 5,可以使用Socket,也可以使用TcpClient/UdpClient等;

    局域网tcp/udp 通讯调试小助手

    专业的tcp udp调试助手,可以方便快捷的调试tcp或者udp设备之间的通讯,监视通讯状态,依旧通讯效果。

    TCP/UDP Socket调试工具

    TCP/UDP Socket调试工具,可以模拟tcp udp的服务端和客户端,完成数据的收接发,还可以进行数据之间的监听

    实验2,TCP+UDP通信实验

    1,Server支持多客户访问; 2,C与S之间使用TCP连接; 3,C与C之间直接通信(不是通过S传递)。...4,C与C之间直接通信既可以使用TCP,也可以使用UDP。 5,可以使用Socket,也可以使用TcpClient/UdpClient等;

    基于C语言的TCPUDP通信实现代码

    用C语言实现的TCP协议和UDP协议在两台主机之间实现通信功能,代码在VC6.0++里可以实现,代码的各个模块已经做好了注释,轻松易懂

    tcp、udp项目

    该项目实现了tcp、udp的客户端与服务器之间通信的代码,适合java通信方面的研究

    TCP和UDP端口详解

    协议端口号用正整数标识,范围在0到65535之间。 按端口号可分为3大类:(1)公认端口(Well Known Ports):从0到1023, 它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。 例如:...

    TCP、UDP网络通信调试分析助手

    NetAssist,支持TCP和UDP协议,可以作为客户端或服务器端使用,方便进行网络通信联调;支持ASCII/Hex两种模式的数据收发,发送和接收的数据可以在16进制和ASCII码之间任意转换;可以自动发送校验位,支持多种校验...

    tcp,udp传文件

    用tcp,udp实现两个机器之间传文件·而且只用改一下你的端口号就能运行,在这个基础上进行修改就能完善成类似飞鸽传书的软件。

    C# tcp,udp服务器,客户端实例

    c# TCP与UDP 的服务器与客户端通讯的实例,代码中有客户端与服务器端,并且还扩展了服务器与客户端之间的通讯加密算法。

    Qt基于tcp和udp局域网聊天工具

    首先建立一个局域网 可以实现多台机子之间的交流 部分功能不错 界面比较完善。有开机启动画面 登录框 聊天框 代码简单易懂 持续跟新

Global site tag (gtag.js) - Google Analytics