問題タブ [network-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.
c - UDP 経由で ack を実装していますか?
UDP 経由で通信を実行するシステム (C で構築) が用意されています。最近、パケットの配信を保証する必要があることがわかりました。私の質問は、ACK パケットを使用して確実に配信するために、UDP ベースのシステムに最低限追加するものは何ですか? また、理想的には、パケット ヘッダーを操作する必要はありません。シーケンス番号や ack/nack フラグなど、パケットをアプリケーション レベルで制御できます。これが失われた原因であり、私たちがやろうとすることは、基本的に欠陥のある壊れたバージョンの TCP になるのではないかと思っています。基本的に、保証された配信を実現するためにできる最小限の改善はありますか (輻輳制御などの TCP の多くの機能は必要ありません)。ありがとう!
c++ - 良いC++/ C NNTPライブラリはありますか?
しばらく前に、いくつかの無愛想で限られた努力に出くわしましたが、私が見逃した本当に機能的なものがあるかどうか、できればC ++であるのではないかと思いましたが、Cは何もないよりはましです。
python - PythonTCPスタックの実装
スタンドアロンTCPスタックを実装するPythonライブラリはありますか?
ソケットを介してパケットのストリームを受信しているため、通常のpythonソケットライブラリを使用できません(これらはこのソケットを介してトンネリングされています)。特定のポート宛てのTCPSYNパケットを受信したら、接続を受け入れ(syn-ackを送信)、もう一方の端から送信されたデータを取得します(適切にackします)。
I was hoping there was some sort of TCP stack already written which I could utilize. Any ideas? I've used lwip in the past for a C project -- something along those lines in python would be perfect.
tcp - リアルタイム コマンドに TCP を使用する: Nagle アルゴリズムが原因で大幅な遅延が発生します。どうすればよいですか?
私はソケット サーバーとフラッシュ ゲーム クライアントを書いています。このゲームでは、移動や回転などのリアルタイム コマンドが必要です。これらのコマンドがサーバーからクライアントにできるだけ早く送信されることが重要です。そうしないと、他のクライアントが移動/向きを変えるクライアントとの同期が大幅に失われるためです。
これは、ネーグル算術によって引き起こされる問題の例です。
注: これらのコマンドの意味を理解したい場合は、以下のコマンド表を参照してください。
最初のものは私が動かした船です(前進+右、前進は受信されましたが、右ではありません)
コマンドを送信するクライアント:
コマンドを受信するクライアント:
「瞬間」は私が言おうとしていることを意味しない奇妙な用語ですが、ここでは前のコマンドからのミリ秒単位の時間のようです
クライアント A が送信 (瞬間: 0)、クライアント B が受信 (瞬間: 0)
右折 クライアント A が送信 (瞬間: 0)、クライアント B が受信 (瞬間: 155)
クライアントAによる送信の停止(瞬間:108)、クライアントBによる受信(瞬間:0)
クライアントAが送信を停止する(瞬間:0)、クライアントBが受信する(瞬間:0)
クライアント A によって送信された転送 (瞬間: 1283)、クライアント B によって受信された (瞬間: 1236)
右折 クライアント A が送信 (瞬間: 1)、クライアント B が受信 (瞬間: 273)
クライアント A が送信した動きの停止 (瞬間: 186)、クライアント B が受信した (瞬間: 0)
クライアント A による送信の回転を停止 (瞬間: 30)、クライアント B によって受信 (瞬間: 0)
これは、コマンドに対応するコマンド テーブルです。
クライアント -> サーバー
サーバー -> クライアント
つまり、"Nagle" のためにコマンドが完全に非同期になっていることがわかります。これにより、移動停止コマンドが移動開始コマンドと同時に他のクライアントによって受信され、そのプレイヤーはまったく移動しなくなります。
これが、これらのコマンドを TCP サーバーによって可能な限り高速にリアルタイムで送信する必要がある理由です。簡単な修正方法は、単に Nagle を無効にすることです。しかし、私はググってみました (tcp メッセージのパーシャルに関する彼の提案は私のシステムに実装されていますが、タイミングとは何の関係もないことに注意してください)。
この原因に対して Nagle アルゴリズムを無効にするべきではなく、代わりに他の解決策を探すべきであるというのは本当ですか? なぜだめですか)?
前もって感謝します。- トム
linux - LinuxinCでRawSocketsを使用したパケットスニッフィング
送信されたHTTPSパケットを検出し、リクエストからURLを保存するパケットスニファをLinuxで作成する必要があります。このためのコードをsecurity-freakで見つけて、実行しました。このコードは実行され、受信したパケットのみをスニッフィングしますが、送信されたパケットをスニファーで取得する必要があります。このコードで送信されたパケットを取得するにはどうすればよいですか?
libcap(禁止)のようなライブラリは使用できません。コードは:sniffer.c
network-protocols - システム相互接続参照モデル 7 層の例を開きますか?
ずっと前に、Open System Interconnection Reference Model 7 層ネットワーク プロトコル標準を研究しようとしましたが、7 層すべてを使用するアプリケーションの実際の例を見つけることができず、あきらめました。7 つのレイヤーすべてを使用および実装するアプリケーションの例はありますか? それとも、最上位の数層は、標準化委員会の熱狂的な想像力の産物ですか? 探究心は知りたがっています。
networking - IP アドレスなしで NS レコードを返す DNS 回答、これは正常ですか?
私のアプリケーションでは、通知メールを時々送信する必要があります。(SMTP 経由で) メールを送信するには、その特定のドメイン (電子メール アドレスのドメイン部分) の MX サーバーを取得する必要があります。これは Unix アプリケーションではなく、組み込みアプリケーションです。
私がすることは次のようになります::
1 - ドメインを含む DNS クエリ (MX タイプ) を現在の DNS に送信します。
2 - レスポンスに MX answer が含まれている場合、この関数から成功を返します
3 - 最初の NS レコードを読み取り、その IP アドレスを現在の DNS にコピーします。1 に進みます。
これは数回ループする可能性があり、これは予期されていることですが、応答には ns1.blahblah.com のような名前のサーバーの NS レコードが含まれているが、それらの IP アドレスは含まれていないことは予期していません。この場合、この NS の IP を見つけるために別のクエリを送信する必要があります。これは 1 つの電子メール アドレス (1 つのドメイン) についてのみ見られましたが、他のアドレスは問題なく機能していました。
これは正常な動作ですか? 私見、これは DNS レコードの設定ミスです。何かご意見は ?
前もって感謝します...
web-services - HTTPを介したプロトコルのトンネリング-アドバイス
HTTPを介してトンネリングする実際のプロトコルの最良の例は何ですか?XMPP / Jabber?ドキュメントへの実際のリンクを探していますか?またはそれらがどのようにトンネリングするかについての仕様。
私は、REST、XML-RPC、またはSOAPから始めて、プロトコルの高速TCPフレーバーを使用する必要があるかどうかを考えているプロジェクトに取り組んでいます。または、低レベルから開始して、POXのようなものを使用してHTTP経由でトンネリングします。
このプロトコルを使用するクライアントから始めるには、Ruby、Java、.NETで記述し、Python、Perl、Scala、Erlangなどに分岐する可能性があります...
要件:
1)クライアントは、HTTP通信チャネルまたは別のポートのストレートTCPを介してサーバーに接続できます。TCPチャタリングは、ジャバーのようにXMLをストリーミングします
。2)XMPP互換である必要はなく、独自のXMPPサーバーを作成する必要もありません。
3)サーバーは100%.NETで作成されます(ただし、Mono対応)
4)クライアントは何でも作成できます(ただし、上記を参照してください-最初にRuby、Java、および.NET)
http - HTTP: etag の最大長
HTTP プロトコルは ETag の最大長を指定していますか?
networking - 仮想ネットワーク接続
VPN接続用のopenvpnやTeamviewerなどの多くのプログラムが、Windows上で仮想ネットワーク接続を作成していることがわかります。テスト用に自分用に作成したいと思います。
プログラムで作成することは可能ですか?