2016-06-15 9 views
0

私は現在別の投稿("Symmetry Procedure" in NFC P2P LLCP)で書いているので、私は現在、PN532チップでLLCP & SNEPプロトコルを実装しようとしています。 LLCPで定義されるように、私は他のポストであっ 質問は が実際に元のイニシエータ/ターゲットの役割(コマンド/レスポンス)をバイパスすることを可能にする対称手順についてあっすなわち、各ピアデバイス をいつでもメッセージを送信するために変化を与えます。NFC P2P - SNEPクライアント/サーバ

もし私が正しいとすれば、SNEPプロトコルはクライアント/サーバーアプローチを定義します。 1つのデバイス(クライアント)がCONN-PDUをピアデバイス(サーバ)に送信するとき、ロールは実際には でLLCPレベルで定義されます。 その後、クライアントは、SNEFで定義されている「PUT Request」を使用して、NDEFメッセージをサーバーに送信できます。

クライアントがNDEFメッセージをサーバーに送信したとします。アプリケーションに応じて、 現在、サーバーとして動作するピアデバイスは新しい(応答ではない)NDEFメッセージを現在のクライアントは です。

私の仮定は、両方の両方のデバイスは、彼らの最初の役割は、最初のクライアントは、など

今サーバーになり、つまり変更 、現在のサーバが現在のクライアントに新しいCONN-PDUを送信することを、これが成功した場合であり、最初に確立された接続はどうなりますか?それは閉じられるか、それとも新しいものと並行して存在することができますか?

さらに、NFC MACレベルで、クライアント/サーバの変更がイニシエータ/ターゲットの役割の変更をも要求するか、または両方のデバイスが初期状態に留まることが必要であるかどうかを確認してください(MAC)モード?

ありがとうございます!

+0

とbtw、上記のリンク先の質問に私の答えが好きだったら、なぜそれをupvoteして受け入れるのですか? –

+0

申し訳ありませんが、私はかなり新しいスタックオーバーフローです:-) - それは完了です。再びありがとう。 – Patrick

答えて

0

SNEPプロトコルでクライアント/サーバー というアプローチが適切に定義されています。デバイス(クライアント)がCONN-PDUをピアデバイス(サーバ)に送信するとき、ロールは実際にLLCPレベルで定義されます。

いいえ、それはそれがどのように動作するかではありません。役割はそのように定義されていません。仕様からは明らかではありませんが、通常、各ピアは同時にクライアントとサーバーです。仕様のセクション6.1は、「機能説明」は、次のデフォルトの動作を定義すること

注:

デフォルトのサーバーが要求を取得受け付けないものとします。

つまり、クライアントは一般にNDEFメッセージを要求できません。クライアントは、利用可能であれば、それ自身のメッセージをプッシュすることになっています。

SNEPで通常のメッセージの流れは次のようになります。

  • 初期状態:LLCPリンクがダウンしています。各ピアにはSNEPサーバーが登録され、接続を待機しています。 LLCPで

  • は接続:メッセージを送信したい各ピアは、それ自身のSNEPクライアントを使用して、対向SNEPサーバーに接続しようとします。SNEPのPUTコマンドを待つ:SNEPオン

  • はSNEPサーバーがします接続します。これは、メッセージを受け入れるか、またはそれを拒否することができ、次のいずれか

  • SNEPでSNEPクライアントが接続されます:それはNDEFデータだと一緒にPUTコマンドを送信します。それぞれの側が送信した後、彼らはちょうどオープンSNEP接続を残して(彼らがしたい場合)

は、それがメッセージです。とにかくこの接続を閉じるための適切な方法はなく、それに関連するコストもありません。必要に応じて、各クライアントはいつでも追加のPUT要求を送信できます。これは、SNEP上の双方向データフローを確立するのに便利です。

Androidは、SNEPを多少ダンプして2番目のメッセージを送信できないため、この双方向データフローを許可しませんが、渡された追加メッセージをうれしく受け入れます。

+0

オクラホマ - 私は今それを得たと思う - ありがとう:-)そして、私はMAC層の役割が同じであると仮定します。すなわちイニシエータはそのモードにとどまりますか? – Patrick

+0

はい、LLCPリンクが確立されたら、イニシエータとターゲットはその役割を維持します。 LLCPは、これらの役割がSNEPなどの上位層のプロトコルに影響を与えないことを確認します。 –