大型檔案傳輸,使用哪一種通訊方式效率最高?(區域網路) |
答題得分者是:Stallion
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
請教各位:
在區域網路情況下,用何種通訊協定用來傳送大型檔案(500MB 以上)效率最高並且可靠? (A) 網路芳鄰 (B)FTP (C)TCP (D) HTTP ..... SERVER 部分偏好於自己寫,所以會考慮到:.. 1. 在傳輸部分使用 P2P 還是用 C/S 方式,感覺前者可集思廣益,後者較偏向牢靠。 若同時使用這兩種方法,實作上會不會很困難。亦是多此一舉。 2. 如何處理續傳? 3. 如何檢查所傳輸的資料是否正確。(CRC or MD5) 會不會拖垮傳輸效率。 4. 每次傳送資料以多少個Bytes。效率會最好。 5. 需要能夠自訂命令,SERVER 接受到命令作對應的處理。(這點FTP可以做到嗎?) 在這方面有經驗的同好,可否提供一些建議及想法。 感謝。 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
談”自訂命令”就是不依現有的 protocol 來運作了。
所以只考慮兩種 TCP UDP 這兩種方式了。 而 TCP 會保證送達之正確性。所以你要用 TCP 的話,就是在最後做檔案的 check sum or md5 的動作就好了。 不用每個封包去做。因為每個封包本身就有這種行為。 ===================引 用 wameng 文 章=================== 在區域網路情況下,用何種通訊協定用來傳送大型檔案(500MB 以上)效率最高並且可靠? (A) 網路芳鄰 (B)FTP (C)TCP (D) HTTP ..... SERVER 部分偏好於自己寫,所以會考慮到:.. 1. 在傳輸部分使用 P2P還是用 C/S 方式,感覺前者可集思廣益,後者較偏向牢靠。 若同時使用這兩種方法,實作上會不會很困難。亦是多此一舉。 2. 如何處理續傳? 3. 如何檢查所傳輸的資料是否正確。(CRC or MD5) 會不會拖垮傳輸效率。 4. 每次傳送資料以多少個Bytes。效率會最好。 5. 需要能夠自訂命令,SERVER 接受到命令作對應的處理。(這點FTP可以做到嗎?) |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
感恩. 這樣範圍就縮小。還有好的建議嗎!
1. 在傳輸部分使用 P2P 還是用 C/S 方式,感覺前者可集思廣益,後者較偏向牢靠。 若同時使用這兩種方法,實作上會不會很困難。亦是多此一舉。 2. 如何處理續傳? 4. 每次傳送資料以多少個Bytes。效率會最好。 有誰瞭解 像是 BT or EMULE 的原理嗎?感謝。 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
還是兩個。一個 TCP, 一個 UDP
看你要怎麼用而已。 至於怎麼續傳?那是你的 protocol 自己要訂,當然看你怎麼訂了。 每次傳送多少個 Bytes?這個倒是可以交給底層去幫你分包。 你的資料量那麼大。丟下底層,給底層解決就好吧。 不必自己去 care 它。 ===================引 用 wameng 文 章=================== 感恩. 這樣範圍就縮小。還有好的建議嗎! 1. 在傳輸部分使用 P2P還是用 C/S 方式,感覺前者可集思廣益,後者較偏向牢靠。 若同時使用這兩種方法,實作上會不會很困難。亦是多此一舉。 2. 如何處理續傳? 4. 每次傳送資料以多少個Bytes。效率會最好。 有誰瞭解 像是 BT or EMULE 的原理嗎?感謝。 |
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
這邊有個 http file server,支援檔案下載與上傳,連Source都有(Delphi 6 personal寫的),可以下載來參考。祝順利!
http://www.rejetto.com/hfs/?f=dl |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
呵呵,第一次看到網芳比 FTP 快
每次開網芳都慢得要死,所以我小檔都用 FTP ,大檔都用 USB 網芳,用來玩玩而已 不知先進有何密招?教大家一下 ===================引 用 wameng 文 章=================== 我進行一整天的測試後,得到結果: 網路芳鄰 > FTP SERVER > HTTP SERVER 感覺上使用 TCP SERVER因該是不錯的。 但是要自己處理的部分太多。暫時就這樣。 Stallion 兄提供的 Http File Server 傳檔效率似乎頗差。比一般的WebServer 多出 1/4 時間。 提供各位做參考。 附記: # 每次傳送 Buffer Size 以 1024*1024 Bytes最佳。 # ICS 的HTTPSERVER 不支援續傳。 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
mypigbaby
高階會員 發表:11 回覆:168 積分:155 註冊:2006-07-20 發送簡訊給我 |
奇怪
為什麼豬寶寶測的結果跟您的相反 FTP -> 網芳->HTTP SERVER 豬寶寶個人是建議 如果要自己寫的話 D7的INDY好像就有FTP現成的範例 拿來改一下應該就能用 至於CRC CHECK的話 這個豬寶寶的做法是 在傳送前 對整個檔案產生一個CRC FILE (多傳一個CRC FILE過去SERVER) 而在SERVER端接受完後,再行產生一組CRC FILE 二者相互比對來驗證是否完整 PS.如果是用外面人家寫的FTP SERVER,效能差異極大 IOFTPD 在100 LAN的環境,可以跑到9~11M/S左右 RAIDENFTPD 可以跑到9~10M/S左右 SERV-U 只能跑到5~6M ===================引 用 wameng 文 章=================== 我進行一整天的測試後,得到結果: 網路芳鄰 > FTP SERVER > HTTP SERVER? 感覺上使用 TCP SERVER?因該是不錯的。 但是要自己處理的部分太多。暫時就這樣。 Stallion 兄提供的 Http File Server 傳檔效率似乎頗差。比一般的WebServer 多出 1/4 時間。 提供各位做參考。 附記: ?# 每次傳送 Buffer Size 以 1024*1024 Bytes最佳。 ?# ICS 的HTTPSERVER 不支援續傳。 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
其實,除去我說的 sftp, 這種情況不說。
在 local net 來測這種的差異無法很明確的測出來。 以我的環境來說,網路是1G。線也都是1G的線材。 在做 ftp, samba.....等等時。 我可以直接去看 iostate 的狀況。 它的速度是卡在我的 server 的 hd io 上。 因為我做了 raid 5 用了個老一點的 raid card.^^ 所以整個的評估,應該是要全面性的。 看看封包被動了多少動作。在 cpu 吃多少資源。 硬碟的反應,以及網路的狀況。 網路狀況又會談到同時有多少人在吃這條線。用那個 switch? 這個說起來,就不像 internet 這麼好量測了。 因為 internet 上面,可以知道頻寬夠,主機死,就是加主機。 主機沒操死,頻寬卡死,就是加頻寬。 這樣的判斷很容易處理。 但是 local net, 很難這樣一拍兩瞪眼。^_^ |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
暗黑兄說的中肯。
只不過Internet 以外的不在我考量範圍。 事實上大抵是差不了多少。 這個評估不是很嚴謹的,大致上隨手一撈粗略比對。 所謂FTP HTTP SERVER 也是ICS 附帶範例。 以Local Net 進行比對前者比後者快約5 秒。 因為我只需要我要的進行測試部分。 至於網路芳鄰透過某種方法,可以快到.... 如果透過Internet 那會慢慢地勒搓。 另外感謝 豬寶寶 所提供的數據。 ***做為本地資料比對使用 CRC 或MD5判斷,是否有其必要性!!? 無論是CRC或MD5 都需要將兩者進行編碼後得到的資料進行比對。 但編碼難道不需要花費時間嗎? 如果用CompareMem 兩者Block 不是會比較快嗎? 很疑惑?尚未查書,待瞭解? ===================引 用 暗黑破壞神 文 章=================== 其實,除去我說的 sftp, 這種情況不說。 在 local net 來測這種的差異無法很明確的測出來。 以我的環境來說,網路是1G。線也都是1G的線材。 在做 ftp, samba.....等等時。 我可以直接去看 iostate 的狀況。 它的速度是卡在我的 server 的 hd io 上。 因為我做了 raid 5 用了個老一點的 raid card.^^ 所以整個的評估,應該是要全面性的。 看看封包被動了多少動作。在 cpu 吃多少資源。 硬碟的反應,以及網路的狀況。 網路狀況又會談到同時有多少人在吃這條線。用那個 switch? 這個說起來,就不像 internet 這麼好量測了。 因為 internet 上面,可以知道頻寬夠,主機死,就是加主機。 主機沒操死,頻寬卡死,就是加頻寬。 這樣的判斷很容易處理。 但是 local net, 很難這樣一拍兩瞪眼。^_^ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |