UDP
udp可以一对多,udp仅在IP之上提供复用分用和差错检测两个服务,不保证可靠交付,不需要建立连接和确认等机制,其执行速度快实时性好,如小文件传输协议TFTP,DNS等。udp的常用于一次性传输少量数据的应用,有时也会用于对可靠性要求不那么高但不允许较大的时延的多媒体应用如IP电话,实时视频会议和流媒体等,因为其木有拥塞控制,发送端可以一直发,而tcp拥塞控制会导致数据出现较大延迟。
UDP面向报文,发送方udp对应用程序交下来的报文,添加udp首部后就交付给IP层,即不合并也不拆分,保留报文的边界,接收udp也不拆分报文。
注意:如果接受方udp收到报文中的目的端口不正确,即不存在对应端口号的应用程序,则丢弃该报文并用icmp协议发送“端口不可达”的差错报文给发送方。
TCP和UDP区别
(1)TCP:面向连接,UDP:无需连接,发送数据之前无需建立连接
(2)TCP提供可靠服务,通过校验和、序列号、确认应答、重传、连接管理以及窗口控制等机制实现可靠性传输。UDP尽最大努力交互,是不可靠传输。
(3)TCP一对一通信,UDP一对多、多对多、多对一的交互通信
(4)TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP无拥塞控制,因此当网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
(5)TCP首部开销20字节;UDP的首部开销小,只有8个字节
(6)TCP的逻辑通信时全双工的可靠信道,UDP则是不可靠信道