udp的最大报文长度

lihaodonglala lihaodonglala     2022-12-22     684

关键词:

以太网UDP最大报文长度

对于以太网环境下UDP传输中的数据包长度问题

  首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。

  其中以太网(Ethernet)的数据帧在链路层

  IP包在网络层

  TCP或UDP包在传输层

  TCP或UDP中的数据(Data)在应用层

  它们的关系是 数据帧{IP包{TCP或UDP包{Data}}}

  在应用程序中我们用到的Data的长度最大是多少,直接取决于底层的限制。

  我们从下到上分析一下:

  在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)-(1500+18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500,即MTU(Maximum Transmission Unit)为1500;

  在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20=1480;

  在传输层,对于UDP包的首部要占用8字节,所以这的MTU为1480-8=1472;

  所以,在应用层,你的Data最大长度为1472。

  (当我们的UDP包中的数据多于MTU(1472)时,发送方的IP层需要分片fragmentation进行传输,而在接收方IP层则需要进行数据报重组,由于UDP是不可靠的传输协议,如果分片丢失导致重组失败,将导致UDP数据包被丢弃)。

  从上面的分析来看,在普通的局域网环境下,UDP的数据最大为1472字节最好(避免分片重组)。

  但在网络编程中,Internet中的路由器可能有设置成不同的值(小于默认值),Internet上的标准MTU值为576,所以Internet的UDP编程时数据长度最好在576-20-8=548字节以内。

  MTU对我们的UDP编程很重要,那如何查看路由的MTU值呢?

  对于windows OS: ping -f -l <data_length> <gateway_IP>

  如:ping -f -l 1472 192.168.0.1

  如果提示:Packets needs to be fragmented but DF set.

  则表明MTU小于1500,不断改小data_length值,可以最终测算出gateway的MTU值;

  对于linux OS: ping -c <number> -M do -s <data_length> <gateway_IP>

  如: ping -c 1 -M do -s 1472 192.168.0.1

  如果提示 Frag needed and DF set……

  则表明MTU小于1500,可以再测以推算gateway的MTU。

  当然要修改MTU的值,那就是网管的事了(一般人没这权限呀),我们只能申请加等待了 ^-^ 

udp协议与tcp协议

...何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8=60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。 控制位... 查看详情

udp的协议格式及特性

...三.影响1.不保证会安全到达2.不保证有序到达3.UDP报文有最大长度限制4.UDP实现是整条交付的:接收方的缓冲区必须足够大才可以进行一次取出数据.目录一.协议格式源端端口/对端端口:这里是用来描述和识别通讯两端进程的总长度:... 查看详情

udp协议

...,是TCP/IP协议族中无连接的传输层协议。特点无连接的尽最大努力交付面向报文无拥塞控制的机制支持一对一,一对多,多对一的交互通信首部开销小UDP报文格式UDP报文头信息:源端口,目的端口:都占用是16bit,分别表示源端... 查看详情

udp的协议格式及特性

...三.影响1.不保证会安全到达2.不保证有序到达3.UDP报文有最大长度限制4.UDP实现是整条交付的:接收方的缓冲区必须足够大才可以进行一次取出数据.目录一.协议格式源端端口/对端端口:这里是用来描述和识别通讯两端进程的总长度:... 查看详情

udp的协议格式及特性

...三.影响1.不保证会安全到达2.不保证有序到达3.UDP报文有最大长度限制4.UDP实现是整条交付的:接收方的缓冲区必须足够大才可以进行一次取出数据.目录一.协议格式源端端口/对端端口:这里是用来描述和识别通讯两端进程的总长度:... 查看详情

tcp、udp包的最大长度是多少?

对于UDP协议来说,整个包的最大长度为65535,其中包头长度是65535-20=65515;对于TCP协议来说,整个包的最大长度是由最大传输大小(MSS,MaxitumSegmentSize)决定,MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输... 查看详情

计算机网络,udp报文段详解

...只受限于数据生成速率、传输速率以及机器性能(5)尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表(6)面向报文,不对应用程序提交的报文信息进行拆分或者合并2.UDP报文段详(1)源端口-2字节(2)目标端... 查看详情

udp的报文结构及注意事项

...是源端口,拜佛就是目的端口报文长度一个UDP报文长度的最大值是64KB(2字节-->0~65535-->65535/1024≈64)校验和校验和是为了判断当前传输的数据是否出错网络传输是有一定几率出现故障的(外部环境的干扰,强磁场的影响等)举个栗子... 查看详情

计算机网络part2

...连接的时延),首部开销相对TCP小,没有拥塞控制,提供最大努力交付,面向报文(无论多长的报文UDP也只加一个头部就往下发;TCP面向字节流)。通常用于允许一些数据丢失,但不允许交较大时延、传输少量数据(DNS)。2、UD... 查看详情

ip报文字段(代码片段)

...代表这个ip更注重于什么要求16位总长度ip报文的总长度,最大为2的16次方为64K,和UDP一样最大长度为64K但是他们两个有个区别是,UDP不支持自动的拆包和组包想要实现需要用户自己在应用层实现.但是ip协议,支持自动的拆包和组包下... 查看详情

局域网中一个udp包可以装多少数据?

...域网中一次传输最多能传多少数据?****以太网数据帧的最大长度为1500字节,即IP数据报文的长度,即数据链路层的MTU(最大传输单元)****下图为IP数据报的详细格式:可以看到,报头区占据32*5=160bits(不算可选部分),也就是20字... 查看详情

报文分析5udp协议的头结构

...包含初始化通信的端口号。源端口和IP地址的作用是标识报文的返回地址。(2)目的端口(DestinationPort):6位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。(3)封包长度(Length):UDP头... 查看详情

udp与tcp报文格式,字段意义

UDP报文1、UDP有两个字段:数据字段和首部字段。首部字段首部字段很简单,只有8个字节,由4个字段组成,每个字段的长度都是两个字节。 1)源端口:源端口号。在需要对方回信时选用。不需要时可用全0。2)目的端口:目... 查看详情

udp与tcp报文格式,字段意义

 UDP报文1、UDP有两个字段:数据字段和首部字段。首部字段首部字段很简单,只有8个字节,由4个字段组成,每个字段的长度都是两个字节。 1)源端口:源端口号。在需要对方回信时选用。不需要时可用全0。2)目的端口... 查看详情

54.udp报文格式详解

相比TCP协议,UDP协议的报文结构相对简单。本节将详细讲解UDP报文的格式。UDP报文格式每个UDP报文分为UDP报头和UDP数据区两部分。报头由4个16位长(2字节)字段组成,分别说明该报文的源端口、目的端口、报文长... 查看详情

udp协议报文格式

UDP协议格式每个UDP报文分为UDP报头和UDP数据区两部分报头由4个16位长(2字节)字段组成,分别说明该报文的源端口、目的端口、报文长度和校验值UDP报文中每个字段的含义:源端口:操作系统自动分配的这个字段占据UDP报文... 查看详情

为什么udp和ip这类协议要对报文长度进行限制?

...有这样的问题:为什么UDP/IP的报头中专门有一部分对它的报文长度进行限制呢?这样不是费力不讨好吗?为什么不和TCP一样不对报文长度作出要求,想传多少就传多少不更好嘛这个其实和可靠性和稳定性是分不开的.UDP是无连接,不可靠... 查看详情

udp协议详解

目录UDP协议报文结构端口号报文长度校验和 生成校验和的算法MD5的特点UDP协议报文结构UDP会把载荷数据(也就是通过UDPsocekt,send方法拿来的数据基础上,再前面拼装(相当于字符串拼接此处是二进制的)上几个字节的报头UDP报头里包... 查看详情