UDP

UDP是什么

UDP和TCP一样,都是传输层的协议,传输层是端对端的

ip + port

  1. ip 可以唯一标识网络上的一台主机,主机拥有唯一的一个 ip 地址,一个主机可以有多个 ip,有多少网卡就有多少 ip
  2. port 可以唯一标识主机上的唯一进程,一个进程可以有多个 port,一个 port 只能绑定一个端口
  3. 所以,ip + port,可以唯一标识网络上的一台主机上的唯一进程
  4. 常见端口号
    SSH 服务器,使用 22 端口
    MySQL 服务器,使用 3306 端口
    DNS 服务器,使用 53 端口
    HTTP 服务器,使用 80 端口
    HTTPS 服务器,使用 443 端口

UDP协议格式

UDP
源端口:服务器向客户端发送响应时,可以直接得到源端口,向客户端发送
目的端口:分用
UDP 长度:解包
校验和

  • 校验和是一个字符串,检验数据的正确性
  • 将源数据经过哈希算法得到一个新的数据
  • 在接收端如果发现源数据和得到数据最终不一致,说明传输过程中出现了问题,丢弃数据

UDP 的特点

  • 无连接:只要知道对端的 ip + port,就可以进行传输了
  • 不可靠:UDP 没有确认应答机制、没有超时重传机制。如果网络出现问题了,UDP 协议层也不会向应用层返回错误信息
  • 面向数据报:应用层发给传输层的数据,UDP 既不会合并也不会拆分

UDP 的缓冲区

  • UDP 没有发送缓冲区,只有接收缓冲区

为什么要有UDP

UDP是无连接的,只要知道对端的 ip + port,就可以进行传输了,简单快速

基于 UDP 的应用层协议

DNS—域名解析协议

会将域名解析为 ip 地址
UDP
当主机接收到一个域名后,会将他交给Local DNS,如果Local DNS里面没有找到对应的 ip,就会交给他的上一层去查找,上一层解析出来后,Local DNS 会保留信息,下次查找直接在 Local DNS 里查找

DHCP—动态申请 ip