在線測試博客園CDN速度


  最近發現博客園附件下載速度快了不少,據說是網站遷移到新的IDC了。於是寫了個小東東,來測試下看看單線程下載速度。

  

 

  掛了一晚上,分享下測試結果- -  CDN的帶寬貌似不便宜~~以后再不那么可恥的浪費了:)

   

  大家有興趣測試看看有多快。

  同樣可以測試其他網站的靜態資源,不過必須是jpg/png/gif/swf的資源文件。

  因為是單連接下載的,所以發送/響應請求的那一刻時間里傳輸字節要少些,所以盡可能選擇體積大的文件。

  測試腳本很簡單,順便貼下吧~

var txt:TextField = new TextField();
var loader:Loader = new Loader();
var timer:Timer = new Timer(1000);

var nf:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT);
nf.fractionalDigits = 0;

var lastDLBytes:int;
var curDLBytes:int;
var totalDLBytes:int;

var running:Boolean;

var sec:int;
var sum:Number = 0;



init();
function init() : void {
    Security.allowDomain("*");
    stage.align = StageAlign.TOP_LEFT;
    stage.scaleMode = StageScaleMode.NO_SCALE;
    
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    timer.addEventListener(TimerEvent.TIMER, onTimer);
}

function onTimer(e:Event) : void {
    var secBytes:int = curDLBytes - lastDLBytes;
    lastDLBytes = curDLBytes;
    sum += secBytes;
    sec++;
    
    txtSpeed.text =
        int(secBytes / 1024) + " KB/S (當前)" + "   /  " +
        int(sum / sec / 1024) + " KB/S (平均)";
        
    txtInfo.text = nf.formatNumber(sum) + " 字節  @  " + sec + "秒";
}

function onProgress(e:ProgressEvent) : void {
    curDLBytes = e.bytesLoaded;
    
    if (curDLBytes / e.bytesTotal > 0.95) {
        reload();
    }
}

function onError(e:IOErrorEvent) : void    {
    trace("onError");
    reload();
}

function onComplete(e:Event) : void    {
    trace("onComplete");
    reload();
}

function reload() : void {
    var url:String = txtURL.text + "?v=" + int(1e6 * Math.random());
    trace(url);
    curDLBytes = lastDLBytes = 0;
    loader.load(new URLRequest(url));
}


mcToggle.gotoAndStop(1);
mcToggle.addEventListener(MouseEvent.CLICK, function() {
    running = !running;
    mcToggle.gotoAndStop(running? 2 : 1);

    if (running) {
        timer.start();
        reload();
    }
    else {
        timer.stop();
    }
});

   

  為防止下載的數據緩存在本地硬盤里,在95%左右進度時中斷,並重新開始下載(貌似有些瀏覽器仍緩存,沒有仔細測試)。 

  由此可見,支持外鏈的CDN還是有些安全隱患。

  攻擊者可以找一些體積較大的圖片文件,內嵌在論壇或者郵件里群發。當內嵌這些資源的頁面被打開時,流量也隨之消耗了。

  要是有大量可控制的傀儡主機就更容易了,因為可以偽造http refer,所以外鏈也不容易防住。

  簡單的計算下,假設即使只有1000個可控的計算機,平均速度100KB,那么每秒就可消耗100M流量,每小時可消耗360G的流量!若是按流量計費的話,攻擊也可以造成不小的損失。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM