Board logo

主題: [閒話家常] [轉貼]ADSL 上傳滿載對下傳的影響 [打印本頁]

發表人: bbking    時間: 2004-6-12 11:42 AM     主題: [轉貼]ADSL 上傳滿載對下傳的影響

當上傳頻寬滿載時,下載速度約減為正常速度的40%.....


全文如下:
http://eservice.seed.net.tw/class/class05.html
發表人: shiuh    時間: 2004-6-12 12:07 PM


引用:
bbking寫到:
當上傳頻寬滿載時,下載速度約減為正常速度的40%.....


全文如下:
http://eservice.seed.net.tw/class/class05.html

本來就會了
所以一定要預留一點讓下載的用
這應該算常識吧..
發表人: CTR    時間: 2004-6-12 12:32 PM

我用的是hinet的
當p2p上傳開0後
下載就已經癱瘓了
發表人: 柏樹    時間: 2004-6-12 02:45 PM

大概要預留多少才不會影響到下載?
發表人: Acute    時間: 2004-6-12 07:12 PM

預留多少並不是固定的, 得看傳輸軟體的特性才能決定
一般而言, 回應收到資料的封包都很小
但是, 每個封包有多大, 則是一個大問題
例如, 假設每個封包20K, 100K 的速度只需要5 個回應封包, 假設每次回應32 bytes, 只需要0.16K 的回應而已; 如果每個封包只有1K, 那100K 速度需要100個回應, 那回應頻寬需要高達3.2K

以驢子而言, 在512/64 的條件時, 上傳為6.3K 左右, 如果上傳設到5K, 其實下載會剛好跑不到20K, 但是, 如果是1M/128K 的條件時, 兩者都是加倍, 但是, 設定10K, 下載卻可以跑超過40K, 仔細分析其原因, 具有以下兩種可能性: (我沒去看細節程式碼, 只是可能性!!!)
1. 驢子每次傳遞的封包並沒有固定, 他有個上下限的range, 在range 內, 上傳越大, 效率越高
2. P2P 軟體除了上下傳資料, 還需要跟server 取得聯繫, 或者overnet 需要跟其他client 取得聯繫, 這些, 都是額外的資料在傳遞, 他需要一些額外的上下傳頻寬, 而這份頻寬是固定的

BT 在早期用Python 語言所寫的client 中, 都一律採用大封包結構, 例如: PTC/Shadow 這兩個版本, 每次傳輸固定約16K or 20K, 所以, 當上傳頻寬不大的情形下跑BT, 會發現, 每隔幾秒下載會完全停頓一次, 例如, 假設上傳設定3K, 線路是512/64 (上傳約6.3K), 則每7 秒鐘當中, 約有2-3秒的時間下載完全停頓, 因為20K 的資料需要3 秒鐘才能全部傳輸出去, 這三秒鐘, 所有回應下載的封包都出不去, 都在排隊等待傳輸. 後來用Java 所寫的Azurues 則把這個作法改變掉, 變成封包大小會根據上傳調節.

Azurues 跟ED client 都能夠讓上傳控制到使用者所規定的速度內, 在作法上可以是可調整大小的封包, 或者利用multi-thread 準確的控制傳輸速度, 也就是, 讓一個大封包以極慢的速度傳出. 實際上他們怎樣做, 我並沒有去看 ^^"

呵呵... 突然想到... 有人研究過ED 封包結構, 或者他們兩個可以來解釋除了上下傳以外的額外傳輸部份, 還有封包是變動大小還是精確控制傳輸速度.

Acute.




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0