TCP详解(五):TCP与UDP的区别

系列文章

TCP详解(一):什么是TCP

TCP详解(二) : TCP三次握手、四次挥手

TCP详解(三):TCP流量控制——Flow Control

TCP详解(四):TCP拥堵控制——Congestion Control

TCP详解(五):TCP与UDP的区别

本篇目录

什么是UDP

TCP与UDP的区别

连接(Connection)

 头部大小(header size)

数据有序性

数据确认机制

数据重传机制

流量控制和拥堵控制

错误检测

广播发送数据

TCP和UDP的优缺点

TCP和UDP的使用场景


什么是UDP

我们在TCP详解(一):什么是TCP中讲述过,什么是传输控制层和TCP。UDP同TCP一样,是一种传输控制协议,全称为User Datagram Protocol。

UDP数据包称为datagram,由header和data组成,data部分是真正传输的数据,header部分存储控制信息。

  • source port:发送方主机端口号,代表数据从终端的哪个端口发出。
  • destination port:接收方端口号,代表数据将抵达目标终端的哪个端口。
  • length 数据长度,包含header的data。
  •  checksum:校验和,进行最基本的错误校验TCP与UDP的区别

TCP与UDP的区别

连接(Connection)

TCP在传送数据之前,必须通过握手建立TCP连接,而UDP不用。

 头部大小(header size)

TCP数据包的头部占用20个字节,而UDP数据包的头部只占8个字节。

数据有序性

我们在TCP详解(一):什么是TCP中讲到,TCP会为待传输的数据的每个字节编上序列号,起始字节的序列号为随机数,后续字节依次加1。TCP接收端根据序列号对数据包排序,以及判断是否有数据包丢失,UDP的数据包不具备顺序。

数据确认机制

TCP接收端会对收到的每一个数据包回发一个ack确认包以确认成功接收了该数据包。UDP不存在该机制。

数据重传机制

当TCP数据包丢失或损坏,都会触发重传机制,包括超时重传和接收方连续三次发送同一数据包的ack包触发重传。UDP不存在该机制。

流量控制和拥堵控制

在TCP中,为了避免发送方发送的数据超出接收方的处理能力,在ack确认包通过receiver window来表明当前可接收的最大数据量,称之为流量控制。为了避免发送方发送的数据超出网络承载能力,通过congestion window表明当前网络可接收的最大数据量,称之为拥堵控制。发送方发送的数据受二者的限制,取二者的最小值。

UDP不存在该机制。

错误检测

TCP对数据完整性要求高,数据出现错误后将触发重传。UDP只进行一些基本的错误检测,并不能完全检测数据包的错误。

广播发送数据

TCP发送数据必须建立TCP连接,所以是一对一。UDP可支持广播发送数据。

TCP和UDP的优缺点

TCP的优点就是可靠,确保数据的完整性,且支持流量控制和网络拥堵控制。而这一切都是以牺牲速度得来的,所以它的缺点就是慢。

UDP与之相反,优点是速度快,但是数据完整性不能保证,丢包及数据错误都不能触发重传。

TCP和UDP的使用场景

TCP常用于对数据可靠性要求很高的应用,比如邮件,http/https,ftp等。

UDP常用于对数据实时性要求高,可容忍一定的数据丢失和错误率,如视频聊天,在线游戏,DNS等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vincent(朱志强)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值