UDP
在传送数据之前不需要先建⽴连接,远地主机在收到
UDP
报⽂后,不需要给出任何确认。
虽然
UDP
不提供可靠交付,但在某些情况下
UDP
确是⼀种最有效的⼯作⽅式(⼀般⽤于即时通
信),⽐如:
QQ
语⾳、
QQ
视频 、直播等等
TCP
提供⾯向连接的服务。在传送数据之前必须先建⽴连接,数据传送结束后要释放连接。
TCP
不提供⼴播或多播服务。由于
TCP
要提供可靠的,⾯向连接的传输服务(
TCP
的可靠体现
在
TCP
在传递数据之前,会有三次握⼿来建⽴连接,⽽且在数据传递时,有确认、窗⼝、重传、
拥塞控制机制,在数据传完后,还会断开连接⽤来节约系统资源),这⼀难以避免增加了许多开
销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的⾸部增⼤很多,还要
占⽤许多处理机资源。
TCP
⼀般⽤于⽂件传输、发送和接收邮件、远程登录等场景。
TCP
协议如何保证可靠传输
1.
应⽤数据被分割成
TCP
认为最适合发送的数据块。
2. TCP
给发送的每⼀个包进⾏编号,接收⽅对数据包进⾏排序,把有序数据传送给应⽤层。
3.
校验和:
TCP
将保持它⾸部和数据的检验和。这是⼀个端到端的检验和,⽬的是检测数据
在传输过程中的任何变化。如果收到段的检验和有差错,
TCP
将丢弃这个报⽂段和不确认收
到此报⽂段。
4. TCP
的接收端会丢弃重复的数据。
5.
流量控制:
TCP
连接的每⼀⽅都有固定⼤⼩的缓冲空间,
TCP
的接收端只允许发送端发送
接收端缓冲区能接纳的数据。当接收⽅来不及处理发送⽅的数据,能提示发送⽅降低发送的
速率,防⽌包丢失。
TCP
使⽤的流量控制协议是可变⼤⼩的滑动窗⼝协议。 (
TCP
利⽤滑
动窗⼝实现流量控制)
6.
拥塞控制:
当⽹络拥塞时,减少数据的发送。
7.
ARQ
协议:
也是为了实现可靠传输的,它的基本原理就是每发完⼀个分组就停⽌发送,等
待对⽅确认。在收到确认后再发下⼀个分组。
8.
超时重传:
当
TCP
发出⼀个段后,它启动⼀个定时器,等待⽬的端确认收到这个报⽂段。
如果不能及时收到⼀个确认,将