2012-06-20 107 views
1

什麼會更好地淹沒網絡?套接字壓力測試

1-開放一個插座到HTTP Web服務器和寫入數據直到碰撞

2-開放與多個插座和寫直到碰撞

-3-數據打開套接字和發送的TCP數據包,直到碰撞

4-打開多個套接字併發送tcp數據包直至崩潰?

回答

3

這聽起來像你要做的是測試Web服務器如何反應各種風格的拒絕服務攻擊。

需要考慮的是Web服務器中的拒絕服務邏輯以及Web服務器中通常如何實現拒絕服務保護。例如,是否有邏輯來限制併發連接的數量或來自同一IP的併發連接的數量,或者監視通信量以限制它或在通信量超過某個閾值時斷開連接。

要考慮的一件事就是不要只是通過TCP/IP套接字推送大量字節。 Web服務器正在解釋字節,並期望使用HTTP協議。那麼,如果你使用HTTP協議以及構建到HTTP上的其他協議來做奇怪的事情,會發生什麼。

對於選項3和4,您聽起來像是在考慮繞過帶有窗口邏輯的TCP/IP堆棧,並且只是發送一串忽略回覆數據包的TCP協議數據包流,直到發生某些事情。這將更多的是測試服務器上的TCP堆棧健壯性,而不是Web服務器本身的健壯性。

2

達到網絡飽和的能力取決於網絡條件。有可能以這種方式編寫你的「flooder」,因爲你會導致中間設備丟棄數據包,並且服務器本身最終沒有看到它的最大負載。

您的應用程序應該從一個連接開始,並監視數據速率。如果所有連接的總數據速率繼續上升,請繼續添加連接。一旦它不再上升,就達到了吞吐量限制。如果它開始下降,那麼你的系統容量超過了容量,要麼引起擁塞控制,要麼服務器無法有效地處理那麼多的連接。如果吞吐量限制遠低於您的預期,那麼您可能需要調試網絡或調整TCP /套接字參數。如果服務器速度變慢,則需要對其進行分析以瞭解爲什麼它無法處理連接負載。

此外,檢查每個連接的數據速率,並查看某些連接是否比其他連接快得多。如果發生這種情況,那麼服務器有一個公平問題,這也應該解決。儘管如此,這與服務器和網絡性能關係不大,因爲它與良好的用戶體驗相關。這種問題的出現可能會在拒絕服務攻擊中被利用。