タグ付けされた質問 「protocols」

5
なぜ多くのインターネットプロトコルがテキストベースですか?
私が発見したことから、インターネット上を移動する非常に大量のプロトコルは、バイナリではなく「テキストベース」です。問題のプロトコルには、HTTP、SMTP、FTP(これはすべてテキストベースですか?)、WHOIS、IRCが含まれますが、これらに限定されません。 実際、これらのプロトコルの一部は、バイナリデータを送信する場合に、いくつかのフープを介してジャンプします。 これには理由がありますか?テキストベースのプロトコルは、同じ量の情報を送信するためにより多くのデータを送信する必要があるため、明らかに多少のオーバーヘッドがあります(以下の例を参照)。これを上回るメリットは何ですか? することで、テキストベースの、私はプロトコルで使用される文字のほとんどが間にある意味0x20(スペース)と0x7E(~)のために使用される臨時の「speical文字」と非常に特殊な目的な改行、ヌル、ETX、およびEOTとして、。これは、接続を介して生のバイナリデータを送信することとは対照的です。 たとえば、整数123456をテキストとして送信するには、文字列123456(16進で表現31 32 33 34 35 36)を送信する必要がありますが、32ビットのバイナリ値は(16進で表現)として送信さ0x0001E240れます(また、ご覧のとおり、特殊なヌル文字を「含む」 。

4
一方向ネットワーク遅延の測定
これは、私が作成したネットワーク遅延の測定に関するパズルです。解決策は不可能だと思いますが、友人は同意しません。どちらにしても説得力のある説明を探しています。(これはパズルとして提起されていますが、NTPは言うまでもなく、オンラインゲームなどの通信プロトコルの設計と経験に適用できるため、このWebサイトに収まると思います。) 次の図に示すように、2つのロボットが2つの部屋にあり、一方向の待ち時間が異なるネットワークで接続されているとします。ロボットAがロボットBにメッセージを送信する場合、ロボットBが到着するのに3秒かかりますが、ロボットBがロボットAにメッセージを送信する場合、到着するのに1秒かかります。レイテンシは変化しません。 ロボットは同一であり、クロックの共有はありませんが、時間の経過を測定できます(たとえば、ストップウォッチがあります)。ロボットA(メッセージが3秒遅れる)とロボットB(メッセージが1秒遅れる)がどちらであるかはわかりません。 往復時間を発見するプロトコルは次のとおりです。 whenReceive(TICK).then(send TOCK) // Wait for other other robot to wake up send READY await READY send READY // Measure RTT t0 = startStopWatch() send TICK await TOCK t1 = stopStopWatch() rtt = t1 - t0 //ends up equalling 4 seconds 一方通行の遅延を決定するプロトコルはありますか?ロボットは、メッセージ送信の遅延が長いロボットを検出できますか?

1
事前共有対称キーに基づいて認証プロトコルを破る
(Alice)からB(Bob)へ、またはその逆を認証することを目的とした次のプロトコルを検討してください。AAABBB A → B :B → A :A → B :「私はアリスです」、RAE(RA、K)E(⟨ RA+ 1 、PA⟩ 、K)A→B:「私はアリスです」、RAB→A:E(RA、K)A→B:E(⟨RA+1、PA⟩、K) \begin{align*} A \to B: &\quad \text{“I'm Alice”}, R_A \\ B \to A: &\quad E(R_A, K) \\ A \to B: &\quad E(\langle R_A+1, P_A\rangle, K) \\ \end{align*} はランダムなナンスです。RRR は事前共有対称キーです。KKK はペイロードです。PPP は、 mが K で暗号化されていることを意味します。E(m 、 K)E(m、K)E(m, …

2
データに対してリモートでアルゴリズムを実行し、回答が改ざんされていないことを確認する
私はこの特定のコンピューティング/暗号/データベースの問題について何年も考えてきましたが、すでに解決策があるかどうか知りたいだけです。正直なところ、この問題がどの分野に属しているかはわかりません。 一言で言えば、人物Aはデータのリストを持ち、別の人物(B)はこのリストの各アイテムにスコアを与え、これらすべてのスコアを合計してリスト全体の総合スコアを提供するアルゴリズムを持っています。データが非常に安全に保たれるように(できれば人物Aを離れないように)、データリストでアルゴリズムを実行して、人物Bがアルゴリズムが適切に実行され、改ざんされていないことを確認するにはどうすればよいでしょうか。 ここに例があります:アンナとボブは大きな村に住んでいます。アンナは自分のコンピューターに、村で行ったすべての良いことと悪いことのリストを持っています。ボブは、そのようなリストの非常に単純なスコアリングアルゴリズムを作成しました。これは、リストの各項目で実行され、スコアを与え、これらすべての数値を加算して、アンナに最終スコアを与えます。このスコアにより、ボブはアンナが村のコミュニティにとってどれほど有益であり、ボブの意見に固有のものであるかを知ることができます。(これは実際に私が作りたいシステムなので、これは単なる例ではありません) しかし、アンナはボブに彼女のリストを与えることを望んでいません。ボブはそこに潜在的に恥ずかしい情報にアクセスできるからです(誰もが自分のクローゼットにスケルトンを持っています)。ただし、ボブは嘘をついてボブにスコアが非常に高いのでボブが彼女を助ける可能性が高いと伝えるため、ボブは自分でアルゴリズムを実行することをアンナに信頼していません。 私がすでに考えたいくつかの解決策がありますが、すべて問題があります: A.ランダムな人物を見つけてデータを取得し、アルゴリズムを実行してスコアを送り返しますが、このランダムな人物がアンナを知らず、アンナを助けたり、データのコピーを作成したりして、後で試すのは難しい場合があります。それをたどってアンナを脅迫します。 B.アンナにアルゴリズムを実行させますが、たとえば、イベントを1と評価する代わりに、チェックコードをスコアにエンコードして1.0000000000797と評価します。これにより、ボブが後でこれをチェックコードとして使用して、指定されているかどうかを確認できます。スコアは正しいです。ただし、このチェックはボナによって誤用され、アンナが何をしたかを示すこともできます。また、アンナがボブのアルゴリズムを実行するにはフルアクセスが必要であることを考えると、このようなシステムはリバースエンジニアリングが簡単で、アンナが正しいチェックコードで誤ったスコアを出すことができると想像できます。 C.村は、そのようなデータとアルゴリズムを取得して一緒に実行するための安全なサーバーを作成します。ただし、AnnaとBobはどちらも、これを実行するのに十分なほど信頼しておらず、データのコピーを作成したり、スコアを変更したりすることはありません。また、私はこれがP2Pシステムであることを望みます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.