TCP/IP协议(9): UDP(User Datagram Protocol) 协议 —— 最简单的传输层协议

关于用户数据报协议(User Datagram Protocol, UDP)协议

UDP 协议是一种保留消息边界的简单的传输层协议。一般来说,每次应用层请求的 UDP 输出操作只产生一个 UDP 数据报。该协议被正式定义在 RFC 768

该协议为应用程序提供一种向其他程序发送消息的最小化协议机制。该协议是一种面向事务的协议,它不保证数据的交付重复保护(防止同一数据包多次到达的操作)。如果应用程序需要有序的,可依赖数据流的交付,则应该使用传输控制协议(Transmission Control Protocol, TCP)
This protocol provides a procedure for application programs to send messages to other programs with a minimum of protocol mechanism. The protocol is transaction oriented, and delivery and duplicate protection are not guaranteed. Applications requiring ordered reliable delivery of streams of data should use the Transmission Control Protocol (TCP).

UDP 数据包

UDP 协议在 TCP/IP 协议栈中的位置

UDP 协议的首部格式

UDP 首部由四个字段组成,每个字段都是两个字节。

  • 源端口(Source Port): 2 字节。发送 UDP 数据报的源端口号。
  • 目的端口(Destination Port): 2 字节。接收 UDP 数据报的目的端口号。
  • 长度(Length): 2 字节。 UDP 首部UDP 数据报携带的负载数据总长度。单位: 字节。
  • 校验和(Checksum) 2 字节。 可选,如果放弃校验,则填 0。该校验和由伪首部(Pseudo Header), UDP 首部和该 UDP 数据报携带的数据计算而来。其中,伪首部IP 数据包首部 的部分数据构成。伪首部仅用作计算校验和,并不会被传送出去。

    伪首部 的构成:

    • 源 IP 地址(Source IP Address): 32 位。 IP 首部源地址 字段。
    • 目标 IP 地址(Destination IP Address): 32位。IP 首部目标地址 字段。
    • 协议(Protocol): 8位。IP 首部协议 字段,指出当前数据包携带的数据是使用哪种协议。UDP 是 17。
      UDP 长度(UDP Length): 16 位。UDP 首部UDP 数据报携带的负载数据总长度。单位: 字节。

参考文献

最新文章

  1. 【NLP】Python NLTK处理原始文本
  2. vtkAnimationCue、vtkCommand和vtkAVIWriter
  3. MySQL索引简述
  4. Y+的查看及FLUENT壁面函数的选择
  5. VS2010编译链接openssl静态库
  6. MyEclipse 常用设置
  7. Windows7 64位系统下无法安装网络打印机的解决方法
  8. appendGrid
  9. MongoDB C++ 2.4.5 driver 编译安装问题
  10. 黑马程序员—C语言的函数、数组、字符串
  11. vim 多行同时输入,且输入数值递增
  12. 如何使用DockerHub官方的mysql镜像
  13. Java语言开发环境搭建
  14. Ruby学习之深入类
  15. Python开发网站目录扫描器
  16. Python基础(7)——迭代器&生成器
  17. js事件绑定的几种方式
  18. [ACM_水题] UVA 12502 Three Families [2人干3人的活后分钱,水]
  19. 【解决】 无法打开包括文件:“windows.h”: No such file or directory
  20. PHP老师没教过你的那些知识点

热门文章

  1. 模块/collections/random/time/datetime
  2. lightdm开机无法自启问题
  3. BFS和DFS学习笔记
  4. day29 jQuery选择器 & jquery属性操作 & jquery DOM元素 操作与遍历
  5. Pandas_1_预备知识
  6. 多进程TCP服务端并发- 进程join方法 - IPC机制
  7. gulp报错The following tasks did not complete
  8. Kubernetes(k8s)存储管理之数据卷volumes(三):NFS数据卷
  9. 【转载】SQL SERVER 中单字节和双字节互转自定义函数(全角半角转换)
  10. 你的 GitHub 年度报告「GitHub 热点速览 v.22.52」