UDP数据包大小问题?

天轶_1 2005-06-05 03:29:01
问题如下:
我有TidUdpServer控件(INDY的),和NMUDP控件(FASTNET面版里面),我用端口映射把本UDP的UDP端口映射到本网的外网的IP,当我向这个外网端口发数据的时候,只要数据包大于1464个字节,就收不到,小于等于1464字节都可以收到,另外一个外网的IP向我这个外网端口发数据的时候情况也一样。奇怪的是我向本网内的其它机器和我本机发大于1464字节的数据,却可以收到。
谁能告诉我这是为什么?如果我要发大于1464字节的数据该如何解决啊?
...全文
223 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wohow 2005-06-09
  • 打赏
  • 举报
回复
MTU的问题。很多路由器超过最大MTU就丢掉这个包,局域网没有路由器问题,所以超过MTU也能接到
ach999 2005-06-08
  • 打赏
  • 举报
回复
udp一个包最大字节是2^32-1,当然发送这样大包的话,会被分包.
出现大于某一字节的包就不能发(2^32-1是很大的^_^),的原因很多.协议不对,如校验和,长度等等,找个抓包工具看看,仔细比较。你如果是用多线程发送的话,可能是缓冲区那一块有问题。
constantine 2005-06-06
  • 打赏
  • 举报
回复
应该是1472吧,
跟MTU(最大传送单元)有关吧,以太网的MTU是1500字节
IP首部是20字节,UDP首部是8字节
那么数据实际就只能1500-20-8=1472
如果超过就就要分包
或许还有其他的影响你的,所以你只能1464,最好把包改小一点
如果说错了请高手指正
icwin 2005-06-05
  • 打赏
  • 举报
回复
UP

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧