• ベストアンサー

x window systemについて

xの通信内容について、ご教授頂きたく。 サーバーAにXサーバーを用意して、サーバーBにXクライアントを用意します。 サーバーBのGUIをサーバーAで表示させる場合、BからAにたいしてはTCP6000ポートでの接続が発生しますが、AからBへはその応答パケットしか飛ばない、という認識は合っていますでしょうか? 疑問に思っているのはAでのキーボード操作の時、どんなパケットのやり取りになるのか、です。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

>つまりTCPのSYNを送るのは、 TCPセッションは張りっぱなし。 つまり、SYNを送るのは、クライアントが最初にサーバーにコネクトするときだけ。 応答パケットとはACKの立っているパケットと言うことであれば、 >AからBへはその応答パケットしか飛ばない、という認識 で合ってると思いますよ。 >疑問に思っているのはAでのキーボード操作の時、どんなパケットのやり取りになるのか、です。 SYNやACKの意味を理解した上で、これを本当に疑問に思うのならそもそものTCPの役割を理解できてない気がしますけど。

tamaoki
質問者

お礼

ありがとうございます。 張りっぱなしということであれば理解できます。 すっきりしました。 ある人から「Aでのキーボード操作では新規TCPセッションが 発生するのでは?」と質問され、窮してしまって質問しました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

「応答パケット」という言葉が曖昧ですが、それぞれ必要なデータを送り合っているだけ。 Xサーバー側でキーを押したり、マウスをクリックしたりすると、そのイベントを示すデータがフォーカスのあるクライアントに送られます。

tamaoki
質問者

補足

通信を送りあっているのは理解しています。 疑問に思っているのは、XサーバーでのGUI操作のとき TCPパケットを最初に送るのは、つまりTCPのSYNを送るのは、 Xクライアントかどうか、です。 Xサーバー側からTCP6000や或いは別のポートを 使ってSYNを投げることはあるのか、です。

関連するQ&A

  • X-Windowにおいて

    XサーバとXクライアントの通信にTCP/IPは必要ないんでしょうか??

  • X window systemの仕組みについて

    LinuxやFreeBSDのX Window systemについて教えてください。 "X.Org Foundation"前提で構いません。 1)Xはネットワーク通信を介して使われることを前提として設計されている。 2)クライアントサーバ型システムをとっている 3)つまり、たとえばKNOPPIXやPC-BSDなどのLIVE CDを起動して表示されるGUIシステムは、  自分で立てたXサーバ(127.0.0.1)に対して自分がクライアントとして接続しに行っているに過ぎない。 4)よってその気になればMS-Windowsや漢字Talk上でも、クライアントさえあればKNOPPIXのXサーバに  接続してデスクトップを引っ張ってこれる この理解は正しいですか。 これは目的から外れる質問ですが、可能でしたら教えて下さい 4)Windowsシリーズもこのシステムを採用しているのか、あるいは直接入出力デバイスの描画なり入力なり を管理しているのか 5)後者であればWindowsXP sp2のリモートデスクトップシステムの仕組みはX.Orgとはまったく異なる仕組みなのか

  • X Window SystemにおけるXサーバのインターセプト

    X Window Systemについて質問させてください。 Xサーバから送られてくるキーボードやマウスイベント、 またはクライアントから送られてくるウィンドウイベント等をインターセプトすることはできますか? インターセプトと言うと語弊があるかもしれませんが、Xサーバから送られてくる情報を複製してクライアントとログファイルに出力したいのです。 イメージとしては以下の通りです。 [Xサーバ]  ↑  ↓(マウスイベント等) [インターセプタ] → [ログファイル]  ↑ (ウィンドウイベント) [クライアント] いま直面している問題は以下の通りです。 サーバ/クライアント間にインターセプタを挟むということは、 インターセプタは本来サーバが用いるべきソケットを使うことになりますよね? だとしたらXサーバが起動する前に(ソケットが作られてしまう前に)インターセプタを起動させておかないといけないと思うのですが、この方法は合っていますでしょうか。 直接解答につながる意見でなくても構いませんので、思いつくことがあれば是非ご教示ください。よろしくおねがいします。 --- 環境 OS :Fedora 11 X :X.Org Foundation

  • X Window SystemでWindowsOSにXクライアントをインストールできる?

    X Window Systemの質問です。 WindowsOSにXクライアントをインストールして、そのPCからネットワーク上のLINUXOSにインストールされたXサーバを操作するということはできるのでしょうか? 素人の質問ですが宜しくお願いします。

  • WEBサーバを2台立てる際のポートフォワーディグ

    LAN内に複数台(2台)のWEBサーバを立てて外部からアクセスさせる場合の ルータのポートフォワーディング(アドレス変換)について。 ※グローバルIPアドレスはルータのWAN側に1個だけ付与されているとします。 以下の図のように ルータの80ポートに着信があったらサーバAの80ポートにポートフォワーディング。 ルータの8080ポートに着信があったらサーバBの80ポートにポートフォワーディング。 という具合に、ルータ側で着信ポートによってアドレス変換(ポート変換)させるしかないのでしょうか? ※つまりクライアント側に8080を指定してもらう。 これをTCP80でアクセスしたときに、こちらはサーバA こちらはサーバBへと 分けるためには、グローバルIPアドレスがもう1個いるという問題になるのでしょうか?    クライアントA→TCP(80)  → 【ルータ】→【サーバA:80ポート】+【サーバB:80ポート】 クライアントB→TCP(8080)        説明が下手ですいません。 よろしくお願いします。

  • TCPコネクションについて

    はじめまして 宜しくお願いいたします。 以下ご質問させてください。 TCPコネクションについて クライアント⇔サーバ間通信において、 ポート21からポート80(HTTP)に対してTCPコネクションをオープン することはできるのでしょうか? (クライアントポート21からサーバポート80に対してアクセスする ことってできるのでしょうか?) 自分の認識では・・・ TCPクライアントはダイナミック(OSが割り当てたランダムなポート。しばしば1024から4000の間)にポートを選択すると認識しているので が。 最初にFTP通信をおこなっており、その継続セッションでHTTP通信をおこなうといった場合にそういった使い方をするのでしょうか? 以上 宜しくおねがいいたします。

  • FTPのパケットが飛びません

    あるPC(Aとします)から同一セグメント上のサーバ(Bとします)へFTPがつながらなくて困っています。 この現象が起きたのは昨日からで、それ以前はきちんとつながりました。 FTPクライアントは NextFTP ですが、FFFTP にしてもだめ、Windows付属のコマンドラインのftp.exeでもダメです。 おかしいなと思ってパケットモニタ(http://homepage2.nifty.com/spw/software/vigil/)をマシンAに入れてパケットを覗こうとしましたが、A→B への通信を見ようとすると Port 80 ・・・正常 Port 25 ・・・正常 Port 21 ・・・パケット飛ばず というわけで Port 21 だけパケットが出ないという状況。 FTPクライアントを変えても同じです。 また、通信先をB以外のサーバーに変えてもやはり Port21は通りませんでした。 なにやらOSレベルで外部の PORT 21 への接続をブロックしているような挙動です。 マカフィのfirewallが入ってますが、このような設定をした覚えもなく、さっぱりわかりません。 原因を調べるとしたら他にどんな方法がありますか?

  • サーバプロセスとクライアントプロセスの通信

    サーバプロセスとクライアントプロセスの通信がどのように行われているのか確認させてください。 現在、以下の認識でいます。 (1)TCPコネクション  サーバ側ポート番号【23】と、それぞれのクライアント側ポート番号【****】との間に確立する。   (2)通信処理  クライアント側のプロセスAは、サーバ側のプロセスA(子)  クライアント側のプロセスBは、サーバ側のプロセスB(子)  クライアント側のプロセスCは、サーバ側のプロセスC(子)  との間で通信を行う。 ※添付の図も参照ください。 認識に相違ないでしょうか。 サーバプロセスとクライアントプロセスの通信を行う際、プロセス間(ポート間?)の通信には、IPアドレスとポート番号を組み合わせたソケットを用いるため、サーバ側ではソケット【192.168.0.1:23】を1個作成し、クライアント側ではソケット【192.168.0.2:****】をプロセス分作成すると考えています。 このとき、クライアントプロセスAはサーバプロセスA(子)と通信を行いますが、サーバ側で作成されているソケットは1つであるため、どの子プロセスに対してデータをせばいいのか判別できないのではないかと考えています。 ※クライアントプロセス(A、B、C)はソケット(サーバ側)【192.168.0.1:23】に対して送信されるため。 上記について、何らかの仕組みがあるのでしょうか。 よろしくお願いします。

  • 複数LANポート有効時の正しいネット経路とは?

    ここに到るまでにいくつかの質問をしたのですが、正直あるべき姿が分からなくなってしまったので、改めてネットワークの面から質問させていただきます。 <前提> サーバにはネットワークインタフェースを二つ設けています。 (1)IP:192.168.10.10。  ネットワーク:192.168.10.0/24。  ゲートウェイ:192.168.10.1  ※これをデフォルトゲートウェイとして設定。 (2)IP:192.168.1.10  ネットワーク:192.168.1.0/24。  ゲートウェイ:192.168.1.1 これらは同じルータに接続されておりますが、セグメントとしては別々です。 また、このルータからはサーバに接続するクライアントの属するネットワークがあります。 (3)ネットワーク:192.168.3.0/24  ゲートウェイ:192.168.3.1   --サーバ-- (1)|        |(2)   --ルータ--       |       |(3)   クライアント複数台 <質問> クライアントからサーバへDB接続を行いますが、2通りの接続があります。どのクライアントがどちらの接続をするかは分かりません。 (a)固定IP192.168.10.10に対してコネクションを確立する。(仮にクライアントAは192.168.3.50とします。) (b)固定IP192.168.1.10に対してコネクションを確立する。(仮にクライアントBは192.168.3.60とします。) それぞれの場合に、どういう経路で送受信されるように設定するのが正しいのでしょうか? ※実現するための設定についてではなく、本来ならどのように動くべきかという観念の質問です。(もちろん実現するための設定を教えて頂ければ尚良いのですが。) 私としては3論で悩んでいるので、参考までに以下に記します。 <持論1:サーバからクライアントへの送信はデフォルトゲートウェイのあるIFから送信されるべき>  (a)の場合   1)クライアントAからサーバへのコネクション確立要求は、ネット(3)-ネット(1)を経由して通信される。   2)サーバからクライアントAへのコネクション確立応答は、ネット(1)-ネット(3)を経由して通信される。   3)クライアントAからサーバへのコネクション確立応答は、ネット(3)-ネット(1)を経由して通信される。  (b)の場合   1)クライアントBからサーバへのコネクション確立要求は、ネット(3)-ネット(2)を経由して通信される。   2)サーバからクライアントBへのコネクション確立応答は、ネット(1)-ネット(3)を経由して通信される。    ※IPフォワーディング?   3)クライアントBからサーバへのコネクション確立応答は、ネット(3)-ネット(2)を経由して通信される。 <持論2:サーバからの送信はクライアントからの経路と同じ経路で返されるべき>  (a)の場合   1)クライアントAからサーバへのコネクション確立要求は、ネット(3)-ネット(1)を経由して通信される。   2)サーバからクライアントAへのコネクション確立応答は、ネット(1)-ネット(3)を経由して通信される。   3)クライアントAからサーバへのコネクション確立応答は、ネット(3)-ネット(1)を経由して通信される。  (b)の場合   1)クライアントBからサーバへのコネクション確立要求は、ネット(3)-ネット(2)を経由して通信される。   2)サーバからクライアントBへのコネクション確立応答は、ネット(2)-ネット(3)を経由して通信される。   3)クライアントBからサーバへのコネクション確立応答は、ネット(3)-ネット(2)を経由して通信される。 <持論3:そもそもこの環境では2つのIFを使い分ける事は無理である。>  (a)の場合   1)クライアントAからサーバへのコネクション確立要求は、ネット(3)-ネット(1)を経由して通信される。   2)サーバからクライアントAへのコネクション確立応答は、ネット(1)-ネット(3)を経由して通信される。   3)クライアントAからサーバへのコネクション確立応答は、ネット(3)-ネット(1)を経由して通信される。  (b)の場合   1)クライアントBからサーバへのコネクション確立要求は、ネット(3)-ネット(2)を経由して通信される。   2)サーバからクライアントBへのコネクション確立応答は、ネット(2)-ネット(3)を経由して通信しようとしても通信できない。    ※route add でネット(2)のゲートウェイを記載しようにも、そうすると(a)のパターンが崩れてしまう。 文字数が多くて煩わしいかと思いますが、回答宜しくお願いいたします。

  • UDP/IPでのソケット作成について(winsock)

    UDP/IPでのソケット作成について(winsock) 開発環境VC++.NET、O/S WIN2000にてソケットプログラミング(winsock2.0)をしています。 コンソールプログラミングではありませんが、WindProcは持っていません。 UDPサーバーを作り、複数クライアントの対応をしたいと考えています。 クライアントAからの通信やりとり中に クライアントBからの通信がきたら、そちらとも通信やりとりを(自動で)行いたい。 ここで問題なのが、クライアントAの要求ポートが15000で、 クライアントBの要求ポートも15000なのです。 同じ既に開いているポートでソケット作成しようとしても、socket()関数はエラーを返してくるのですが、 やり方を工夫すれば、同一ポートでの複数クライアント対応は可能なのでしょうか。不可能なのでしょうか。 可能であれば、やり方、ヒント等教えてください。よろしくお願いします。 追記 (1)TCP/IPでは、同一ポートでソケット作成が可能でした。ネットで探したサンプルプログラムが  そのような動きをしていたのですが、UDPに書換えることはできませんでした。  http://eternalwindows.jp/network/winsock/winsock04s.html (2)UNIXの場合fork()処理後に socket()作成 → bind()で同一ポートでの複数クライアント対応が  上手くいくらしいのですが、Windowsではマルチスレッド等をうまく活用すれば、  fork()と同様の処理が可能になり、目的が達成できるでしょうか。