問題タブ [tcp-ip]
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.
debugging - TCP/IP スタックのステップスルー
私は独自の組み込みオペレーティング システムの QA エンジニアとして働いていました。彼らは独自のATN スタックを構築し、デバッガーを使用してステップ実行することは、私がネットワーキングに関して経験した中で最も目を見張るものがありました。スタックの各レイヤーがパケットのそれぞれの部分を構築するのを見るのは驚くべきものでした。そして最終的に、ビルドされたパケットをネットワーク上で確認できるようになったことには、より大きな意味がありました。
教育者として、この経験を他の人と共有したいと思います。TCP/IP スタックを通過する簡単な方法を知っている人はいますか? 理想的には、*BSD または Linux カーネルをデバッグするよりも簡単なものが欲しいのですが、これが唯一のオプションである場合は、このプロセスに関するいくつかのヒントとトリックが役立つでしょう。Visual Studio または Eclipse を使用してユーザー モードで実行できる C/C++ で記述された参照スタックが理想的です。
mobile - Opera ミニサーバー
自分のモバイルアプリに Opera Mini サーバーを使用することはできますか (Opera Mini がサーバーを使用する方法)? そのためには、私が理解できる限り、サーバー プロトコルの知識が必要です。たぶん、すでに開発されたいくつかのライブラリがあります...
tcp-ip - ソケットを無期限に開いたままにするための 3g 接続のオーバーヘッドはどれくらいですか?
セルラー ネットワークで tcp/ip ソケットを開いたままにしておくために、電話はデータを送信し続ける必要がありますか?
イーサネット上の tcp/ip では、ソケットを開いてキープアライブを時々送信することができます。
tcp/ip over 3g は違いますか?
tcp-ip - ipv4ヘッダーチェックサム
私はTCP/IPスイートの初心者です。
HEADER CHECKSUMという名前のipヘッダーの1つのフィールドは、ヘッダーを16ビット整数のシーケンスとして扱い、1の補数演算を使用してそれらを加算し、結果の1の補数を取得することによって形成されます。
ただし、ipヘッダーにはTTLフィールドも含まれているため、送信時に変更される可能性があります。送信者と受信者の間に矛盾が生じないのはなぜですか?
tcp - TCP/IP ベースのシステムのスケーリングと高可用性の確保
c++ ベースのシステムと通信する TCP/IP ベースのコンポーネントがあります。実際、そのシステムから生のバイトを読み取り、それらの生のバイトをオブジェクトにマーシャリングしてDBに保存しています。このマルチスレッド tcp/ip ベースのコンポーネントは Java であり、デュアル コアまたはクアッド コア プロセッサに展開できます (私の質問にとって重要かどうかはわかりませんが、詳細を提供します)。今、私はいくつかの質問があります:
この tcp/ip ベースのコンポーネントをスケーリングするにはどうすればよいですか? このコンポーネントはサーバーにデプロイされ、ポートをリッスンしています。将来、この時点で想定されている C++ システムからのデータがさらにある場合は、この Java コンポーネントをスケーリングできるはずです。
セキュリティについてはどうですか。おそらくできることの 1 つは、セキュア ソケットでこの通信を使用するか、暗号化されたデータ (ここで使用できる特定の暗号化??) を取得することです。セキュリティを確保する他の方法はありますか?
また、満たすべき高可用性の要件もあります。どうすればそれを処理できますか?ここでどのように冗長性を持たせることができますか?
はい、私たちは製品のシステム アーキテクチャに取り組んでいるので、経験豊富なアーキテクトまたはデザイナーに助けてもらえないかと思っていました。
linux - tcp_tw_recycle による接続のドロップ
問題の要約
Linuxボックスへの着信接続が多く(毎秒800から2400)設定されており、クライアントとサーバーの間にNATデバイスがあります。そのため、システムには非常に多くのTIME_WAITソケットが残っています。それを克服するためにtcp_tw_recycle を 1 に設定していましたが、これにより接続のドロップが発生しました.ネットをブラウズした後、tcp_tw_recycle と NAT デバイスでフレームのドロップが発生する理由についての参照を見つけました.
試した解像度
次に、tcp_tw_reuse を 1 に設定してみましたが、同じセットアップと構成で問題なく動作しました。
しかし、ドキュメンテーションによると、tcp_tw_recycle と tcp_tw_reuse は、ファイアウォール、NAT デバイス、ロード バランサーなどの TCP 状態認識ノードを通過する接続でフレームがドロップされる可能性がある場合は使用しないでください。接続が多いほど、この問題が発生する可能性が高くなります。
クエリ
1) このタイプのシナリオで tcp_tw_reuse を使用できますか? 2) そうでない場合、Linux コードのどの部分がそのようなシナリオでの tcp_tw_reuse の使用を妨げていますか? 3) 一般に、tcp_tw_recycle と tcp_tw_reuse の違いは何ですか?
networking - ネットワーク接続の終了
以下の解読を手伝ってください。ネットワークに問題があり、どこにあるのかわかりません。以下は、OPNET ソフトウェアを実行してキャプチャから取得したデコードの概要です。
クライアントが FIN で終了し、接続 1 が途中で RST を発行して終了する場合、接続 2 は成功していると思います。
コネクション 1 フレーム ソース デスティネーション デコードの概要
480 サーバー クライアント D=3590 S=443 FIN ACK=3832271994 SEQ=1338775336 LEN=0 WIN=11088 481 クライアント サーバー D=443 S=3590 ACK=1338775337 SEQ=3832271994 LEN=0 WIN=64512 502 クライアント サーバー D=443 S =3590 RST ACK=1338775337 SEQ=3832271994 LEN=0 WIN=0
接続 2
855 サーバー クライアント D=3600 S=443 FIN ACK=3778329063 SEQ=3650187663 LEN=0 WIN=26328
856 クライアント サーバー D=443 S=3600 ACK=3650187664 SEQ=3778329063 LEN=0 WIN=63297
857 クライアント サーバー D=443 S=3600 FIN ACK=3650187664 SEQ=3778329063 LEN=0 WIN=63297
859 サーバー クライアント D=3600 S=443 ACK=3778329064 SEQ=3650187664 LEN=0 WIN=26328
要約すると、接続エンディングは次のとおりです。
1 - サーバー: FIN、クライアント: RST
2 - サーバー: FIN、クライアント: FIN
java - インターネット経由で Android フォンと PC との双方向通信
PC から Andriod Phone でリモート コントロール カーを制御しようとしています (3g インターネット経由)。
ioio を使用する予定です (これは、USB 経由で Android フォンに接続できるボードです)。
私が今取り組んでいる部分は、PC から Android アプリへの通信です。私はこれまで Andriod アプリを作成したことがなく、アマチュアの C# 開発者です。
JavaでUDPサーバー/クライアントを簡単に作成できるので、現時点ではUDP経由で通信することを計画しています。(http://systembash.com/content/a-simple-java-udp-server-and-udp-client/)
ただし、これにはパブリック IP アドレスが必要になると思いますか? クライアントにもサーバーにもありません。
簡単にするために、2 つの Java アプリケーション間でインターネットを介して通信するにはどうすればよいでしょうか。カメラと簡単なコマンドからビデオをストリーミングする必要がある場合。
c# - C#で特定のポートを使用しているユーザーを確認するには?
localhost のポート 80 などを使用しているプロセス/実行可能ファイルを特定するにはどうすればよいですか? たとえば、Apacheサーバーなどであるかどうかを知りたいです。
ipProperties.GetActiveTcpListeners() から情報を取得できますか? ローカル エンドポイント、リモート エンドポイント、および状態のみを確認しました。