《TCP/IP网络编程》学习笔记 | Chapter 6:基于UDP的服务器端/客户端
- 《TCP/IP网络编程》学习笔记 | Chapter 6:基于UDP的服务器端/客户端
- 理解UDP
- UDP套接字的特点
- UDP内部工作原理
- UDP的高效使用
《TCP/IP网络编程》学习笔记 | Chapter 6:基于UDP的服务器端/客户端
本篇文章简单描述了UDP传输协议的工作原理及特点。
理解UDP
UDP和TCP一样同属于TCP/IP协议栈的第二层,即传输层。
UDP套接字的特点
- 提供的是一种不可靠的数据传输服务。
- 从通信速度上来讲,UDP通常是要快于TCP的;每次交换的数据量越大,TCP的传输速率就越接近于UDP。
- UDP在通信结构上较TCP更为简洁,通常性能也要优于TCP。
- 没有流控制机制。
区分TCP和UDP最重要的标志是流控制,流控制赋予了TCP可靠性的特点,也说TCP的生命在于流控制。
UDP内部工作原理
可以看出,IP的作用就是让离开主机B的UDP数据包准确传递到主机A,而UDP则是把UDP包最终交给主机A的某一UDP套接字。UDP最重要的作用就是根据端口号将传输到主机的数据包交付给最终的UDP套接字。
UDP的高效使用
TCP用于对可靠性要求较高的场景,比如要传输一个重要文件或是压缩包,这种情况往往丢失一个数据包就会引起严重的问题;而对于多媒体数据来说,丢失一部分数据包并没有太大问题,因为实时性更为重要,速度就成为了重要考虑因素。TCP慢于UDP主要在于以下两点:
- 收发数据前后进行的连接及清理过程。
- 收发数据过程中为保证可靠性而添加的流控制。
因此,如果收发的数据量小但需要频繁的连接时,UDP比TCP更为高效。