小白之Socket编程--UDP(一)

一、概念

  • User Datagram Protoclo,缩写为UDP
  • 一种用户数据报协议,又称为用户数据报文协议
  • 是一个简单的面向数据报传输层协议,正式规范为RFC 768
  • 用户数据协议、非连接协议

二、为什么在我们印象中UDP是不可靠的?

  • 它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份
  • UDP在IP书报的头部仅仅加入了复用和数据校验(字段)
  • 发送端生产数据,接收端从网络中抓取数据
  • 结构简单、无检验、速度快、容易丢包、可广播

三、对比

FTP/TFTP--文件传输协议

TCP--可用于视频下载(也属于文件传输),TCP区分客户端和服务端

UDP--可用于直播,UDP不区分,自己既是客户端又是服务端

DNS--域名解析,比如访问百度浏览器第一步就是把网址https://www.baidu.com/解析为ip访问地址

       --UDP可用于DNS解析

HTTP--

四、结构

小白之Socket编程--UDP(一)

  • 16位(bit)是2个字节(byte),即一个短整型short。
  • 端口号0-65535
  • UDP包最大能存多大长度呢?字节长度length是16位,但可传输的最大长度却是 2的16次方减1=65535-8=65507byte。如下图:

小白之Socket编程--UDP(一)