欢欢乐乐 发表于 2020-6-29 10:02:05

diretta和zero link用家交流贴

本帖最后由 欢欢乐乐 于 2021-1-22 10:53 编辑

感谢坛友DXDXDX,让我了解到一种全新的音频网络传输协议,并且获得了非常好的使用体验。
如果还不知道diretta的朋友,可以先看看DXDXDX的科普贴:http://www.headphoneclub.com/forum.php?mod=viewthread&tid=737531&highlight=diretta

我觉得diretta适用于系统中有用到win 电脑的数播爱好者,可以是PCHIFI玩家(win软件电脑播放,只要能支持asio的软件基本都能用diretta),也可以是借助hqplayer升频滤波的roon玩家,如果您正好符合,墙裂建议试一下diretta。

我属于第二种用家,用diretta代替naa 实现网络音频的传输和播放,我的数字部分配置是这样的:NUC(ROCK)作为roon core,一台9900K电脑作为hqplayer专机,手头闲置的epoch(up board主板)作为bridge,由于diretta bridge暂时只能支持X64架构,建议使用X64的开发板,没有的话普通PC 也能使用。

由于官方6月试用期临近结束,不知道坛里是否有朋友在试用,小弟在此抛砖引玉,希望大家一起交流一下。





欢欢乐乐 发表于 2020-6-29 20:59:07

本帖最后由 欢欢乐乐 于 2022-6-16 09:25 编辑

最新的配置放在这里,供参考。

本帖最后由 欢欢乐乐 于 2021-3-8 19:09 编辑1、软件部分:
    a、内容提供:tidal+qobuz+本地(本地很少用)
    b、内容管理和操控:roon1.8(不必解释,优势明显)
    c、升频和滤波:HQPlayer Embedded(原因同上)
    d、传输协议:diretta(相比naa,raat都更好)

2、硬件部分(3pc组合):
    a、roon core:nuc8i7+jcat xe网卡+线电+hdplex h1 v3静音机箱(官核系统)
    b、HQPe专机:audiolinux(装显卡 cuda,hqpe和diretta驱动)+12900KS+A4000显卡+海盗船AX1600I电源+musy隔离牛+solarflare SFN8522网卡
    c、diretta target:diretta USB证书+up5机箱+SOtM 主板时钟板USB卡套装+9600Kcpu+jcat atx 线电+摩改的sfp网卡
    d、usb解码:sotm tX-USBultra+ideon 3r master time+ DI20HE界面+cybershaft op20时钟+文豪c/aqwo解码
    e、网络:finisar 1475d3btl模块+sotm 交换机,进户用了软路由,你懂的。
    f、操控pad:联想小新pro
    g、模拟部分:睿志全家桶(HE1前级+M2H单声道后级推低音+M3立体声后级推中高)+金琅乐神8号
    h、电源部分:10平方电源专线+隔离牛




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一开始接触diretta,并没有给我惊喜,感觉不如ARM架构的NAA(我自己同时在用canon)。直到我进行了下面的二个重要设置,声音就明显提升了。
1、preset profile设置尽可能高,我最高可以设到SuperV25000,如果设成SuperV40000会有卡顿。(见下图红圈)
2、双网卡设置,我自己加了一张双光口网卡,设置独立输出给bridge。(见下图绿圈)

经过上述设置,声音安定感明显提升,一个字:稳

门的耳朵 发表于 2020-6-29 22:26:14

墙裂支持

-player- 发表于 2020-6-29 23:31:46

https://audiophilestyle.com/forums/topic/54566-diretta-audio-transport-protocol/?tab=comments#comment-888357

给楼主一个吃瓜贴。

hq作者怼diretta 开发者YU,2018年的老帖子。

劝你还是用一下原生HQ OS镜像,真的,没那么折腾。

欢欢乐乐 发表于 2020-6-30 06:46:49

本帖最后由 欢欢乐乐 于 2020-6-30 08:29 编辑

-player- 发表于 2020-6-29 23:31
https://audiophilestyle.com/forums/topic/54566-diretta-audio-transport-protocol/?tab=comments#commen ...
同样硬件下,我比较了hq 官网的naa 最新x64 镜像,二者都用U盘启动,很遗憾比diretta 差距不小啊。
看了一下18年的神仙打架贴,获益匪浅。

Diretta isoptimize best MTU size,目前官方推荐MTU 设置100。在此设置下,从我的感受来说Diretta更好。

另外,Diretta 其实一点不折腾,硬件都是现成的。

欢欢乐乐 发表于 2020-6-30 08:42:30

听感上证明diretta的确不差,我也很好奇背后的技术原理,看了一个德国网站的枪文,机翻后试图理解一下。

In einem Computernetz sind bekanntlich verschiedene Geräte miteinander verbunden. Die Kommunikation zwischen den einzelnen Geräten gestaltet sich komplizierter, als es auf den ersten Blick scheinen mag. über das, was da im Detail abläuft, machen wir uns in der täglichen Praxis keine Gedanken, so lange alles reibungslos funktioniert. Die notwendigen Kommunikationsabläufe werden in verschiedene, aufeinander aufbauende Schichten (Layers) eingeteilt. Ganz grob wird dabei in die Schichten Anwendung, Transport, Vermittlung, Sicherung und Bitübertragung unterschieden. Diese Layer müssen sowohl auf der Sender- als auch auf der Empfängerseite nach festgelegten Regeln arbeiten, die in einem Protokoll beschrieben sind. Der Datenfluss selbst erfolgt vertikal zwischen den Schichten. Dabei stellt jede Schicht Dienste zur Verfügung, die eine darüber liegende Schicht nutzen kann und greift dabei selbst auf die Dienste einer darunterliegenden Schicht zurück.
在计算机网络中,我们知道不同的设备是连接在一起的。不同设备之间的通信比乍看起来要复杂得多,只要一切顺利,我们就不去想日常实践中发生了什么。所需的通信序列被分为不同的层。应用程序层、传输层、中介层、安全层和位传输层是大致区分的。根据协议中描述的规则,这些层必须同时在发送方和接收方工作。数据流本身在层之间垂直发生。在这样做时,每一层提供的服务可以使用它上面的一层,使用下面一层的服务。

Klingt ziemlich abstrakt – doch nehmen wir zum besseren Verständnis einfach ein Beispiel aus dem praktischen Leben. Sie schreiben Ihrem Geschäftspartner einen Brief. Inhalt des Briefs, Briefpapier und Umschlag werden von Ihnen bestimmt. Sie oder Ihre Sekretärin bringen den Brief zur Hauspost (Anwendungsschicht). Der dortige Mitarbeiter (Transportschicht) klärt, welche übertragungswege bestehen. Der Brief könnte klassisch durch die Deutsche Post oder durch einen Kurier zugestellt werden. Da der Brief eilt, wählen Sie den Kurier und verlangen gleichzeitig eine Empfangsbestätigung durch den Empfänger. Im nächsten Schritt liest der beauftragte Kurier die Adresse vom Briefumschlag ab und gibt sie in sein Navi ein, um die optimale Route zum Empfänger zu finden (Vermittlungsschicht). Ihnen ist natürlich wichtig, dass Ihr Brief unversehrt und ungelesen beim Empfänger ankommt. Der Kurier versichert dies durch seine Referenzen und verspricht, geeignete Sicherungsmaßnahmen einzuhalten (Sicherungsschicht). Der Kurier kann Ihren Brief jedoch nur zustellen, wenn öffentliche Wege zum Ziel führen. Befindet sich Ihr Empfänger auf einer einsamen Insel, dann wird die Zustellung mit dem Auto schwierig (Bitübertragungsschicht).
这听起来很抽象,但为了更好地理解,我们只是从实际生活中举个例子。你给你的商业伙伴写了封信。信、信纸和信封的内容由你方决定。你或你的秘书会把信送到家里的邮局(应用层)。本地员工(传输层)解释存在哪些传输路由。这封信可以用传统的德国邮政或信使投递。由于信件很匆忙,选择快递员,同时要求收件人确认收到。下一步,信使将从信封中读取地址,并将其输入到导航中,以找到到达收件人的最佳路径(中间层)。当然,这对你来说很重要,你的信到达收件人没有伤害和未读。快递员通过其参考资料来保证这一点,并承诺遵守适当的安全措施(安全层)。但是,只有在公共道路通向目的地的情况下,快递员才能送你的信。如果你的接收器在一个荒岛上,用汽车传送将很困难(比特传输层)。

Jetzt schauen wir uns an, was technisch hinter den einzelnen Schichten steckt. Mit der Anwendungsschicht sind keine Anwendungen wie Programme oder Apps gemeint, sondern die Anwendungsschicht bildet die Schnittstelle zwischen Programmen und Netzwerk. Auf dieser Schicht wird häufig das HTTP-Protokoll verwendet. Die Transportschicht regelt die Kommunikation zwischen den Computern. Durch die Wahl des Protokolls wird ferner festgelegt, ob eine Empfangsbestätigung (TCP) angefordert wird oder nicht (UDP). Die Vermittlungsschicht ist für das Routen von Nachrichten von einem Computer zum anderen zuständig. Hier kommt das allseits bekannte Internet Protocol (IP) zum Einsatz. Die wichtigste Funktion ist dabei die Zuteilung einer IP-Adresse im Netzwerk. Die Sicherungsschicht ist für die fehlerfreie übertragung des Datenstroms zuständig, der hierfür in Pakete aufgeteilt und mit Prüfsummen versehen wird. Die Sicherungsschicht arbeitet zudem mit der MAC-Adresse, um Geräte eindeutig identifizieren zu können. In der Bitübertragungsschicht werden schließlich die hardware-technischen Voraussetzungen, wie die zu verwendenden Kabel- und Stecker-Typen, festgelegt.
现在让我们来看看这些层背后的技术。应用层不是指程序或应用程序之类的应用程序,而是应用程序层构成程序和网络之间的接口。HTTP协议通常用于这一层。传输层控制计算机之间的通信。协议的选择还决定是否请求接收确认(TCP)。中介层负责将消息从一台计算机路由到另一台计算机。这里使用的是众所周知的因特网协议(IP)。最重要的功能是在网络中分配一个IP地址。备份层负责数据流的无差错传输,数据流被分成数据包并提供校验和。备份层还与MAC地址一起工作,以清楚地识别设备。最后,位传输层定义了硬件技术要求,例如要使用的电缆和连接器的类型。

Sie sind noch mit dabei? Prima dann übertragen wir jetzt das Ganze auf unsere Musikdaten und unterstellen, dass UPnP zum Einsatz kommt. Unser Server möchte Musikdaten an den Renderer „X“ versenden. Dabei wird in der Anwendungsschicht das HTTP-Protokoll verwendet. Die Transportschicht versieht die Daten mit dem Label „TCP“, was übersetzt heißt, dass eine Empfangsbestätigung benötigt wird. In der Vermittlungsschicht wird Empfänger „X“ in eine IP-Adresse übersetzt, die zusätzlich auf den Daten aufgebracht wird. In der Sicherungsschicht wird die IP-Adresse in die jeweils nächstgelegenen MAC-Adressen übersetzt und in der Bitübertragungsschicht werden schließlich unsere Daten physisch über die bekannten Ethernet-Kabel und –Stecker an den Renderer „X“ übertragen.
你还和我们在一起吗?太好了,我们现在把整个东西转移到我们的音乐数据中,并假设将使用UPnP。我们的服务器想把音乐数据发送到“X”渲染器。应用层使用HTTP协议。传输层为数据提供“TCP”标签,这意味着需要确认接收。在放置层中,接收器“X”被转换成额外安装在数据上的IP地址。在备份层,IP地址被转换成最近的MAC地址,在比特传输层,我们的数据通过已知的以太网电缆和连接器被物理地传输到X渲染器。

Prima sagen Sie, aber was macht nun Diretta anders? Nun, auf der Anwendungsschicht kommt nicht das HTTP-Protokoll, sondern das Diretta-Protokoll zum Einsatz. Ziel dieses Protokolls soll es sein, dass Daten in regelmäßigen und kurzen Abständen transportiert werden. Damit soll die Prozessorauslastung verstetigt, respektive reduziert und damit das Störgeräuschverhalten gezielt positiv beeinflusst werden. In der Vermittlungsschicht verwendet Diretta IPv6 anstelle des bei UPnP üblichen IPv4. Als Begründung wird angeführt, dass bei IP6 der Header eine feste Länge von 40 Bytes besitzt und der Router-Prozess einfach sei. Deshalb wäre die übertragungseffizienz besser als bei IPv4, das mit einer variablen Länge von 20 bis 60 Bytes eher kompliziert ist.
你说很好,但是diretta有什么不同之处?好吧,应用层不使用HTTP协议,而是使用Diretta协议。本协议的目的是确保数据以定期和短时间间隔传输。其目的是增加处理器负载,分别降低,从而对处理器的噪声行为产生积极影响。在中介层,Diretta使用IPv6而不是UPnP的IPv4标准。原因是IP6的固定长度为40个字节,而且路由器过程很简单。因此,传输效率将优于IPv4,后者相当复杂,长度为20到60个字节。

4realms 发表于 2020-6-30 09:29:15

本帖最后由 4realms 于 2020-6-30 09:57 编辑

对于高实时性的端对端连接,要获取专门的尽可能的高稳定性和高性能,基本上是必须重写各种现有协议,重写tcp的都有。

当然费劲做这个的前提是真的需要高实时性连接,如果写了半天协议,目标方接受下来存硬盘里,洗水了十遍,再跟发送方断电,那显然努力就白费了。

绕梁三日 发表于 2020-6-30 09:51:55

很多时候总把简单的问题复杂化。网络传输不管用什么协议,桥不管是什么系统,到解码器只需要可识别解码的音频数据流。对于音频数据流质量考核就是误码和时效。误码现在的传输能力发生概率微乎其微,也好发现,误码会引起电平突变,播放产生爆音,而且误码是局部不会影响整体音频回放效果。时效就是延迟和jitter,整体同步延迟不影响播放效果只是听到声音迟早的问题,局部延迟应该归为jitter。影响因素太多了,但桥本身的缓冲和解码器异步起决定作用。这些桥软件更多是适应不同平台。

hardman_die 发表于 2020-6-30 10:14:03

对于网络播放,高实时性传输有价值,但不是所有人都在家庭用网络播放

-player- 发表于 2020-6-30 10:32:34

声音这东西主观自己觉得好就可以。但我从来不觉得安定感信息量和网口有什么关系。

实时性其实你可以开启roon的歌词看看是不是实时匹配。

如果什么换一个设置,网络就出现卡顿说明就是有protocol overhead。

双网卡我是不怎么不推荐的,真的不要把网络搞复杂了,到头来听得变化都是自己引入的变量。买个好点的企业交换机,中间的缓冲交换机越多,连得设备越多,越能够知道网络传输是不是靠谱。很多人现在都把网络当作point-to-point传输,追求什么最快最直接,点对点的模式本来就不是网络该有的形式。

欢欢乐乐 发表于 2020-6-30 11:29:18

官网放出的试用版应该是临近到期了,如果有朋友想试一下diretta ,可以留下你的邮箱,我有7月底到期的桥端镜像可以试用。

门的耳朵 发表于 2020-6-30 12:01:54

很多人喜欢双网口,网口不经过交换机直接到播放器,
不知道是什么理论?

欢欢乐乐 发表于 2020-7-2 22:48:57


wangyonc 发表于 2020-7-2 23:17:35

mkcp的那套思路,老实说网络环境没那么差的情况下效果不明显,另外调了mtu不一定稳定。

wangyonc 发表于 2020-7-2 23:32:47

数据包0收,很像udp无脑灌过去
整个形式上表面看来是限速换取稳定
mtu调低了,网络不稳定的情况下挺有用的,但一般家里的网络不会渣到这种状态吧,看楼主用的connectx-3,10G还是40G的卡?
这个玩法在科学也有过类似的争论,用udp模拟tcp的mkcp方案无脑压爆贷款换取低延时,最后的结论是无线网mkcp好一些,因为无线网的不稳定,mkcp的冗余重传机制能降低tcp重传的延迟,但是网络好的情况下老实tcp更好,减少mkcp带来的带宽消耗和cpu爆炸。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: diretta和zero link用家交流贴

耳机俱乐部微信
耳机俱乐部微信