UDP协议

作者: 逗儿比的日常 | 来源:发表于2021-04-07 15:02 被阅读0次

概念

用户数据报协议UDP(User Data Protocol)
是无连接的用户协议

设计UDP原因

不需要建立连接(减少延时);无拥塞控制:UDP可按需发送;经常用于流媒体数据传输(如视频点播),低负载、速率敏感

UDP报头的封装

UDP报头的封装.png

❀UDP报头中主要的内容就是进程的端口号

UDP报头格式

UDP报头格式.png

• UDP源端口号:指示发送方的UDP端口号
• UDP目的端口号:指示接收方的UDP端口号
• UDP报文长度:指示数据报总长度,包括报头以及数据区总长度
• UDP校验和:进行差错检测,但UDP不会恢复差错

UDP校验和

(UDP校验和部分参考链接:https://blog.csdn.net/qq_34902437/article/details/87938913)

对发送方的 UDP 报文段的所有 16 比特字的和进行反码运算,当求和遇见溢出的时候,进行回卷,得到的结果放在 UDP 报文段中的检验和字段
• 回卷: 就是当进行 16 比特的加法运算的时候,如果进位到 17位,则将第 17 位和后 16 位进行加法和运算

例子:
假设我们有 3 个 16 比特的字

3个16比特的二进制数.png

第一步:对 3 个 16 比特的字依次相加

3个二进制数相加.png

注意,在最后一次加法的过程中,发生了回卷,看下面,多了第 17 位,要消除第 17 位

回卷.png

这两个数相加得到

实际得到的和.png

此时用 1 + 0100 1010 1100 0001 = 0100 1010 1100 0010

第二步:对和进行反码运算

取反.png

第三步:将这个值放入校验和中

第四步:在接收方中,将全部的 4 个 16比特的字(包含了校验和)加在一起(例子中“取反”里的两组数相加),没有差错的话,就是 1111 1111 1111 1111

伪首部:位于UDP报头之前,用于验证UDP数据报是否被送到正确的目的节点

发送方将UDP伪首部、首部、数据每16位一组进行二进制反码求和,再将求和结果求反码,填入校验和字段。接收方收到UDP报文后,生成伪首部,将伪首部、首部、数据每16位一组进行二进制反码求和,若求和结果全为1则无差错传输,否则丢弃

相关文章

  • 计算机网络02 - 传输层

    目录 TCP协议和UDP协议TCP首部TCP连接管理UDP首部 1. TCP协议和UDP协议 TCP协议:面向连接...

  • Linux下Socket编程(六)——udp

    简介 udp协议 udp通信流程 示例 udp协议 中文叫用户数据报协议,属于传输层。UDP是面向非连接的协议,它...

  • UDP协议详解

    相比于TCP协议(传输控制协议)来说,UDP协议(用户数据报协议)要简单很多。 UDP协议的首部格式 UDP协议的...

  • TCP和UDP的区别

    TCP和UDP的区别: TCP协议和UDP协议特性区别总结: TCP协议可靠;UDP协议不可靠 TCP协议是面向连...

  • 网络编程---获取ip地址 使用UDP协议发送与接收数据

    获取ip地址 UDP协议发送端 UDP协议接收端

  • 【Java】【网络编程】UDP协议

    UDP协议 概述:UDP协议是面向无连接协议,数据不安全。 DatagramSocket

  • iOS 网络相关面试题

    问题:TCP、UDP TCP/UDP 传输层协议 ||—— UDP:用户数据报协议 TCP与UDP的区别: 问题...

  • TCP和UDP

    TCP协议为TCP/IP协议;UDP为UDP/IP协议。TCP和UDP都是对应网络七层协议上的传输层。IP属于网络...

  • 第九篇 异常处理和并发编程1

    一、异常处理 二、基于udp协议的套接字通讯 三、udp协议不会粘包 Tcp和udp的区别Tcp协议是可靠的协议。...

  • UDP协议

    UDP协议在IP协议上增加了复用、分用和差错检测功能。UDP的特点: UDP报文格式 UDP协议分为首部字段和数据...

网友评论

      本文标题:UDP协议

      本文链接:https://www.haomeiwen.com/subject/jfbtoktx.html