2007年8月17日星期五

请问如何测试路由器能发送最大的UDP包

请问如何测试路由器能发送最大的UDP包

楼主peter333666(旅行者)2006-08-30 14:51:36 在 VC/MFC / 网络编程 提问

我使用UDP进行数据的发送,每次发送的包的大小最大的有5000b,但是在接受的时候只能接受一定大小以下的包,超过一定大小的全部丢弃了。
我使用getsockopt SO_MAX_MSG_SIZE 得到的大小是64k。肯定不是的了
想请教各位大哥怎么解决呀。
(可以设置路由器吗,使其能达到6k) 问题点数:19、回复次数:6Top

1 楼f_acme(沧海一声笑)回复于 2006-08-30 15:04:14 得分 10

我来说个方法,不知可行不:
有一个选项可以将数据包设置为传输时不分片,然后把这个包发送出去,如果某路由器发送不了这么大的包,就会有一个返回信息,根据情况慢慢调整数据包的大小,就可以知道了。Top

2 楼peter333666(旅行者)回复于 2006-08-30 16:14:08 得分 0

谢谢老大试试先Top

3 楼peter333666(旅行者)回复于 2006-08-31 18:05:06 得分 0

找了半天也没有找到设置,是具体哪个选项呀。

有什么方法可以调整路由器可以转发UDP包的大小吗

急死了Top

4 楼f_acme(沧海一声笑)回复于 2006-08-31 20:31:08 得分 0

setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));
然后自己组装IP包头部,把IP包里面的那个分片标志位设置为不分片标志,Top

5 楼aming112(测试并开发着)回复于 2006-09-03 11:15:27 得分 9

楼主,不知道你说的5000b是5000bit还是5000BYTE?
如果是5000BYTE那你就不要想了,这是不可能的。计算机以太网的网络报文最大为1518,所以你永远不可能发送5000BYTE的数据包。在网络中是是要分片的,在接受端只需要把所有分片组装起来就OK了。Top

6 楼peter333666(旅行者)回复于 2006-09-04 10:45:44 得分 0

谢谢

没有评论: