问题是:
我写一个ftp客户端,在服务器不止一个时,需要自动检测服务器的连接速度。我最开始的想法是用icmp包,测试往返时间,但这样做有问题:
服务器很可能装了防火墙软件,对icmp报文不做任何处理,有可能连服务器不可达等信息都不返回然后我又想到connect服务器端口,但这样又有一些问题:
1、测出来的速度不准确,差别太大。
2、如果多连几次,服务器的IDS会不会报警?

解决方案 »

  1.   


    较准确的办法是发 ICMP 包,等服务器 回应
    但对于服务器段屏蔽了 ICMP 包的,不能测试直接和指定的 FTP端口建立TCP连接,从回应判断速度,但要多测试几次,取平均发UDP包 ?
      

  2.   

    >>直接和指定的 FTP端口建立TCP连接,从回应判断速度,但要多测试几次,取平均
    1、建立tcp连接开销太大,对每个服务器都多测几次的话。
    2、用 connect函数连续多次连接服务器,服务器会不会报警或禁止该ip的连接>>发UDP包
    哪个端口?
      

  3.   

    还有,金山毒霸的在线升级中的服务器速度判断有问题。用的是icmp,测出来的速度全是严重超时
      

  4.   

    问题是:
    我写一个ftp客户端,在服务器不止一个时,需要自动检测服务器的连接速度。我最开始的想法是用icmp包,测试往返时间,但这样做有问题:
    服务器很可能装了防火墙软件,对icmp报文不做任何处理,有可能连服务器不可达等信息都不返回
    //这个方法是常用方法不然没什么好办法然后我又想到connect服务器端口,但这样又有一些问题:
    1、测出来的速度不准确,差别太大。
    //这样不一定对,看服务器怎么编程的,
    2、如果多连几次,服务器的IDS会不会报警?
    //看服务器配置
      

  5.   

    绝大多数的服务器都是ping不通的,即使我用ping做出来了也没什么用。大家给点思路啊。
      

  6.   

    没有最好的办法,只有权宜之计。
    许多软件就是用的PING金山可以这么做因为服务器就是他自己搞的。不然你学扫描器发送什么SYN啦之类的东东吧(开玩笑,不可能这么做)
      

  7.   

    现在想到的唯一可行的办法就是连接端口,多次连接后取平均值。但是这样服务器的IDS有可能报警??或服务器设置对同一ip多次连接会断掉改ip的连接?
      

  8.   

    多次连接FTP服务器,只要你正常登陆/退出就不会报警/ban ip所以建议你的程序连接对方FTP,验证用户/passwd登陆然后type\r\nbye\r\n这样不仅能够测试网络速度,还可以把FTP主机速度一起测试进去
      

  9.   

    to  fantiyu(fantiyu):但是我要比较的还有http服务器。to  ahao(天·狼·星星) :我所指的准确是测出来的速度是准确的,误差尽量小。当然要测试的还是平均连接速度。只要能判断出哪个服务器速度快就可以了
      

  10.   

    比较http服务器就更简单了,连接,发个get /
      

  11.   

    to fantiyu(fantiyu):
        只是http或ftp服务器的话,相对来说就要简单些了。但是http和ftp服务器都有啊。
      

  12.   

    那你就只能比较http服务器之间的速度,以及比较ftp服务器之间的速度区别
      

  13.   

    这个是个大问题 如果是我 我会两种方式都用 在第一种没有返回的时候使用connect服务器端口检验
      

  14.   

    to mfkzj():如果先ping再connect。也是不行的,ping测出的数据和connect是不一样的,虽然大致看起来差不多。
      

  15.   

    这个你可以取一个类似的比较值 如果过多的使用connect 服务器端会封闭你的IP 所以首选的必然是icmp报文 在报文无法到达的时候使用connect 取PING和connect的对应比较值 然后进行比较看看
    我正想写一个FTP客户程序 我现在就开始写写看 有问题大家一起讨论一下!
    QQ:45364487
      

  16.   

    >>如果过多的使用connect 服务器端会封闭你的IP我想这个可能还是不会的,比如通过局域网代理出去 的(比如网吧和公司用的adsl),如果同时几台电脑连接同一服务器,不是整个局域网都连不上了?
      

  17.   

    一些FTP服务器在你连续的PING或者是CONNECT的时候会封你的IP