TCP和UDP的区别,UDP保证可靠性能

一、TCP和UDP的区别

1,连接:TCP是面向连接的,而UDP是无连接的,即发送数据之前无需建立连接

2、可靠性:TCP提供可靠的服务,即通过TCP传输的数据无差错,无重复,无丢失,按序到达;而UDP尽最大努力传输,不保证可靠交付

3、连接方式:TCP的点到点传输,而UDP支持一对一,一对多,多对多传输

4、面向:TCP是面向字节流的,而UDP是面向报文的

5、提供:TCP提供拥塞控制,失败重传,UDP则没有

6、首部开销:TCP首部开销大,有20字节,而UDP首部开销小,只有8字节

7、逻辑通道:TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

二、UDP实现可靠性

由于在传输层UDP已经是不可靠的连接,那就要在应用层自己实现一些保障可靠传输的机制

简单来讲,要使用UDP来构建可靠的面向连接的数据传输,就要实现类似于TCP协议的

超时重传(定时器)

有序接受 (添加包序号)

应答确认 (Seq/Ack应答机制)

滑动窗口流量控制等机制 (滑动窗口协议)

等于说要在传输层的上一层(或者直接在应用层)实现TCP协议的可靠数据传输机制,比如使用UDP数据包+序列号,UDP数据包+时间戳等方法。

目前已经有一些实现UDP可靠传输的机制,比如


UDT(UDP-based Data Transfer Protocol)
基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)是一种互联网数据传输协议。UDT的主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差。 顾名思义,UDT建于UDP之上,并引入新的拥塞控制和数据可靠性控制机制。UDT是面向连接的双向的应用层协议。它同时支持可靠的数据流传输和部分可靠的数据报传输。 由于UDT完全在UDP上实现,它也可以应用在除了高速数据传输之外的其它应用领域,例如点到点技术(P2P),防火墙穿透,多媒体数据传输等等。

猜你喜欢

转载自blog.csdn.net/orzMrXu/article/details/102529731
今日推荐