TCP与UDP的特点以及TCP与UDP的区别

TCP/IP运输层包含TCP和UDP两个主要协议。TCP提供面向连接、可靠的数据传输,确保数据无差错、不丢失、不重复并按序到达;而UDP则是无连接的,不保证数据的可靠交付,但具有更高的效率,适合实时应用。两者的区别在于连接方式、数据可靠性、拥塞控制及报文处理等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP/IP运输层的两个主要协议分别是TCP(传输控制协议)与UDP(用户数据报协议)。传送的数据单位分别叫“TCP报文段”或“UDP用户数据报”

UDP(用户数据报协议)

主要特点:
1)无连接的,发送数据之前不需要连接,减少了开销。
2)尽最大努力交付。即不保证可靠交付。
3)面向报文。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。同样的,IP层交上来的UDP用户数据报,去除首部后就原封不动的交付上面的应用进程。也就是说,一次交付一个完整的报文。
4)没有拥塞控制。因此网络拥塞不会使主机发送速率降低。但是可能会丢失一些数据。
5)支持一对一,一对多,多对一和多对多的交互通信。
6)UDP首部开销小,只有8个字节,比TCP的20个字节的首部要短。 

TCP(传输控制协议)

主要特点:

1)面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP连接。也就是说,应用进程之间的通信好像在“打电话”,通话之前要先拨号建立连接,通话结束后要挂机释放连接。

2)每一条TCP只能有两个端点。每一条TCP连接只能是点对点的(一对一)。

3)TCP提供可靠交付。通过TCP连接传送的数据,无差错、不丢失不重复,并且按序到达。

4)TCP提供全双工通信(全双工通信:即通信的双方可以同时发送和接收信息的信息交互方式。半双工通信:即通信的双方都可以发送和接受信息,但同一时刻只能有一个方向。)。

4)面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。发送方要先把数据转化为字节流写入发送缓存进行发送,且接收方必须有能力识别字节流。

UDP与TCP的区别

1)UDP在传送数据之前不需要先建立连接。远地主机运输层在收到UDP报文后,不需要给出任何确认。因此UDP不提供可靠交付,但是效率高。TCP则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销,如确认、流量控制等。

2)TCP和UDP在发送报文时所采用的方式完全不同。TCP并不关心进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞程度决定一个报文段包含多少字节,而UDP发送报文长度是应用进程给出的。如果应用进程传送到TCP缓存的数据块太长,TCP就划分短一些再传送。若过短也可以等待积累足够多的字节后再构成报文段发送出去。

3)UDP程序结构比较简单。它的首部最少为8字节而TCP最少为20字节。

4)UDP不保证数据的顺序结构,而TCP必须保证数据的顺序结构。

5)TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值