- 概念
- 特点
- 应用场景
- 区别
1、概念及特点
TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。
- 当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
- TCP充分实现了数据传输时各种控制功能。通过检验和、***、确认应答、重发控制、连接管理以及窗口控制等控制机制实现可靠性传输。
UDP(用户数据报协议)是一个简单的面向数据报的运输层协议。
- UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
- 由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
由于UDP缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。
UDP补充:
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,传输途中如果出现了丢包,UDO也不负责重发。甚至当出现包的到达顺序乱掉时也没有纠正的功能。如果需要这些细节控制,那么不得不交给由采用UDO的应用程序去处理。换句话说,UDP将部分控制转移到应用程序去处理,自己却只提供作为传输层协议的最基本功能。
2、应用场景
由于缺乏可靠性且属于非连接导向协议,UDP的应用一般必须允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,需要可靠性保证,则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、即时多媒体游戏和IP电话(VoIP)就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(即TCP协议)来代替UDP。
因为UDP不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失几个数据包,也不会对接收结果产生太大影响。
UDP应用场景:
1.面向数据报方式
2.网络数据大多为短消息
3.拥有大量Client
4.对数据安全性无特殊要求
5.网络负担非常重,但对响应速度要求高
使用UDP协议的应用有:
- 域名系统(DNS)、
- 简单网络管理协议(SNMP)、
- 动态主机配置协议(DHCP)、
- 路由信息协议(RIP)等等。
3、区别
TCP与UDP区别:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、TCP传输的数据量大(首部开销20字节);UDP传输量小(首部开销小,只有8个字节)
5、TCP数据传输速度慢,UDP传输速度快
6、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
7、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
区别总结:
1、基于连接与无连接
2、TCP保证可靠性传输(数据正确性,顺序),UDP不保证可靠性(丢包)
3、TCP传输数据量大,UDP少
4、TCP传输慢,UDP快
5、TCP要求系统资源较多,UDP较少;
6、UDP程序结构较简单
7、流模式(TCP)与数据报模式(UDP);