設為首頁fbYouTubeWhatsapp頻道IG

Post76.hk

搜索
查看: 8377|回覆: 90

[CAS音響] 討論[簡單測試]網絡傳輸對網絡播放器及不同系統的影響

  [複製鏈接]

62

主題

2297

回帖

2

精華

鑽石玩家

Rank: 12Rank: 12Rank: 12

積分
323389

76 榮譽忠義勲章

發表於 2014-8-4 16:32 | 顯示全部樓層 |閱讀模式

如果想睇到更多76師兄嘅分享,快啲登入成為會員啦!

您需要 登入 收看或下載更多內容。還未成為會員?成為會員

x
前言

小弟發現近來有很多玩相關網絡設備的討論,有 LPS、Network Isolation / Filtering、Network Switch、Ethernet to Optical Isolation 和 Network Cable 等,當中主要有降噪和穩定波型等兩個理論。對於網絡設備是否真的能改善播放效果,例如換網絡線之類,如果你問從事IT的師兄,他必然回答 "如果達標,並沒有分別" 之類的說話,究竟事實上是否真的有分別?每個人答案都不同。

對於以上討論,以IT為業的小弟來說,真是難以否定其效。如果只是單靠看貼,而不加以分析,人云亦云,亦只能學到一些皮毛。到底怎樣才是精要所在,小弟只能從所學中找尋,根據網絡傳輸作討論。

相關用語

Ethernet﹣常用網絡傳輸制式,有10M/100M/1000M/10G等速度,多數使用雙絞線(UTP/STP)及RJ45插頭接駁。
Ethernet Switch﹣網絡交換器,能有效傳輸數據,可減低 Ethernet Collision。
Ethernet Isolator﹣可隔離高壓電流,保護網絡設備。
Ethernet Optical Fiber Media Converter﹣銅線/光纖轉換器,主要將輸入媒介轉為適合格式。
Cat 5, Cat 5e, Cat 6, Cat 7﹣網線類別,Cat 7 可傳10G/s資料,Cat 5 ~ 6 可傳1G/s資料,等級越高越能抗噪。
TCP﹣可靠網絡傳輸協定,有檢查錯誤、流量控制等機制,為大部分網絡播放器所使用。
UDP﹣用戶自定傳輸協定,沒有檢查錯誤、流量控制機制,一般為實時傳輸使用,有部分網絡播放器會使用該協定,有些軟件可建基於UDP上提供檢錯及流量控制。

測試器材

Mac Mini Server﹣2G Core-i7, 4MB 1333MHz
Intel NUC DN2820FYKH﹣2.4G Celeron N2820, 4MB 1066MHz
TP-Link TL-WR1042ND v2﹣MIPS 720MHz, 64MB 600MHz
QNAP TS-209 Pro﹣ARM 500MHz, 128MB DDR II
*各器材均使用 Gigabit Ethernet Port 連接。

測試軟件

IPerf﹣支援 Windows, MacOS, Linux 平台,可測試TCP和UDP傳輸速度、Jitter及Packet Loss。
Windows PE 8.1﹣PE所包含的服務最少,測試傳輸流量時表現較佳;是次測試主要用作播放端使用。
MacOS 10.9﹣Mac機的開機系統,本身執行多個網絡服務;是次測試主要用作伺服端使用。
Ubuntu 12.04﹣Linux 其中一個分支,是次測試有 Generic Kernel 和 Low Latency Kernel 兩種;是次測試主要用作播放端使用。
OpenWRT 3.3.8﹣建基於 Wireless Router 上的一種Linux系統;是次測試主要用作播放端使用。
QNAP OS 3.3.2﹣建基於NAS上的另一種Linux系統,本身執行多個網絡服務;是次測試主要用作伺服端使用。

注:Linux所用的 Low Latency Kernel 是一種 Soft Real-Time 的Linux系統,它會優先處理I/O等資源。

測試內容

簡單測試TCP傳輸速度及UDP的Jitter及Packet Loss,由於TCP有檢錯機制,所有傳輸均能做到沒有錯誤,可以準確地將數據傳至播放器內,但這個測試不能偵測Jitter,所以要使用UDP測試來測Jitter。

伺服端 (發送端)﹣使用 A) Mac Mini Server 及 B) QNAP NAS 作測試,模擬將數據發送出去。
播放端 (接收端)﹣使用 1) NUC Windows 系統、2) NUC Linux Generic Kernel、3) NUC Linux Low Latency Kernel 及 4) TP-Link OpenWRT 系統作測試,模擬數據接收的情況。

當兩組發送端接四組接收端測試時,便有以下組合,A1, A2, A3, A4, B1, B2, B3, B4,而測試不同系統時,可比較不同系統網絡傳輸的性能。由於機率問題,每個測試會進行三次。

因為測試環境關係,小弟只能將伺服端器材接到同一隻Router上,播放端器材接到另一隻Switch上,中間再以一條網線將Router和Switch連接。(測試結果可能因不同時段traffic,不同器材有所出入,故此這個測試只能作為參考比較,數值上並不十分準確。)

測試指令

作為接收端會執行以下指令:
> iperf -s -i 1
會以一秒作顯示單位,十秒後完成接收TCP測試。

樣品如下:
root@squeeze98:~# iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.3.12 port 5001 connected with 192.168.3.3 port 4615
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  19.5 MBytes   164 Mbits/sec
[  4]  1.0- 2.0 sec  19.7 MBytes   165 Mbits/sec
[  4]  2.0- 3.0 sec  19.8 MBytes   166 Mbits/sec
[  4]  3.0- 4.0 sec  19.4 MBytes   162 Mbits/sec
[  4]  4.0- 5.0 sec  19.7 MBytes   165 Mbits/sec
[  4]  5.0- 6.0 sec  19.8 MBytes   166 Mbits/sec
[  4]  6.0- 7.0 sec  19.7 MBytes   165 Mbits/sec
[  4]  7.0- 8.0 sec  19.8 MBytes   166 Mbits/sec
[  4]  8.0- 9.0 sec  19.8 MBytes   166 Mbits/sec
[  4]  9.0-10.0 sec  19.7 MBytes   166 Mbits/sec
[  4]  0.0-10.0 sec   197 MBytes   165 Mbits/sec


作為發送端會執行以下指令:
> iperf -c 192.168.3.12
以TCP連接至 192.168.3.12 作測試。

樣板如下:
[~] # /opt/bin/iperf -c 192.168.3.12
------------------------------------------------------------
Client connecting to 192.168.3.12, TCP port 5001
TCP window size: 27.9 KByte (default)
------------------------------------------------------------
[  5] local 192.168.3.3 port 4615 connected with 192.168.3.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec    197 MBytes    165 Mbits/sec

得出結果:網速為165Mb/s。

以同樣方式,測試UDP傳輸,接收端執行以下指令:
> iperf -s -u -i 1

樣品如下:
root@squeeze98:~# iperf -s -u -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  160 KByte (default)
------------------------------------------------------------
[  3] local 192.168.3.12 port 5001 connected with 192.168.3.3 port 1040
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec   231 KBytes  1.89 Mbits/sec   0.065 ms    0/  161 (0%)
[  3]  1.0- 2.0 sec   258 KBytes  2.12 Mbits/sec   0.041 ms    0/  180 (0%)
[  3]  2.0- 3.0 sec   244 KBytes  2.00 Mbits/sec   0.029 ms    0/  170 (0%)
[  3]  3.0- 4.0 sec   244 KBytes  2.00 Mbits/sec   0.036 ms    0/  170 (0%)
[  3]  4.0- 5.0 sec   244 KBytes  2.00 Mbits/sec   0.039 ms    0/  170 (0%)
[  3]  5.0- 6.0 sec   244 KBytes  2.00 Mbits/sec   0.043 ms    0/  170 (0%)
[  3]  6.0- 7.0 sec   245 KBytes  2.01 Mbits/sec   0.031 ms    0/  171 (0%)
[  3]  7.0- 8.0 sec   244 KBytes  2.00 Mbits/sec   0.038 ms    0/  170 (0%)
[  3]  8.0- 9.0 sec   244 KBytes  2.00 Mbits/sec   0.033 ms    0/  170 (0%)
[  3]  0.0-10.0 sec  2.39 MBytes  2.00 Mbits/sec   0.040 ms    0/ 1701 (0%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order

測試UDP時,以2Mb/s作測試速度,發送端執行以下指令:
> iperf -c 192.168.3.12 -u -b 2m

樣品如下:
[~] # /opt/bin/iperf -c 192.168.3.12 -u -b 2m
------------------------------------------------------------
Client connecting to 192.168.3.12, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   102 KByte (default)
------------------------------------------------------------
[  5] local 192.168.3.3 port 1040 connected with 192.168.3.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  2.39 MBytes  2.00 Mbits/sec
[  5] Sent 1702 datagrams
[  5] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  5]  0.0-10.0 sec  2.39 MBytes  2.00 Mbits/sec  0.039 ms    0/ 1701 (0%)
[  5]  0.0-10.0 sec  1 datagrams received out-of-order

得出結果:Jitter為0.039ms,沒有數據損失。

當執行測試速度超過負荷時 (以200Mb/s為例):

接收端為:
[  3] local 192.168.3.12 port 5001 connected with 192.168.3.3 port 1040
[  3]  0.0- 1.0 sec  6.74 MBytes  56.5 Mbits/sec   0.027 ms   45/ 4850 (0.93%)
[  3]  1.0- 2.0 sec  5.20 MBytes  43.6 Mbits/sec   0.028 ms    0/ 3708 (0%)
[  3]  2.0- 3.0 sec  6.35 MBytes  53.2 Mbits/sec   0.023 ms    0/ 4528 (0%)
[  3]  3.0- 4.0 sec  5.54 MBytes  46.5 Mbits/sec   0.026 ms   12/ 3962 (0.3%)
[  3]  4.0- 5.0 sec  6.42 MBytes  53.8 Mbits/sec   0.025 ms    0/ 4577 (0%)
[  3]  5.0- 6.0 sec  5.58 MBytes  46.8 Mbits/sec   0.032 ms   19/ 3998 (0.48%)
[  3]  6.0- 7.0 sec  6.47 MBytes  54.3 Mbits/sec   0.022 ms    0/ 4614 (0%)
[  3]  7.0- 8.0 sec  5.49 MBytes  46.1 Mbits/sec   0.024 ms   46/ 3965 (1.2%)
[  3]  8.0- 9.0 sec  5.79 MBytes  48.6 Mbits/sec   0.022 ms    0/ 4132 (0%)
[  3]  9.0-10.0 sec  6.22 MBytes  52.2 Mbits/sec   0.035 ms   16/ 4453 (0.36%)
[  3]  0.0-10.1 sec  59.8 MBytes  49.9 Mbits/sec  11.357 ms  137/42789 (0.32%)
[  3]  0.0-10.1 sec  1 datagrams received out-of-order

發送端為:
[~] # /opt/bin/iperf -c 192.168.3.12 -u -b 200m
------------------------------------------------------------
Client connecting to 192.168.3.12, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   102 KByte (default)
------------------------------------------------------------
[  5] local 192.168.3.3 port 1040 connected with 192.168.3.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.1 sec  60.0 MBytes  50.0 Mbits/sec
[  5] Sent 42790 datagrams
[  5] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  5]  0.0-10.1 sec  59.8 MBytes  49.9 Mbits/sec  11.357 ms  137/42789 (0.32%)
[  5]  0.0-10.1 sec  1 datagrams received out-of-order

得出結果:穩定頻寬為49.9Mb/s,Jitter為11.357ms,有0.32%數據損失。 (系統可能有流量控制,只有少部分數據損失,注意只有最後一次 Jitter 是最大,測試結果以最後為主,實際上可能為IPerf不同板本出現的個別問題)

注:44.1/16頻寬約為1.4Mb/s,384/24頻寬約為17Mb/s。

測試報告

Screen shot 2014-08-04 at 4.28.20 PM.png

Screen shot 2014-08-04 at 4.28.32 PM.png

Screen shot 2014-08-04 at 4.28.46 PM.png

Screen shot 2014-08-04 at 4.28.59 PM.png

數據分析

TCP的流量比較,較快的硬件比較慢的NAS有更大的優勢,可能軟件上的設置 (Windows系統未有任何優化),Linux系統的網絡速度較Windows系統高。

UDP測試比較,20Mb/s流量以下,分別不太明顯;100Mb/s以上,NAS的 Packet Loss 隨著流量增大,如果用UDP播放,聲音便變成十分不穩定;但最低Jitter出現在20Mb/s流量的Linux系統,可能是Winodws Size較細的原因,即是如果將網絡的buffer設少,Jitter也可變少,這個可能對UDP播放有利。

總結

使用TCP的播放器有個優點,就是數據沒有損失,但如果網速太低或者網絡延誤,可能會發生斷斷續續的情況,相反使用UDP的播放器有可能出現數據損失,使到品質下降。如果TCP播放器的buffer足夠,基本上1000ms以內的 Network Jitter 可以忽略,而 Network Jitter 對UDP式播放器影響甚大,如果沒有足夠的頻寬,將會做成品質損耗。結論是網絡要有足夠頻寬,以高清檔為例,小弟認為最好有100Mb/s以上的頻寬,如果是CD格式,10Mb/s也應該足夠。

有部分師兄可能會覺得,這編文章比較著重技術層面,但小弟想指出有關網絡播放的幾個論點:
1) 頻寬越高,播放質素越有保證。
2) 伺服端和播放端硬件越高級 (速度上),播放便越穩定。
3) 但這樣的測試能否證實其他網絡器材 (如 Isolator、Copper/Optical Converter) 的效能?
4) 如使用不同的網絡器材或線材,測試未可能反映出噪音對播放質素的影響?
5) 還有其他問題,如果使用TCP作傳輸的播放器,理論上對網絡器材或線材要求不大?
6) 簡單的Linux系統是否網絡播放器的發展趨勢?

最後,這個論據是否合理?希望各位師兄指教。

評分

參與人數 17威望 +167 金錢 +167 收起 理由
BGZ + 6 + 6 精彩報告
lit2ken + 6 + 6 認真報告!
momolee + 10 + 10
louis001 + 10 + 10 精彩報告
chhanthony + 20 + 20
oldleaf + 6 + 6 精彩報告
ykluk + 10 + 10 精彩報告
karsonkwan + 10 + 10 有心機
fungl + 10 + 10 一定要加分
oldj + 9 + 9 精彩報告
pinkspider + 10 + 10 精彩報告
PhantomGTR + 10 + 10
pac + 10 + 10 真心分享,抵讚
edison133 + 10 + 10 精彩報告
leemanho + 10 + 10 精彩報告
chuwing + 10 + 10
obee + 10 + 10

查看全部評分

226

主題

6564

回帖

8

精華

銀級玩家

Rank: 8Rank: 8

積分
48516

76 榮譽慈善家勲章76 榮譽VIP勲章76-FC 藍寶石勲章

發表於 2014-8-4 16:42 | 顯示全部樓層
有用的分享. 行內又有料的人會看得懂, 否則也只是多一個報告而已.
簡單講, 報告的結論係, 愈快的硬件, 愈大的頻寬, 給出來的 latency 和 jitter 便會愈低.

評分

參與人數 1威望 +10 金錢 +10 收起 理由
jackt + 10 + 10 謝謝!

查看全部評分

62

主題

2297

回帖

2

精華

鑽石玩家

Rank: 12Rank: 12Rank: 12

積分
323389

76 榮譽忠義勲章

 樓主| 發表於 2014-8-4 16:47 | 顯示全部樓層
obee 發表於 2014-8-4 16:42
有用的分享. 行內又有料的人會看得懂, 否則也只是多一個報告而已.
簡單講, 報告的結論係, 愈快的硬件, 愈大 ...

第一次做測試分析報告,  
過獎!過獎!

評分

參與人數 1威望 +10 金錢 +10 收起 理由
obee + 10 + 10

查看全部評分

37

主題

298

回帖

0

精華

星級玩家

Rank: 7Rank: 7Rank: 7

積分
11788
發表於 2014-8-4 17:09 | 顯示全部樓層
師兄咁好心機做個研究,佩服

73

主題

2184

回帖

4

精華

黃金玩家

Rank: 9Rank: 9Rank: 9

積分
83297
發表於 2014-8-4 17:23 | 顯示全部樓層
本帖最後由 edison133 於 2014-8-4 17:25 編輯

1.請問測試時用什麼LAN線的?
2.如UTP 在50M以上速度時用 Hifi 級LAN 線會否 date loss or 有改善?
3. 我知大部份player 是行UTP的, 請問那一個player 是行TCP?
行TCP 可能對 CUP or MCU work load 重好多, 可能對音質有所影響。
4. 你這testing好正, 也說明LAN 線對UTP player是非常重要!

428

主題

7545

回帖

22

精華

白鑽玩家

Rank: 13Rank: 13Rank: 13Rank: 13

積分
879542

76 榮譽貢獻勲章76 榮譽VIP勲章76-FC 黑鑽石勲章

發表於 2014-8-4 17:32 | 顯示全部樓層
多謝師兄真心分享

0

主題

215

回帖

0

精華

星級玩家

Rank: 7Rank: 7Rank: 7

積分
16693
發表於 2014-8-4 18:09 | 顯示全部樓層
可不可以將intel nuc cpu降頻run一次?

62

主題

2297

回帖

2

精華

鑽石玩家

Rank: 12Rank: 12Rank: 12

積分
323389

76 榮譽忠義勲章

 樓主| 發表於 2014-8-4 20:14 | 顯示全部樓層
謝謝各位師兄加分!  

62

主題

2297

回帖

2

精華

鑽石玩家

Rank: 12Rank: 12Rank: 12

積分
323389

76 榮譽忠義勲章

 樓主| 發表於 2014-8-4 20:27 | 顯示全部樓層
edison133 發表於 2014-8-4 17:23
1.請問測試時用什麼LAN線的?
2.如UTP 在50M以上速度時用 Hifi 級LAN 線會否 date loss or 有改善?
3. 我知 ...

1.請問測試時用什麼LAN線的?

測試時用最cheap嘅跟機線同AMP嘅Cat.5線。

2.如UTP 在50M以上速度時用 Hifi 級LAN 線會否 date loss or 有改善?

我沒有HiFi級LAN線,所以不知道會不會少些 data loss,但UDP嘅特點就係容許有loss,但可能有改善都唔定,不過要問人借線試至知。

3. 我知大部份player 是行UTP的, 請問那一個player 是行TCP?
行TCP 可能對 CUP or MCU work load 重好多, 可能對音質有所影響。

以我所知大部分 software player 都係行TCP,例如 Squeezelite, HQPlayer,而有些DLNA行UDP的,都只是一些 control protocols。

4. 你這testing好正, 也說明LAN 線對UTP player是非常重要!

是的,相對來講,UDP播放器需要更高端的網絡設備。

謝謝,有機會再找相關器材/線器作測試。

62

主題

2297

回帖

2

精華

鑽石玩家

Rank: 12Rank: 12Rank: 12

積分
323389

76 榮譽忠義勲章

 樓主| 發表於 2014-8-4 20:35 | 顯示全部樓層
diamondblack 發表於 2014-8-4 18:09
可不可以將intel nuc cpu降頻run一次?

這個要稍後有時間再測試,理論上CPU慢了,傳輸速度應該慢一些,CPU慢些只影響用電量和熱量,令到電腦不用因熱量而開大風扇,減低風扇聲的噪音。
您需要登錄後才可以回帖 登錄 | 成為會員

本版積分規則  允許回帖郵件提醒樓主

重要聲明:本討論區是以即時上載留言的方式運作,Post76玩樂討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意 見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們。Post76玩樂討論區有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ), 同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權 。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。權利。
快速回復 返回頂部 返回列表