1.TCP和UDP的区别
- TCP是有连接、可靠传输的;UDP无连接、不可靠传输;
- TCP只支持一对一的通信,而UDP可以做到一对一、一对多以及多对多的通信;
- TCP是面向字节流的,UDP是面向数据报文的;
- TCP能够保证数据的传送顺序,UDP不能。
2.TCP是怎么实现可靠传输的?
TCP保证可靠传输的机制有很多种,像超时重传、连接管理、拥塞控制这些机制。
- 超时重传:
指的是消息的发送方在发送消息后的指定时间段内没有接受到消息的接收方响应的ACK确认报文段,就重新发送数据报的机制。在这个过程中不论是消息发送方发送的消息报文丢包还是消息接收方响应的ACK确认报文段丢包,都会触发这个机制。 - 连接管理:
这个就是TCP三次握手建立可靠传输和四次挥手安全断开连接的机制。 - 拥塞控制:
指的是在一开始不清楚网络环境的情况下,盲目的传输大量的数据报可能会由于网络阻塞造成大程度的丢包,反而可能会降低数据的传输效率和传输的可靠性。拥塞控制采取的是在一开始时发送少量的数据报,然后通过试验的方式动态调整增加发送的数据量,从而减少丢包现象产生,进一步确保数据传输的可靠性。
3.TCP和UDP的应用场景
- 由于TCP是有连接且可靠传输,所以它的传输效率会有一定程度的降低。党对数据的准确性和完整性要求较高时,可以使用这个协议,像文件传输;
- 同样的,由于UDP是无连接的,因此它的传输效率较高。像多人竞技游戏交互、语音/视频电话这些。