問題タブ [protocols]
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.
hex - 16進ダンプを人間が読める形式に変換するための汎用ユーティリティまたはライブラリはありますか?
私はさまざまなデバイスとのシリアル通信を頻繁に使用するため、ログ ファイルの 16 進ダンプを分析する必要がよくあります。現在、ダンプを見て、プロトコル仕様を見て、結果を書き留めることで、これを手動で行っています。ただし、これは面倒でエラーが発生しやすく、特にメッセージに数百バイトが含まれ、ビッグエンディアンとリトルエンディアンのデータ、ASCII、Unicode、圧縮、CRC、. . . .
より一般的なケースを支援するために、いくつかの Python スクリプトを作成しました。しかし、処理するプロトコルはたくさんあります。また、分析するダンプがたくさんあることがわかっていない限り、カスタム スクリプトの作成に時間を費やすのは意味がありません。
私が望むのは、このアクティビティを自動化できるある種のユーティリティです。たとえば、次のようなテキスト 16 進ダンプがあるとします。
そして、次のようなメッセージ形式のある種の説明:
次のような出力が得られます。
多くの場合、ハードウェア ベースのプロトコル アナライザーには、このようなことを行うための優れた機能が備わっていますが、テキスト ログ ファイルを操作する必要があります。
そのようなユーティリティまたはライブラリは存在しますか?
報奨金を設定してから、いくつかの良い答えが出てきました。報奨金が効くと思います!
Wireshark と HexEdit はどちらも有望に見えます。私はそれらを見て、おそらく私のニーズに合った方に報奨金を授与します. しかし、私はまだ他のアイデアに対してオープンです。
ajax - POST リクエストよりも GET リクエストを使用する利点は何ですか?
過去にいくつかの ajax アプリケーションで GET リクエストを使用していましたが、現在は代わりに POST リクエストを使用し始めています。POST リクエストは、わずかに安全で、間違いなくより URL にやさしく/きれいに見えます。したがって、GETリクエストを使用する必要がある理由があるかどうか疑問に思っています。
java - オブジェクト(出力|入力)ストリーム バイナリ プロトコル
で使用されるバイナリ プロトコルについて説明しているリソースがあるかどうか疑問に思っていましたObjectOutputStream
。もちろん、オブジェクト自体がインターフェイスを実装することでそのデータを指定できることは理解していExternalizable
ます。そのため、オブジェクト グラフの構造、つまりメタデータをより重視していると思います。
レガシー Java プログラムと対話する必要がある C プログラムを作成しています。ObjectOutputStream
これらの要件のいずれも変更する方法がないため、プロトコルのリバース エンジニアリングを行っています。(転送に HTTP を使用し、HTTP 応答として Object*Stream を返すサーバーがあります。)
しかし、私はそこにいる他の誰かが以前にこの仕事をしなければならなかったように感じます. 作業をスピードアップするためのリソースを教えてください。
ftp - ファイル転送プロトコルのオプション?
自明ではない (10G > x >10MB) 量のデータをあるマシンから別のマシンに、場合によっては複数のセッションで転送する良い方法を探しています。
ざっと見てきました
- *ftp (sftp、tftp、ftp)
- http
- torrents (一般的にシード ネットワークを持たないため、アウト)
- rsync (これを必要なものに本当に適応できるかどうかはわかりません)
法案にもう少し適合する可能性のある他のプロトコルはありますか? 上記のほとんどは、それ自体では耐障害性が高くありませんが、クライアント/サーバー アプリに依存してスラックを拾います。この段階では、適切に機能する特定のクライアント/サーバーの実装よりも、プロトコル自体に関心があります。
(もちろん、udp を介して独自に記述できることはわかっていますが、それ以外のほとんどのものを使用したいと思います!!)
algorithm - 同じ出力の疑似乱数発生器
車のリモート エントリー システムに関する記事をhttp://auto.howstuffworks.com/remote-entry2.htmで見つけました。
送信機と受信機の両方が同じ疑似乱数発生器を使用します。送信機が 40 ビット コードを送信すると、疑似乱数ジェネレーターを使用して新しいコードが選択され、メモリに保存されます。一方、受信側が有効なコードを受信すると、同じ疑似乱数ジェネレーターを使用して新しいコードを選択します。このようにして、送信機と受信機は同期されます。受信機は、期待するコードを受信した場合にのみドアを開きます。
2 つの PRNG 関数で同じ乱数を同時に生成することは可能ですか?
design-patterns - プロトコルを実装する最良の方法は何ですか?
HTTP プロトコルを実装する必要があるアプリケーションを作成しているとします。プロトコルは非常に複雑で、トランザクションのどの段階にあるかによって、複数のコマンドが許可される場合があります。
例として、SMTP を見てください。「rcpt」と「mail」を受信する前に「data」コマンドが送信された場合、SMTP サーバーはエラーをスローする必要があります。
私の質問は: コードでこのようなプロトコルを処理する最良の方法は何ですか? これに関連する設計パターンはありますか?
編集: この質問は、プロトコルの実装の背後にある理論に関連しています。実際には、ライブラリを使用することが最善の方法であることは承知しています。
algorithm - 帽子から名前を描くことをシミュレートし、秘密を確保するための最良のローテクプロトコルは何ですか?
毎年感謝祭で、私の家族は、クリスマスプレゼント交換の「秘密のサンタ」になる人を決めるために、帽子から名前を引き出しました。私たちの家族文化にとって重要なのは、家族の誰もがそれを面白く保つためにお互いが誰を得たかを知らないということです。選択の唯一のルールは、あなたがあなたの配偶者を選ぶことができないということです。それが起こった場合、あなたは再び絵を描き、あなたの配偶者の名前を帽子に戻します。
今年はロジスティクスと旅行の計画があるため、クリスマスを早めに祝います(感謝祭からわずか2週間後)。
プレゼントを探す時間を十分に取るために、ここで名前を選択したいと思います。私たちの家族はアメリカ全土にいます。インターネットにアクセスできるメンバーもいれば、アクセスできないメンバーもいます(私の親愛なるおばあちゃんなど)。
私がやりたいのは、帽子から名前を引き出すことをシミュレートし、過度に複雑になることなくある程度の機密性を確保する公正なプロトコルを用意することです。以前のdrawnames.comのような一部のWebサイトや、通常は電子メールアドレスを入力する必要があるWebサイトもあります。家族のメールアドレスが悪用されないようにしたいので、他のサイトに信頼したくありません。
私が思いつくことができる最高のプロトコルは次のとおりです。
- ランダムに人を選び、人が配偶者を取得しないようにするプログラムを作成します。
- プログラムはリストの半分を表示しますが、私の名前を取得した人は表示されませんが、私の名前と妻の名前を取得した人は表示されます。
- 次に、私は部屋を出て、プログラムは私の妻(私の名前を持っている人を含む)に人々のリストの残りの半分を表示します。
- その後、妻と私はそれぞれの人に連絡を取り、彼らが誰であるかを伝えます。
より良いプロトコルがありませんか?より良いのは、より多くの秘密を可能にする何かを意味します。繰り返しになりますが、ロジスティクスと物事を単純にするために、私はウェブサイトを構築する必要はありません。
networking - アプリケーションプロトコルの設計
ネットワークプロトコルを使用して、サードパーティによって拡張される既存のスタンドアロンアプリケーションがあります。機能はすでに実装されています。必要なのは、それらを外部に公開することだけです。
トランスポートプロトコルがすでに選択されている(UDP)と仮定すると、アプリケーションプロトコルの設計に役立つリソースはありますか?
ソフトウェア設計については多くの情報があるようですが、プロトコル設計についてはありません。私はすでにアプリケーションプロトコルの設計を見てきました。
python - ねじれたプロトコルで定期的に関数を実行する
TCP ポートに接続されているすべてのクライアントで定期的にデータを送信する方法を探しています。私はツイスト python を見ていますが、reactor.callLater を認識しています。しかし、それを使用して、接続されているすべてのクライアントに定期的にデータを送信するにはどうすればよいですか? データ送信ロジックは Protocol クラスにあり、必要に応じてリアクターによってインスタンス化されます。リアクターからすべてのプロトコルインスタンスに結び付ける方法がわかりません...
sql-server - ODBC、OLEDB、および ADO.NET の基になるプロトコルに違いはありますか
一般的なシステム (ODBC、OLEDB、または ADO.NET) のいずれかを使用して SQL Server データベースと通信する場合、基になる基本プロトコルは同じですか? これらのシステム間のすべての違いは、基本的にクライアント側の問題ですか?
これはすべて、TDS (Tabular Data Stream) 転送の異なるフレーバーですか?
[MS-TDS]: 表形式のデータ ストリーム プロトコル仕様
または、データベースサーバーと通信する実際の方法が異なり、これらのプロトコルには根本的な違いがありますか?