讨论:互联网上能通过的Udp包的字节数,通常是多少?(300分)

  • 主题发起人 主题发起人
  • 开始时间 开始时间
UDP TCP都属于 IP协议家族,也就是说,定址方式都是IP地址加上端口,发送的都是IP包,
每个IP包的最大值是64K,但是,每种网络类型都有自己不同的MTU(最大传输单元),如果你的IP包超过这个MTU将会自动分隔成为小片,最后,又自动组合,如果传输过程中,有一个小片丢失,则全部丢失。
答案就是:
UDP的包的最佳大小:MTU-IP包的协议头-UDP协议头
TCP的包的最佳大小:MTU-IP包的协议头-TCP协议头

IP包协议头是:20个字节(一般情况下,不会有32位可选头部,下同 )
UDP协议头是:8 字节
TCP协议头是:20字节

那么MTU是多少呢,嘿嘿,这个碍于其他方面原因,我就不说了。
帮助你的,只有这些了,相信你很快就可以得到答案,
以上经验来自《TCP/IP 详解》我认为是权威的。
再提示一下,PING虽然属于ICMP协议,其实发送的还是IP包的,PING最大发送是将近64K
的,证明了上面的64K可信度。(MTU会远远小于64K)

在局域网,你发63K的包,还是很稳定的。超过这个64K,肯定是失败的。
 
没有一定的数据是多少。
这是根据整个网络系统一决定的。
我用的是10M光缆,最快也只有2M,最慢可是2K。
技术交流QQ:136293586
 
有关mtu的值的一点资料,来自微软
不同网络拓扑的默认 MTU 大小
察看本文应用于的产品
文章编号 : 314496
最后修改 : 2004年3月29日
修订 : 1.0
有关本文的 Microsoft Windows 2000 版本,请参阅 140375 (http://support.microsoft.com/kb/140375/EN-US/)。

概要
最大传送单位 (MTU) 指定接口的最大传输单位的大小。TCP/IP 使用的每个接口都可能指定不同的 MTU 值。MTU 通常是通过与更低级别驱动程序协商以及使用该更低级别驱动程序值来确定的。但是,该值可能被覆盖。
更多信息
每种媒体类型都有一个不能超过的最大帧大小。链接层负责发现此 MTU 并将其报告给链接层上方的协议。协议栈可能会向网络驱动程序接口规范 (NDIS) 驱动程序查询本地 MTU。接口的 MTU 信息由上层协议如 TCP 使用,TCP 自动为每种媒体优化数据包大小。

如果网络适配器驱动程序(如异步传输模式 (ATM) 驱动程序)使用局域网 (LAN) 模拟模式,它可能会报告其 MTU 大小高于该媒体类型的预期大小。例如,网络适配器可能会模拟以太网,但却报告 MTU 为 9180 字节。Windows 会接受并使用该适配器报告的 MTU 大小,即使它超过了给定媒体类型的正常 MTU。

以下是不同网络媒体的默认 MTU 大小一览表。 网络 MTU(字节)
-----------------------------------
16 Mbps 令牌环 17914
4 Mbps 令牌环 4464
FDDI 4352
以太网 1500
IEEE 802.3/802.2 1492
PPPoE (WAN Miniport) 1480
X.25 576
 
互联网上用udp尽量越小越好,但是也不能太小,不然udp的效率就体现不出来了
建议1024b
 
那么TCP的,一般要发多少
 
后退
顶部