我目前正在做一些網絡編程,並有幾個關於超時的問題。什麼是推薦Ping和URL連接超時?
在執行ping時是否存在推薦的超時?
另外,在建立URL連接時是否存在建議的超時?
編輯:在我的情況下,與平,我只是想看看一個設備是否連接到網絡。通過URL連接,我試圖打開一個URL並從中獲取文本。
感謝
我目前正在做一些網絡編程,並有幾個關於超時的問題。什麼是推薦Ping和URL連接超時?
在執行ping時是否存在推薦的超時?
另外,在建立URL連接時是否存在建議的超時?
編輯:在我的情況下,與平,我只是想看看一個設備是否連接到網絡。通過URL連接,我試圖打開一個URL並從中獲取文本。
感謝
這取決於您要連接到的位置。舉個例子:如果你連接到同一個數據中心甚至同一個機架上的另一個盒子,只有很少的跳轉(路由器,交換機,防火牆......),連接通常應該在一秒之內建立起來 - 因此不需要30秒的超時時間(我將它設置爲5秒)。
如果你連接到另一個大陸上的一個盒子,那是完全不同的故事。丟包,擁擠的路由和連接可能會降低連接速度。 30秒或60秒的超時聽起來很公平。
此外,你應該考慮,如果你的客戶真的想等待60秒。舉另一個例子,如果你連接到一個Web服務來提供來自用戶的HTTP請求。等待60秒沒有多大意義,因爲用戶將無論如何取消/離開請求。此外,這種阻塞服務調用可能會導致大量等待線程填滿服務器的線程池 - 這不是一件好事。在這種情況下,我會將超時設置爲10秒,而且一旦Web服務變慢,用戶就會冒一些「服務不可用」或類似的頁面丟到用戶身上。
總的來說,我設置的60秒的超時的請求(此不同,如果你是通過請求流媒體文件的許多MB)。
有兩種類型的ping。當請求時實際ping通可ping組件的活動ping,以及在後臺ping組件並在請求時返回緩存狀態的被動ping。在我的應用程序中,我仍然將這些超時設置爲60秒,但如果您認爲您希望快速自由地設置較小的數字。
您如何期待您的網絡的行爲?這將決定你如何看待這些關係的行爲,以及你希望超時。
例如您的ping會執行多少次網絡跳轉?這些設備在正常情況下是如何加載的?
我對缺乏知識表示歉意。網絡跳轉和設備負載是什麼意思? – 2010-03-11 17:04:45