构建你的网络知识体系 - UDP

·  阅读 643

.jpeg

1、定义

UDP,User Datagram Protocol,即用户数据报协议,是传输层中非常重要的协议之一,主要应用在音频通话,直播等场景中。

2、特点

  1. UDP是无连接的。客户端和服务器在UDP通信的时候,不需要像TCP一样需要先建立连接,减少了建立和释放连接的开销。

  2. UDP尽最大能力交付,不保证可靠交付。这个就像日常打电话的场景一样,有时候信号📶不好,通话的内容可能会音质变差甚至丢失,但即使你没听清楚,通话内容也不会给你重新播放一遍。

3、UDP的首部

正是由于上述特点,UDP不需要维护一些复杂的参数,它的首部内容比较简单,只占用8个字节。

.jpg

源端口号:终点给起点回信的时候需要使用。
目的端口号:起点向终点交付报文时需要使用。
UDP长度:首部的长度 + 数据的长度。

3.1 检验和(CheckSum)

用于检测UDP数据报在传输过程中是否出错。如果出错,数据报将会被丢弃。

检验和的计算方式:伪首部 + 首部 + 数据

这里提到了一个概念:伪首部。伪首部包含源IP地址、目的IP地址等更多信息。伪首部的出现主要是为了使数据更加丰富,为后续数据检验提供更多依据。需要注意的是:伪首部仅在计算检验和时起作用,不会传递给上下层

伪首部.jpg

3.2 端口

UDP首部中端口占用2个字节,可得出端口号的范围是0 ~ 65535。 以下是一些常见协议通信时占用的端口号:

协议默认端口号
HTTPTCP + 80
HTTPSTCP + 443
FTPTCP + 21
MYSQLTCP + 3306
DNSTCP/UDP + 53
SMTPTCP + 25
POP3TCP + 110

端口号占用查询相关命令(以Windows为例):
netstat -an:查看被占用的端口。
netstat -anb:查看被占用的端口 + 占用端口的应用程序。
telnet 主机 端口:查看是否可以访问某个主机的某个端口。例如telnet baidu.com 3306,查看是否可以访问百度的3306端口。

4、抓包验证

打开WireShark,随便访问一个网站,找到UDP报文。

.png

5、TCP和UDP之间的差别

TCPUDP
连接性面向连接无连接
可靠性可靠传输,不丢包不可靠传输,尽最大努力交付,可能丢包
首部占用空间大(20~60字节)小(8字节)
传输速率
资源消耗
应用场景浏览器、文件传输、邮件发送音频通话,直播
应用层协议HTTP、HTTPS、FTP、SMTP、DNSDNS
分类:
iOS
标签:
分类:
iOS
标签: