• ベストアンサー

ルーターを介したTCPとUDP通信の違いについて

端末1---(LAN側)ルーター(WAN側)---端末2 というふうに接続されていた場合を想定します。 上図で端末1がTCPセッションを端末2と張ろうとした場合(httpなど)のルーターの動きについて確認させてください。 <ルーターの動き> (1)端末1からのTCPセッション開始のパケットを受信す るとMACアドレスとIPアドレスをルーターのものにす り替え、ポート番号も変えて端末2に渡す。この時の アドレスとポート番号の対応表を記憶しておく。 (2)端末2から応答が返ってきた場合(1)で記憶した対応表 を基にパケットのMAC,IP,ポートをすり替えて端末1 に渡す。 (3)TCPのセッションが終了したら(1)で記憶した対応表は 破棄する。 とりあえずこの解釈は正しいでしょうか? なお、UDP通信の場合は(1)の対応表を全く作らないということで良いでしょうか? ご教授よろしくお願いします。

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

  • ベストアンサー
  • qaaq
  • ベストアンサー率36% (146/404)
回答No.3

<普通のルーターの動き> ・TCP,UDPに限らず、クライアント毎の対応表は持たない。(中継するパケットのセッション管理はしない。) ・同一サブネット内のIP/MACアドレステーブルをもつ(arp table) ・ルーティングテーブル(経路表)をもち、経路表に従った次のルータ(next hop router)にパケットを転送する。 ・MACアドレスの書換えは、インターフェイスをまたがる場合行われ、転送先までの使用メディアによって変わる。(ATMならVPI/VCI,フレームリレーならDLCI等) <IPマスカレードやNAPTルーターの動き> ・上記に加えて、 ・UDPの場合、質問の(1)~(3)をするが、(3)でUDPは終了ステータス(FIN)を持たないため、タイムアウトにより対応表が削除される。 ・TCPの場合、質問の(1)~(3)をする。さらに、FTP等の一部のプロトコルでは相手側からポート指定されるため、ヘッダだけでなくデータの中も検査している。 こんな感じでしょうか。 ・

_comcom
質問者

お礼

詳しい回答ありがとうございます。 UDPでもほぼ同じことをしているのですね。

その他の回答 (2)

noname#17587
noname#17587
回答No.2

説明しているのはルータの動きではなく ルータ上でIPマスカレードやNAPTを動かしているときの動作です。 で、対応表の作り方なのですが機器依存だった気がするのですが。うろ覚えですみません

_comcom
質問者

お礼

どうもありがとうございます。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 LAN→WANでNAPTを行っている場合の動作やね。その解釈で良いと思うよ。  UDPの場合は、行う機器と行わない機器がある。例えば、DNSの名前解決は53番のUDPを使っているが、端末1でプロバイダ(などWAN側)のDNSサーバを指定した時に、名前解決が出来ればOKだ。  他にも、これらとは別機能になるがUPnPという機能もあって、それが有効になっている場面をごっちゃにして考えるとこんがらかるので気をつけて。

_comcom
質問者

お礼

どうもありがとうございます。 ルーターというよりはNAPTのほうが適当でした。