問題タブ [communication-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3915 参照

asynchronous - 現実世界のクロスプラットフォーム分散型非同期ピアツーピア通信

ネットワーク プログラミングに関する私の知識は限られているため、すべてのコメントを歓迎します。基本的に、私の質問は次の質問に要約されます。

Q1. 分散型非同期クロスプラットフォーム ピア ツー ピア通信のようなものは本当にあるのでしょうか?

説明させてください。

  • 実際の IP アドレスを持つコンピューターで実行されている 2 つの http サーバーがある場合、相互作用のためのプロトコルを作成すると仮定すると、明らかに答えはイエスです。

  • さらに一歩進んで、そのうちの 1 つ (または両方) がルーターの背後にある場合でも、ポート転送を使用して通信を確立できます。ただし、ここで問題が発生します。誰かがそのようなサーバーをバックグラウンドで、たとえば携帯電話で実行したい場合、このサーバーに依存しているアプリは、自宅にいるときに実際に機能するためです (ポート転送を要求することは実際には期待できません)。どこに行っても)。

  • しかし、それを超えても、

  • Q2. Wi-Fi を使用していないとき、携帯電話は通信会社から実際の IP アドレスを取得しますか?

  • これが本当なら、スマートフォンで http サーバーを実行することにより、wi-fi を使用しないことを犠牲にして、明らかにクロスプラットフォームの非同期ピアツーピア通信を行うことができます。(これが便利でないことは理解していますが、確かに実行可能です。)

結論として、私が考えることができる2つの(おそらくもっとある)関連する質問は次のとおりです。

Skype の回答に基づいて、呼び出し先の 1 つまたは両方がパブリック IP を持っていない場合、UDP または TCP を介して音声トラフィックを別のオンライン Skype ノードに送信します。 そのため、Skype には直接的なコミュニケーションがないように見えます。そのようなシナリオでは中間者を使用する必要があるからです。

Viber に関しては、この特定の質問に対する十分な回答が見つかりませんでした。人々は Viber の中央サーバーを介して互いに会話しますか、それとも直接接続を確立しますか? もちろん、彼らが直接接続を確立する場合、携帯電話には物理アドレスがある場合とない場合があるため、そのようなことをどのように管理しているかを知りたいと思います. Viber が実行されておらず、ルーターの背後にいる場合でも、友人からの Viber メッセージはどのように私の携帯電話にルーティングされますか?

Viber への答えは本当にプッシュ通知だと思いますが、私が理解できる限り、プッシュ通知のすべてのバリエーションはオープン接続に依存しており、アプリケーションのサーバーはそのような接続を介してクライアントに通知を送信します。したがって、このアプローチは非同期であると感じさせますが、本質的にはそうではありません。サーバーへの接続が常に開かれているという意味で、私たちはごまかしています。さらに、私が理解できる限り、アプリケーションサーバーはそのサーバーを介して通知をプッシュする必要があります。概略的に:

A > Central App Server > Central Server w/ open connection to my cellphone > me

したがって、これは再び集中型のアプローチのようです。

正直なところ、私が考えることができる分散化と非同期の両方のアプローチ (携帯電話でも) は、すべてのプラットフォーム/デバイスで http サーバーを実行することですが、これには Wi-Fi を使用しないという犠牲が伴います。電気通信会社は実際にすべての携帯電話に物理 IP アドレスを割り当てます (これが本当かどうかはわかりませんね)。

WASTE、ダークネット、F2F などはどうですか? それらは、利害関係者間のより直接的な非同期通信という意味で利点を提供しますか? このような通信方法を使用する現実世界のアプリケーション (携帯電話も含む) はありますか。

実際、これは私が取り組みたい実際の問題ではありませんが、そこからどのように進めることができるかを理解できるように、最新技術が何であるかを知りたいです. したがって、すべてのコメントは大歓迎です。最先端のリファレンスがある場合は、それらについても知りたいのですが、簡単な説明もいいでしょう.

皆様のお時間とご尽力に感謝いたします。

0 投票する
2 に答える
895 参照

c# - ネットワークを介してアプリケーション間で通信する

私たちのプロジェクトには、コンピューター内部および内部ネットワークを介して相互に通信する多数のプログラムがあります。これを解決するために、今日では COM/DCOM を使用しています。ただし、DCOM は複雑すぎると考えています。Windows の各バージョンのセキュリティ設定の変更を構成する方法。

したがって、異なる Windows コンピュータ上の異なるプログラム間の通信を可能にし、DCOM ほどのオーバーヘッドを持たないプロトコルを探しています。

プログラムは C++/MFC と C# で書かれています。

システムは他のネットワークから完全に切り離された小規模なローカル ネットワーク上で実行されるため、セキュリティはそれほど重要ではありません。

0 投票する
2 に答える
249 参照

image - インターネットを介した画像 (画像記述子) の送信

クライアント (スマートフォン) からサーバー (処理マシン) に画像または画像記述子を送信する必要があります。サーバーは、ビデオ ストリーム内の画像/機能を認識しようとし、検出されたものの ID と追加データを返信します。通常、認識プロセスは数秒以上続くことはありません (認識される画像の数が多いことを考慮して)。理想的には、処理サーバーはミリ秒以内に応答します。

検出される画像は「セットアップ段階」で送信され(大きな遅延があっても問題ありません)、認識プロセスが実行されるサンプリングされたビデオフレームが特定の頻度で送信されます。たとえば、5フレーム/ 2番目。(もちろん周波数は可変です)

これを実装するための最適な通信プロトコルは何ですか? コードは C/C++ で記述される予定ですが、コードの実装よりも、ワークフロー (概念) がどのように見えるかにより興味があります。

これにはHTTPで十分ですか?RTSP か何か他のものはどうですか? データはスマートフォン (インターネット接続が例外的ではない場合) から処理マシン (サーバー、高速インターネット接続) に送信されることに注意してください。

ありがとうございました!

編集:回答ありがとうございます。実際、私は特定のニーズを実装できる既存の通信プロトコル間の比較を探していました。私が言ったように、「接続」を実装するコードの複雑さには興味がありません。私のユースケースと比較して、それらの間のいくつかの長所/短所を見たいと思っていました。一方、認識を行うサーバーは、スマートフォン上で動作するアプリケーションが実装する通信プロトコル(+API)に準拠している必要があり、それ以上のものはありません。つまり、サーバーがクライアントの要求を理解し、要求を行うアプリケーションが理解できる応答を返すことができる限り、サーバーがどのように機能するかは気にしません。

私が言及するのを忘れていたこと (私の悪い点) は、このユースケースの実装をサポートするすべての通信プロトコルに興味があるということです。

0 投票する
1 に答える
142 参照

android - 2 台の Android フォン間のデータ転送

2 台の Andriod フォン間でデータ (数バイト) をできるだけ遠くに送信したいと考えています。WiFiを使いたくない。通信は 2 つのデバイス間で直接行う必要があります。FMトランスミッターを付ければFMでデータの送受信はできますか?より良い方法はありますか?

0 投票する
0 に答える
63 参照

sockets - ネットワーク アダプタなしの TCP ポート

単一のマシンですべて実行されるいくつかのソフトウェア モジュールを作成するつもりであり、それらが TCP 経由で相互に通信できるようにしたいと考えています。

私が使用しているマシンには、物理​​ネットワーク アダプタがない可能性があります。物理ネットワーク アダプタがない場合、localhost への TCP 接続は正しく機能しますか?

私が実行しているオペレーティング システムは Linux for Tegra です。

ありがとう。

0 投票する
2 に答える
37535 参照

i2c - I2c バスでの NACK および ACK 応答

私の最近のプロジェクトでは、単一のマスターと複数のスレーブを使用した i2c 通信を使用する必要があります。マスターから送信された各データ バイト (実際のデータ) で、スレーブは Nack\Ack(1,0) で応答することを知っています。この Nack と ACK がどのように解釈されるのか混乱しています。ウェブを検索しましたが、これについて明確なイメージがありませんでした。私の理解はこのようなものです。

ACK- データを正常に受信しました。もっとデータを送ってください。NACK- データを受信して​​いません。もう一度送信してください。これはこのようなものですか、それとも間違っていますか。正しい答えを明確にして提案してください。

ありがとうアミット・クマール