TCP和UDP
一、TCP和UDP的区别
TCP | UDP |
---|---|
面向连接的可靠性传输 | 无连接不可靠 |
保证数据的无差错、不丢失、不重传且按序到达 | 尽最大努力交付,但不保证可靠交付 |
面向字节流 | 面向报文 |
只能是一对一 | 一对一或一对多 |
首部较大有20字节 | 首部只有8字节 |
用于需要可靠传输的情况 | 用于高速传输和对实时性有较高要求的通信(视频、音频等多媒体通信)或广播通信 |
TCP特点:流量控制、拥塞控制、面向连接、可靠传输
二、TCP滑动窗口和拥塞窗口比较
滑动窗口:发送方+接收方
解决发送方和接收方收发数据速率不一致的问题。滑动窗口相当于接收方的缓存,接收方向发送方通知自己可接受数据的大小,而发送方会根据这个数值发送数据
拥塞窗口:发送方
控制全局网络的拥塞情况。通过控制发送方每次发送的流量多少,来逐渐试探整体网络的拥塞程度。
如果没有拥塞控制,发送方每次发送的数据大小为滑动窗口,在只有两台主机的时候没有问题,但在现实的网络大环境中,如果每台主机都发送滑动窗口大小的数据,那整个网络系统必然会瘫痪,所以通过在发送方设置拥塞窗口,可以有效缓解网络压力。
三、TCP拥塞控制
慢启动+拥塞避免;快速重传+快速恢复
- 慢启动:防止一开始速率过快,导致耗尽中间路由器存储空间,从而严重降低TCP连接的吞吐量
- 拥塞避免:当拥塞发生时,降低网络传输速率
- 快速重传:在接收到相同ACK后,推断出丢失报文段起始序号,然后立即重传此报文
- 快速恢复:在快速重传基础上,如果发生了快速重传,则执行拥塞避免算法而非慢启动