觀看文件共享網路的發展很有趣,但參與其中更有趣。
今天,安裝並啟動了現代化的
С
因此,您當然可以開箱即用現成的集線器,但只是啟動它然後忘記它是不好的。 歷史背景下的可擴展性也意味著客戶端和伺服器軟體存在不同數量的不同功能,具體取決於版本。 對於一個使用者來說沒有問題的工作可能與另一個使用者的客戶端不相容,這一點必須考慮在內。
IPv6 就發生過這種情況。 NMDC老頭不知道原理上怎麼做,但是ADC本身已經做好準備了。 然而,事情並非如此簡單。
只是一點理論
「活動」用戶可以接受傳入連線。 實際上,來自它的連接請求實際上是 邀請函.
「被動」使用者通常只能使用傳出請求。 他透過樞紐 要求 活動用戶發送邀請 - 並建立連線。
是的,這種機制不依賴所使用的 IP 協定的版本。
天鵝、小龍蝦和梭子魚
我們來談談客戶端軟體。
IPv6支援
即使明確使用具有 AAAA 記錄的 IP 域作為 WAN,也無法在手動配置期間獲得活動模式,但在使用 UPnP 的自動模式下,一切都按預期運作。
我必須立即進行預訂:AirDC++ 獨自完成此操作。 將來,為了方便起見,我將使用類似的組合 AP 或 AA 分別作為 IPv4 和 IPv6 的主動或被動操作模式的指示,而不是它們顯示在真實集線器上的真實客戶端標籤中。 這很重要。
在我們的實驗中我們將使用 飛聯DC++ 身為一個根本不熟悉 IPv6 的客戶。 還應該指出的是,支持
開始
首先,我們將看看不同版本的 IP 協定的使用者之間明顯不可能的連線。 將用於測試
請注意,當您(實際上)嘗試聯絡具有版本 XNUMX IP 位址的使用者時,會顯示錯誤。
Hub: [Outgoing][IPv4:412] DRCM AACX AACU ADCS/0.10 337151563
Hub: [Incoming][IPv4:412] DCTM AACU AACX ADCS/0.10 1988 337151563
Hub: [Outgoing][IPv4:412] DSTA AACX AACU 240 IPsunknown
在人類翻譯中聽起來像
P4: – 我可以黏著你嗎?
A6: – 堅持住!
P4: – 生活就是痛苦0_0
如果需要的話,一本簡短的字典,
如果情況相反,並且連接啟動 A4,則不會顯示任何錯誤,並且連接只是掛起。
Hub: [Outgoing][IPv4:412] DCTM AACX AACU ADCS/0.10 1993 3871342713
是,好像不是
重要的是集線器上顯示的連接模式。
不支援 IPv6 的用戶端將不得不將透過其連接的用戶視為明顯被動的,僅僅是因為集線器不會為他們填充 I4 或 I6 相應字段。
FlylinkDC++ 對比IPv6
事實上,情況更簡單,同時也更複雜。
AirDC++ 對比IPv6
更容易,因為 IPv6 優先於 IPv4,這是可以理解的。 透過它(儘管可以使用相應的選項覆蓋),將建立與集線器的連接,並且主動客戶端將其提供給被動客戶端進行連接。
這更困難,因為如果集線器上有支援 IPv6 的用戶,但他們嚴格透過 IPv4 位址連接,那麼...
....然後您就可以(隨機)連接到它們,而無需使用 IPv4。
請注意,遠端客戶端已將自己指定為資產,但被視為負債。 為什麼?
把他丟到鞦韆上
現在,我們嘗試將具有不同但在 IPv4 方面常見的 IP 協定支援集的用戶端連接起來。
是的,很遺憾的是被動用戶不得不在一旁抽煙。 但這也是無濟於事的,因為它們的可見 IP 位址並不是特別重要——這就是它們成為負債的原因。
呸! 活動客戶端發送
這是為什麼? 我們聯繫了開發商並得到了答案:
CTM 如果其他用戶不支援 IPv6,那就不好了
你不能爭論! 但這需要內部邏輯,獨立於集線器(參見程式碼
活動模式 =
TCPx+IPx
嘗試在具有通用 IPv6 IP 支援集的用戶端之間進行連線如下所示。 讓我提醒你,實現 PA 我沒有成功獲得 DC++。
又是一個驚喜。 事實證明,DC++ 演示的 IPv6 被動模式要么是故意偽造的,要么是錯誤。
接下來是什麼?
目前,有兩種方法可以解決不同模式和不同IP協定支援下的用戶連線時可能出現的所有問題。
第一種方法是完全停用 IPv6,或者相反,建立一個僅透過 IPvXNUMX 工作的集線器。
第二個是這個
好吧,如果您懶得設定活動模式以在 DC 中工作,請記住:
誰有,就給他;誰沒有,連他自以為有的,也要奪走。 好的。 8:18
來源: www.habr.com