あるポート転送を他のポート転送より優先する

あるポート転送を他のポート転送より優先する

私は優先ポート転送に関連する小規模プロジェクトの研究段階にあります。

背後にいくつかの無線を備えたターミナル サーバーにアクセスしようとしているクライアントのセットがあります。

問題は、2 つのクライアントがターミナル サーバー上の同じターゲット ポートにアクセスすると、間違ったクライアントにゴミデータが表示されることです。

たとえば、クライアント A がターゲット ポートから何かを要求したが、クライアント B がすでに何かを要求していた場合、そのポートのターミナル サーバーの背後にあるデバイスは、送信するためにキューに入れられていたデータで応答します。

ターゲット ポートは両方のクライアントで同じであることに注意してください。

サーバーの 1 つを優先したいので、2 つのクライアントとターミナル サーバーの間に Linux ベースのルーター アプリのようなものを実装します。クライアントはそれぞれ異なるポートにアクセスしますが、優先クライアントは通信を開始すると転送されます。もう 1 つのクライアントはブロック、停止、一時停止などされます。

早まって、2 つの異なるポートをリッスンし、「優先」ポートをターミナル サーバーに転送する小さな Python アプリケーションを開発したかもしれません。優先ポートで一定量の通信が行われなくなるまで、「非優先」ポートの転送をブロックします。

iptables、NATing、socat、QoS などについて読みましたが、私の問題に当てはまるものは見つからないようです。

私はネットワークの専門家ではなく、Linux を約 2 年間使用していますが、TCP/IP ルーティング/転送シナリオについてはあまり行ったことがありませんでした。そのため、ポート転送を他のポート転送よりも優先させるのに役立つ、カスタム Python アプリよりも効率的なものがあるかどうかを知りたいです。

フィードバックをいただければ幸いです。

私がやろうとしていることの参考として、小さな画像を載せておきます。

優先転送

答え1

あなたがやろうとしていることは、次の方法で達成できると思います:

  1. ソカット
  2. GNUスクリーン
  3. TMUX

私の知る限り、これら 2 つの端末の接続方法を再検討する必要があります。TMUX は、2 つのエンド クライアント端末にサービスを提供するアプリとして中間に配置できると思います。シリアル接続を多重化する必要があり、これを回避する方法はありません。

ここにあるいくつかの便利なSOCATコマンド

TMUXが最善の選択肢だと思います。tmux 入門ガイド

GNU screenをリストアップしたのは、役に立つこのシナリオでは。

私も serverfault であなたと似たような質問を見つけました。

https://serverfault.com/questions/797397/connect-two-ttys-via-tcp-ip

関連情報