1、TCP和UDP的区别
- TCP面向连接;UDP无连接。
- TCP保证数据的可靠传输,数据传输无差错,不丢失,无重复,按序到达;UDP保证可靠交付。
- TCP连接一对一;UDP支持更广泛。
- UDP实时性好,效率高,适用场景:短信息传输,大量客户端,对数据安全性要求不高但实时性要求较高。
- TCP面向数据流;UDP面向数据报。
2、拥塞控制
发送端通过拥塞窗口主动控制传输流量。
- **TCP模块为了防止过多的数据注入网络,使网络中的路由器或链路不至于过载。以此提高网络利用率,降低丢包率,并保证网络资源对每一条数据流的公平性而采用的控制手段。**拥塞控制包含四部分内容:慢启动、拥塞避免、快速重传、快速恢复。
- 慢启动: 防止双方通信刚开还就传送大量数据包,发送端拥塞窗口初始值设置为1MSS,每接受一个ACK信号,窗口扩大为两倍。发送数据时,取拥塞窗口和滑动窗口的较小值。同时设定一个慢启动阀值,当阻塞窗口大小超过阀值时,改进线性增长,直到网络拥塞。拥塞时将慢启动阀值设置为当前窗口的一半,然后再次重复操作。
3、流量控制(滑动窗口协议)
TCP连接的每一方都有固定大小的缓存空间。TCP的接收端只允许另外一端发送接收端缓冲区所能容纳的数据,这将防止较快主机致使较慢主机的缓冲区溢出。 滑动窗口技术存在与数据链路层和传输层。两者有不同的协议,但基本原理相同。区别是一个发送帧,一个发送字节数据。接受方的接受窗口告诉发送方本端tcp接受缓冲区还能容纳多少字节,发送方的发送窗口就可以控制发送数据的速度。