协议系列之UDP协议

简介: 上节说的TCP协议虽然提供了可靠的传输,但是也有一个缺点,发送速度慢。那么有没有一种协议能快速发送的呢?这节要讨论的就是UDP协议,它提供了更加快的发送速度,但也牺牲了可靠性,它是一种无连接的传输协议。

上节说的TCP协议虽然提供了可靠的传输,但是也有一个缺点,发送速度慢。那么有没有一种协议能快速发送的呢?这节要讨论的就是UDP协议,它提供了更加快的发送速度,但也牺牲了可靠性,它是一种无连接的传输协议。比起TCP,UDP更像是我们用手机发送短信,只管发送出去,但不能保证对方收到,不会建立连接,也没有确认环节。

图2-2-4-1为UDP协议报文结构。比起TCP,UDP报文的结构相对简单,只有源端口、目的端口、报文长度、校验和四个字段。其中源端口跟校验和是可选的,由于UDP不用接收端回复确认信息,所以源端口不是必须的,如果不需要验证数据的准确性,校验和也是可以忽略的。报文长度单位是字节,最小长度为8字节。报文结构的简单也就决定了它只能简单的发送数据,发出后基本就没能力对其进行管理,同时也缺乏拥塞控制,它不像TCP能检测拥塞程度,进而调整发送数据包的大小。

图2-2-4-1 UDP协议报文格式

 

那么UDP一般适用哪些场景呢?虽说其是不可靠的传输协议,但UDP具有TCP望尘莫及的速度优势,同时UDP把安全和排序(UDP不能保证数据发送和接收的顺序,在网络非常拥挤的情况下,用UDP协议接收端接收到的数据顺序可能与发送端发送的顺序不同)功能交给了应用层来完成,系统开销很小,这些都是UDP的优势。所以UDP适用于一次只传少量数据、对可靠性要求不要的应用程序里。例如我们熟悉的QQ,经常会用消息框来骚扰我们,这里用的就是UDP协议,我们不一定能收到。

以上讨论了UDP协议的特点,那么简单的列出它跟TCP协议两者的对比。两者各有所长、各有所短,在实际运用中要根据不同通信环境要求来确定要使用哪种协议传输数据。

 

TCP协议

UDP协议

是否连接

面向连接

面向非连接

传输可靠性

可靠

不可靠

速度

系统开销

是否保证数据顺序

应用场合

大量数据,可靠传输

少量数据,容许接收不到

是否全双工

能否检测拥塞程度

不能

跟IP协议不同,IP协议提供从机器到机器的点对点寻址方式,而TCP协议跟UDP协议则是提供端口的寻址,在用IP协议找到点后,就用这两个协议找相应的端口。它们可以将进程与端口绑定,当数据到来时发往对应的端口的进程的缓冲区里。根据端口段,TCP一般将端口分为三种:知名端口(1-1023)、临时端口(1024-5000)、预留端口(5001-65355)。知名端口固定分配给一些服务,例如21端口分给FTP,80端口分给HTTP。临时端口一般是应用程序在运行时使用的端口,如socket客户端建立连接时需要端口,会随机从临时端口分配一个。



==========广告时间==========

鄙人的新书《Tomcat内核设计剖析》已经在京东预售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

=========================

目录
相关文章
|
2月前
|
网络协议 网络安全 网络性能优化
使用到UDP协议的情况下该如何防护
使用到UDP协议的情况下该如何防护
|
3月前
|
网络协议
【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?
【1月更文挑战第10天】【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?
|
3月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
81 3
|
1月前
|
网络协议 数据格式
|
2月前
|
域名解析 网络协议 安全
【JavaEE初阶】 UDP协议的详细解析
【JavaEE初阶】 UDP协议的详细解析
|
3月前
|
网络协议 网络性能优化
【计算机网络】UDP 协议特点解析
【1月更文挑战第27天】【计算机网络】UDP 协议特点解析
|
3月前
|
网络协议 安全 网络性能优化
【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
【1月更文挑战第27天】【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
|
3月前
|
XML 存储 JSON
网络原理之UDP协议
网络原理之UDP协议
|
3月前
|
域名解析 监控 网络协议
深入了解UDP协议:特点、应用场景及市面上常见软件案例
深入了解UDP协议:特点、应用场景及市面上常见软件案例
287 0
|
3月前
|
网络协议 API 网络安全
用户态协议栈设计实现udp,arp与icmp协议
用户态协议栈设计实现udp,arp与icmp协议
62 1