多路复用和解复用与校验和是UDP唯一能做的事,运输层的协议必须做点什么,什么都没有就不需要这一层了。

为什么要使用UDP

既然有了可靠传输的TCP,为什么还要在udp之上来构件应用呢?

  1. 有效载荷大,TCP头部20Byte,UDP头部8B,相同的MTU下,传输的数据较多。
  2. 无需建立连接,时延小,直接就开始传输数据,不需要开头的三次握手,对于一个发送一次报文就能解决的应用,TCP握手的时延是不可以忽略的。
  3. 无连接的状态,两边的端系统不需要维持通信的状态,实现起来更加简单,资源占用小,且可以维持更多的通信。
  4. TCP有时会故意拖延发送的数据的时间,但是UDP不会,应用程序以什么样的速率交给它,他就怎么样发出去,整个过程可以由应用程序完全掌握。

报文结构

UDP数据校验和

与IP头部字段中的校验和不同,它不只是对数据部分进行校验,还包括UDP的头部和伪首部,其中UDP长度为整个UDP的长度,17是0x11是UDP的协议号。校验的过程是16bit一组,不断累加,溢出16bit的部分截取出来再回滚相加。

最新文章

  1. 嵌入式开发中常见3个的C语言技巧
  2. 玩蛇记--Python处理海量手机号码
  3. ZZULI 1876: 蛤玮的项链 Hash + 二分
  4. Poj2186Popular Cows
  5. javascript面向对象分层思维
  6. mongodb 入门笔记
  7. Jquery+asp.net后台数据传到前台js进行解析的方法
  8. Local IIS 7.0 - CS0016: Could not write to output file / Microsoft.Net > Framework > v4.0.30319 > Temporary ASP.NET Files
  9. select count(distinct a)
  10. ADO.NET温习(一)
  11. oracle 删除外键约束 禁用约束 启用约束
  12. Thinkpad USB 经典键盘使用体验
  13. 在html代码中js的script标签建议放在那里?
  14. Java最小化镜像制作
  15. 记录weiye项目上线遇到的一些问题
  16. 页面弹出全屏浮层或遮罩时,禁止底层body滚动
  17. ExtJS 4.2 教程-01:Hello ExtJS
  18. ThinkPHP32 MODULE_ALLOW_LIST 存在的bug 不生效
  19. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks论文理解
  20. w3cschool菜鸟教程离线版chm手册正式发布

热门文章

  1. Pytorch数据读取与预处理实现与探索
  2. 【Django笔记0】-Django项目创建,settings设置,运行
  3. 从新建文件夹开始构建UtopiaEngine(1)
  4. Prometheus时序数据库-报警的计算
  5. 经典变长指令SIB
  6. 附034.Kubernetes_v1.21.0高可用部署架构二
  7. Nginx的进程管理与重载原理
  8. python set 一些用法
  9. Java类初始化执行流程
  10. 一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法