博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UDP:用户数据报协议
阅读量:3528 次
发布时间:2019-05-20

本文共 1054 字,大约阅读时间需要 3 分钟。

UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据域真正发送的单个IP数据报可能没有什么联系。

下图是将UDP报文封装成为一份IP数据报的格式

UDP首部(8字节)格式:

UDP检验和覆盖UDP首部和UDP数据。回想IP首部的检验和,他只是覆盖IP首部,但是并不覆盖IP数据报中的任何数据。UDP和TCP在首部中都有覆盖他们首部和数据的检验和UDP检验和是可选的,而TCP的检验和是必须的

UDP数据报和TCP端都包含了一个12字节长的伪首部,它是为了计算检验和而设置的。伪首部包含IP首部的一些字段。其目的是让UDP两次检查数据是否已经正确达到目的地。
如果发送端没有计算检验和而接收端检测到检验和有差错,那么UDP数据报就要被翘翘丢弃。不产生任何差错报文(当IP层检验到IP首部检验和有差错时也是这样做的)。UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何变动。
网络MTU确认方法:
用Traceroute确定路径MTU
在确定一条网络通路的MTU,需要修改taceroute程序,用它来确定路径MTU。要做的是发送分组,并设置“不分片”标志位。发送的第一个分组的长度正好与出口MTU相等,每次接收到ICMP“不能分片”差错时就见效分组的长度。如果路由器发送的ICMP差错报文是新格式,包含出错的MTU,那么就将该MTU值来发送,否则就用下一个最小的MTU值来发送。
最大UDP数据报长度
在理论上,IP数据报的最大长度是65535(16位),这是由IP首部的数据长度限制的。除去20字节的IP首部和8个字节的UDP首部,UDP数据报中用户数据最长长度为65507字节。但是,大多数实现所提供的长度比这个最大长度小。产生这样的原因有:
(1)应用程序可能会受到其程序接口的限制。Socket API提供了一个可提供应用程序调用的函数,以设置接受和发送端的长度。对于UDP socket,这个长度与应用程序可以读写的最大UDP数据报的长度直接相关。现在的大部分系统都默认提供了可读写大于8192字节的UDP数据报(使用这个默认值是因为8192是NFS读写用户数据的默认值)。
(2)第二个限制来自于TCP/IP的内核实现。可能存在一些实现特性(或差错),使IP数据报长度小于65535字节。

你可能感兴趣的文章
【PADS9.5】9,对比ECO核心板,Router移动元件后布线消失,Router找不到自动布线策略文件丢失或损坏
查看>>
【STM32+w5500汇总】23,HTTP_Client 连接到ONENET上传了一段数据之后会断开,数据上传格式的设置
查看>>
【STM32+W5500+MQTT】24,所有功能都可以通过API函数的调用来实现;HTTP接入ONENET,API开发手册和打包函数,串口软件HTTP连接服务器上传数据,2018年12月28日
查看>>
【STM32+W5500+HTTPClient】25,路由器DHCP租赁IP时间为2h,NetBios可以很好的解决IP变化的问题,DNS,2018年12月25日
查看>>
【STM32+MQTT+ONENET】26,MQTT协议接入OneNET
查看>>
【STM32+W5500+MQTT+ONENET】27,MQTT协议接入OneNET实际编程操作 2018年12月27日
查看>>
【STM32Cube+FreeRTOS 】28,KEIL5的F12不起作用;***JLink Error: Can not read register x while CPU is running
查看>>
【STM32CubeMX+FreeRTOS 】29,prtinf卡死;4任务只运行了3个;W5500联网失败(堆栈不能太大或者太小)
查看>>
【STM32+FreeRTOS +W5500移植要点】30,RTOS中断;从TIM2,主TIM3;RTOS主要用在LCD中;RT-Thread;标志重定义问题 2019年01月22日
查看>>
【STM32+FPGA+FSMC】31,FSMC熟练掌握;KEIL5生成bin文件;SDRAM的使用;IAP检验码 2019年04月10日
查看>>
【IC1】【转 非常好】运算放大器使用的六个经验
查看>>
【IC-ADC 3】ADC的选型
查看>>
2019年03月18日 查看数据手册的注意点,极限参数、电气参数、推荐参数
查看>>
HiKey960/970用户手册;HiKey960 Development Board User Manual
查看>>
【书籍推荐】FPGA,xilinx
查看>>
N9-SQL注入(union注入)
查看>>
N10-sql注入(information_schema注入)
查看>>
N1-Kali虚拟机中SQLmap
查看>>
N11-sql注入(http头注入)
查看>>
N2-sqlmap初使用
查看>>