TCP和UDP的区别(使用场景)

TCP:

1)面向连接的(三次握手建立连接)(可靠性传输)

2)提供可靠的服务

3)面向字节流:面向字节流是以字节为单位发送数据,并且一个数据包可以以字节大小来拆分成多个数据包,以方便发送。

4)只支持点对点通信:需要双方建立连接。

5)TCP 的首部较大为 20 字节

UDP:

1)无连接的(发送时无需建立连接)

2)尽最大努力交付,不保证可靠交付(不可靠,所以不能保证对方收到)

3)面向报文,

4)UDP支持一对一,一对多,多对多

5)UDP 只有 8 字节。

TCP保证自身可靠的方式:

1)数据包校验由发送端计算,然后由接收端验证(16为数据校验和)防止发送过来的数据是错误数据
2)确认序列号,用来跟踪该端发送的数据量,对失序报文进行重排
3)作为IP数据报来传输的TCP分片会发生重复,TCP的接收端必须丢弃重复的数据
4)确认应答机制,每次接收方收到数据后,都会对传输方进行确认应答,也就是会发送ACK报文
5)超时重传机制,发送某一个数据以后就开启一个 计时器 ,在一定时间内如果没有得到发送的数据报的ACK 报文 ,那么就重新发送数据,直到发送成功为止。
6)流量控制(16位窗口大小)所谓流量控制就是让发送发送速率不要过快,让接收方来得及接收。确保接收方收到的数据在自身缓冲区中不会溢出
7)拥塞控制,保证数据在网络中传播的可靠性,降低丢包的概率,提高TCP的可靠性

UDP不可靠的原因:
没有上述TCP机制 并且如果校验和出错,则UDP会将该报文丢弃

什么时候选TCP or UDP

实时性要求比较高的情况,选择UDP,比如IP电话,视频会议,游戏,媒体通信,直播,

可靠传输的应用,选择TCP,比如传输文件

猜你喜欢

转载自blog.csdn.net/Anyo1n/article/details/126837270