♣
UDP数据包大小问题?
所属目录:Java | 类型:技术问答 | 时间:2007-05-21
问题:
问题如下:
我有tidudpserver控件(indy的),和nmudp控件(fastnet面版里面),我用端口映射把本udp的udp端口映射到本网的外网的ip,当我向这个外网端口发数据的时候,只要数据包大于1464个字节,就收不到,小于等于1464字节都可以收到,另外一个外网的ip向我这个外网端口发数据的时候情况也一样。奇怪的是我向本网内的其它机器和我本机发大于1464字节的数据,却可以收到。
谁能告诉我这是为什么?如果我要发大于1464字节的数据该如何解决啊?
· 网友精彩回答:
发表者:constantine
应该是1472吧,
跟mtu(最大传送单元)有关吧,以太网的mtu是1500字节
ip首部是20字节,udp首部是8字节
那么数据实际就只能1500-20-8=1472
如果超过就就要分包
或许还有其他的影响你的,所以你只能1464,最好把包改小一点
如果说错了请高手指正
发表者:ach999
udp一个包最大字节是2^32-1,当然发送这样大包的话,会被分包.
出现大于某一字节的包就不能发(2^32-1是很大的^_^),的原因很多.协议不对,如校验和,长度等等,找个抓包工具看看,仔细比较。你如果是用多线程发送的话,可能是缓冲区那一块有问题。
发表者:wohow
mtu的问题。很多路由器超过最大mtu就丢掉这个包,局域网没有路由器问题,所以超过mtu也能接到
.- 更多问题:
- · 比如我的IP是60.176.32.36,那我在IE地址栏里输入//60.176.32.36,怎么跳出来一个对话框要我输入用户名和密码,到底咋回事?
- · 找socketserver原码
- · 比较难的问题:Eclipse和重构高手进
- · 在提交了一次add后,选择列表中的中文都变成了"????????",为什么?
- · 100分求解UDP控件的奇怪问题,解决就给分。
- · 关于PB中英文翻译的文章(2天类结帖)(前天的帖子刚结帖了)
- · VC+ACCESS数据库程序的问题。
- · 请问到哪里可以下载 程序员修炼三部曲 非常感谢
- · 在线等,请问后缀是WDL的文件该用什么工具打开?
- · 网络编程中的connect函数怎么控制它的connect时间
- · 自己下了个CPU降温工具CPUCOOL,但是不大会用,来请教一下.
- · 100分求一软件:无届浏览器
- · 怎样操作一组单选框中某一个框
- · 怎样通过Internet远程访问一个Access数据库!
- · 怎样通过Internet远程访问一个Access数据库!
- · asp.net 如何连接access数据库

