UDP传输方式
UDP (User Datagram Protocol )用户数据报协议,是一种面向无连接的传输方式,不提供复杂的控制机制, 如果传输过程中出现丢包, UDP 也不负责重发. 甚至当出现包到达顺序乱掉时候也没有纠正的功能. 由于 UDP 面向无连接, 它可以随时发送数据. 再加上 UDP 本身的处理既简单又高效, 因此常用于以下几个方面:
1.包总量较少的通信(DNS)
2.视频、音频等多媒体通信(即时通信)
3.限定于 LAN 等特定网络中的应用通信
4.广播通信(广播、多播)
TCP传输方式
TCP (Transmission Control Protocol)传输控制协议,是一种面向有连接的通信服务, 只有在确认通信对端存在时才会收发数据, 从而可以控制通信流量的浪费. TCP 提供了数据传输时的各种控制功能, 丢包时可以进行重发控制, 还可以将次序乱掉的分包进行顺序控制。TCP最大的特点就是可靠传输:
1.应答机制:对方收到消息底层会回复
2.超时重传:给多方发送一个数据,如果一段时间内对方没有接收,会隔一段时间给对方再次发送,如果一直没有回复,会认为对方掉线了
3.错误校验:如果接收的数据包序号发生了错乱,TCP会自动排序,保证数据的有序性,如果有重复数据包,会删除重复的数据包
4.流量控制:数据发送在网卡缓存区达到一定上限,对方不会一直发送数据,需要等待对方接收数据,网卡缓存区有空间再发送,保证网卡缓存不会超出
UDP与TCP的不同
UDP传输协议(用户数据报协议) | TCP传输协议(传输控制协议) | |
1 | 发送数据不需要建立连接(面向无连接) | 发送数据需要建立连接(面向有连接) |
2 | 不能保证数据的有效性和准确性 | 可以保证数据的有效性和准确性 |
3 | 只能发送少量数据,每个数据包最大64K | 可以发送大量数据 |
4 | 目的主机:一对一、一对多 | 目的主机:一对一 |
5 | 适合做广播,主要用于广播和视频直播等 | 不适合做广播,传输速度没有UDP快 |
6 | 比TCP节省资源 | 使用资源较多 |
UDP 主要用于哪些对高速传输和实时性要求高的通信广播通信。UDP多用于即时通信和广播 | TCP 用于有必要实现可靠传输的情况. 由于它是面向有连接并具备顺序控制、重发控制等机制的, 所以他可以为应用提供可靠的传输。TCP多用于文件和数据的传输。 |
3.总结:
我们举一个通过 IP 电话进行通话的例子. 如果使用TCP, 数据在传输过程中如果丢失被重发, 会导致无法流畅传输通话人的声音, 会导致无法进行正常交流. 而采用 UDP, 它不会进行重发处理. 从而也就不会有声音大幅度延迟到达的问题 即使有部分数据丢失, 也只会影响某一小部分的通话. 此外, 在多播与广播通信中也使用 UDP, 而不是 TCP. 因此, TCP 和 UDP 应该根据应用的目的按需使用。