DLNAをリモートネットワークに転送する

背景



そのため、私のサーバーからテレビで映画を見る機会を与える必要がありました。 さて、DLNA、たとえばminiDLNAを上げると、問題は解決します。 そのため、別の場所に住んでいる両親に同じ機会を与える必要があり、サーバーや単純なnasをそこに配置したくありませんでした。 トラフィックをトンネリングしてネットワークを統合し、私の映画ライブラリにアクセスできるようにすることが決定されました。



準備



私はすでに両親と一緒に優れたルーターをインストールしており、それを使って長い間仕事をして信頼してきました-Mikrotik 951Ui 12HnD。 この壮大なルーターに慣れていない方、知り合いになることをお勧めします。 価格設定ポリシーにより、自宅とオフィスの両方のソリューションを選択できます。 同時に、高価なエンタープライズソリューションなどの機能も利用できます。



私のアパートにもMikrotikがありましたが、違いは1つだけで、すべてのギガビットポートがありました。 ためらうことなく、私はpptpトンネルを持ち上げ、それが始まりました...



最初の問題



ストリーミングオーディオおよびビデオデータセグメントを送信する従来の方法とは対照的に、DLNAは多少異なります。 そして、私はトラフィックを嗅ぎ取った後すぐに明らかになりました。



  1. メディアサーバーとテレビ間のすべての通信はHTTP経由で行われます
  2. TVは、アドレス239.255.255.255.250にSSDPパケットのマルチキャストブロードキャストを行います。このブロードキャストでは、メディアサーバーに直面してサービスとして自身を登録します。
  3. DLNAサーバーは、新しいサービスを見ると、内部で情報を送信した数パケット後にテレビに直接アクセスし始めます。



    XML
    <?xml version="1.0" encoding="utf-8"?> <root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:dlna="urn:schemas-dlna-org:device-1-0" xmlns:sec="http://www.sec.co.kr/dlna"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <device> <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC> <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">M-DMS-1.50</dlna:X_DLNADOC> <dlna:X_DLNACAP xmlns:dlna="urn:schemas-dlna-org:device-1-0">av-upload,image-upload,audio-upload</dlna:X_DLNACAP> <sec:ProductCap>smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec</sec:ProductCap> <sec:X_ProductCap>smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec</sec:X_ProductCap> <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType> <friendlyName>[PC]DESKTOP-SBP6BH3</friendlyName> <manufacturer>Samsung Electronics</manufacturer> <manufacturerURL>http://www.samsung.com/sec</manufacturerURL> <modelDescription>Samsung PC DMS</modelDescription> <modelName>PC</modelName> <modelNumber>AllShare1.0</modelNumber> <modelURL>http://www.samsung.com/sec</modelURL> <UDN>uuid:0d1cef00-0032-1000-8823-f46d043e5ae2</UDN> <sec:deviceID>H3CJEO6BEFKMU</sec:deviceID> <iconList> <icon> <mimetype>image/jpeg</mimetype> <width>48</width> <height>48</height> <depth>24</depth> <url>/smp_2_</url> </icon> <icon> <mimetype>image/jpeg</mimetype> <width>120</width> <height>120</height> <depth>24</depth> <url>/smp_3_</url> </icon> <icon> <mimetype>image/png</mimetype> <width>120</width> <height>120</height> <depth>24</depth> <url>/smp_4_</url> </icon> <icon> <mimetype>image/png</mimetype> <width>48</width> <height>48</height> <depth>24</depth> <url>/smp_5_</url> </icon> </iconList> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType> <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId> <SCPDURL>/smp_7_</SCPDURL> <controlURL>/smp_8_</controlURL> <eventSubURL>/smp_9_</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType> <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId> <SCPDURL>/smp_10_</SCPDURL> <controlURL>/smp_11_</controlURL> <eventSubURL>/smp_12_</eventSubURL> </service> </serviceList> </device> </root>
          
          







  4. 聞きたい/見たいメディアファイルを選択すると、TCPを介して交換が開始されます。理解したとおり、TVはメディアファイルのキャッシュを開始します。







PPTPを介して、これらの要求の一部は実行され、一部は実行されませんでした。 トラフィックダンプを調べた後、次の結論に達しました。





すべてが提供されているように見えます。両親のテレビでDLNAサーバーを見て、それに接続し、映画を開いた後、なんとか2フレームを見ることができました。 サーバーから切断されました。 私は新たに始め、ファイアウォールで罪を犯した両方のルーターの設定全体を実行しました。 それから彼は再び交通ダンプを見て、同じことを見た..
断片化しないでください






そして、それは私に夜明けをもたらしました! パケットサイズはPPTPが提供するMTUを超えていますが、フラグメント化することはできません! 残念ながら、miniDLNAサーバーの設定では、パケットの長さを制限する機会が見つかりませんでした。



勝利の決定



その結果、最も単純なIP-IPトンネルは必要なMTU、MRU、およびMSSを提供しますが、プロバイダーからの動的なアドレス指定の問題に直面しています。両端に静的がある場合は、運がいいです。



NASが接続されているインターフェイスでmtuを制限することもできます。 この場合、パケットは小さなMTUで認識され、任意のトンネルにクロールされますが、これによりCPUに大きな負荷がかかる可能性があります。



追加



映画を見ることは、チャンネル幅の点でネットワークに大きな負荷をかけることを忘れないでください。 ローカルネットワーク内ではなく、ネットワーク間で、プロバイダーがチャネル幅を制御する場合、一般的には、QoSを有効にし、サーバーとサーバーへの接続を優先することをお勧めします。ページを開くには、さらに30ミリ秒待つことができます。



ご希望の場合は、Mikrotikの構成方法を詳細に説明します。



私が使用した記事:

en.wikipedia.org/wiki/DLNA

en.wikipedia.org/wiki/Maximum_transmission_unit

wiki.mikrotik.com/wiki/Manual :ルーティング/マルチキャスト



親愛なる! 記事を差し引いている場合は、理由をコメントに書いてください。改善します!

批判やコメントを歓迎します!



All Articles