uClinux为什么不能接收大于1500的数据包?

xiaoyanfei   2008-11-25 12:05 楼主
大家好:
  我用uclinux在xilinx spartan3e starter kit上做一个UDP的客房端,在一台电脑上运行UDP的服务器。服务器发送小于1472个字节的数据的时候,uclinux能够接收到数据。但是当发送的数据大于1472的时候uclinux就接收不到了,而仅仅是阻塞在那里,我已经查得uclinux和主机的MTU设置都是1500,这样是不是说uclinux接收不到被分片了的数据包啊?是不是我在编译uclinux内核的时候少选了什么选项呢?
  请各位指点,谢谢。

回复评论 (4)

补充一下,我这个客户端程序在计算机上运行的时候是能够接收到大于1472的数据的(事实上,在计算机上它能够接收到10K大小的数据),但是当把这个客户端放到开发板的uClinux中运行的时候,就出现了上述问题,所以我觉得应该是uClinux配置的问题,不过我找不出什么原因。

急需指点啊!
点赞  2008-11-26 22:20
没遇上过,,,
你测试过tcp没有啊,,,有没问题?
分片都是协商好的才发,,,
爱莫能助,,,帮顶了。。
点赞  2008-11-27 23:40
个人觉得这个应该是你开发板底层配置的问题.
建议查看一下你的mac和phy的寄存器,印象里是有寄存器可以设置MTU大小的.
点赞  2008-12-2 21:41
好像有些不支持分片的,影响实时
你的用的什么协议的,有些具体的协议栈支持的不同
还有linux里面的内核net里面的代码可以裁剪出来当协议用不?
点赞  2008-12-3 13:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复