• ベストアンサー

セッションとコネクション

TCP・IPについて勉強をしているのですが、コネクションでやっていることについてはわかるのですが、セッションとは何が異なるのかが分かりません。 コネクション、セッションの双方に切断・確立する等の記述があり、混乱してしまっています。 現在の私のイメージとしては ・コネクションは仮想的なデータ通信路。 ・セッションはやり取りの管理をおこなう。 となっています。 例えば、Bフレッツハイパーファミリーはセッションが2つしか貼れないというのは、どのようなことなのでしょうか。 どなたかよろしくお願いします。

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

  • ベストアンサー
  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

両方とも似たような意味合いを含んでいるのですが、「コネクション」が接続しようとすることを主に指すのに対し、「セッション」はコネクションが確立された後の、仮想経路そのものをさすことが多いです。 「Bフレッツハイパーファミリーはセッションが2つしか貼れない」というのは、PPPoEの仮想経路を2つまでしか構築できない、という意味です。 OSIの7階層モデルでは、「セッション層」が仮想経路を維持する役割を担う様に書いてありますが、「セッション」の意味合いが「やり取りの管理をおこなうこと」ではありませんのでご注意ください。

関連するQ&A

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

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

  • WindowsのTCPコネクション管理

    Windows server 2003及びwindowsXPにおいて、以下のような動作を確認しております。(他のバージョンは未確認) [動作] あるIFからTCPコネクションを張った状態で、そのIFの無効化(非活性化)を行うと、TCPコネクションが切断される。 これはWindowsの仕様なのでしょうか? ちなみにUNIX系OSで同様のことを行っても、TCPコネクションは切断されません。 また、通信の対向マシンではTCPのFIN、RSTなどは受信していないことから、WindowsOS内部で何かしらの形でコネクションを強制切断していると思われます。 以上、ご回答をお願いいたします。

  • netstatで確認したコネクションを切断できる?

    Windowsでnetstatコマンドを打つと現在TCPのコネクションが確立しているものが表示されると思います。 このとき表示されているもので、使われている任意のローカルのポートのコネクションを、切断することはできるでしょうか? 知識不足で、とんちんかんなことを質問しているかもしれません。よろしくお願いします。

  • セッション層のことで

    最近ネットワークについて学び始めた者です。ある本に、OSI参照モデルのセッション層の説明として――実際にデータのやり取りを行う前段階として、通信を行う双方の間で論理的な接続状態を作り出す役割を果たす――というように記述されていました。この、「論理的な接続状態」を作り出す為には、やはりノード間でなんらかのデータのやり取りが行われるのでしょうか? もしそうであるなら、その時のデータのやり取りがどういった形で行われるのか知りたいのですが?

  • HTTPアクセスの処理

    HTTPで「http://www.yahoo.co.jp」にアクセスしようとした場合、どのような内部処理が行われるのでしょうか? 大まか流れとして 1・DNSによる名前解決 2・TCPセッションの確立 3・HTTP要求 と考えてます。(ARP解決は省略します) 1・DNSによる名前解決 プロトコルスタックの流れだとHTTP→DNS→TCP→IP→Ethernetでネットワークに送信され、応答がEthernet→IP→TCP→DNSになると思います。 2・TCPセッションの確立(省略) SYN→SYN ACK→ACK 3・HTTP要求(省略) HTTP GET→HTTP 200 OK わからない部分は1・DNSによる名前解決が終わったあとどうやって2・TCPセッションの確立に移行するのかということです。 (同様に2・TCPセッションの確立が終わったあとに3・HTTP要求)

  • UDPデータ通信中の認識方法

    はじめまして。 表題の件について教えて下さい。 機器Aと機器BでUDPデータの通信をしている場合(機器Bのファイルを機器Aに転送しているとか)に受信側の機器Aはデータを受信している最中であるとどうやって認識しているのでしょうか? TCPだと最初にコネクションを確立して最後にコネクションを切断するのでデータ受信開始、受信中、受信完了はコネクション情報で確認できると思うのですが、UDPではコネクション確立がないのでTCPでのデータ受信開始、受信中、受信完了をどうやって識別しようか迷っています。 UDPでデータを受信している最中にLANケーブルを抜かれたらエラーとしたいのです。 その為に受信中であることを知りたいのですが。。。。

  • ネットワーク切断を検出するには?

    Linux上で動作するTCP/IP通信アプリケーションが、LANケーブル抜けによるネットワーク切断を検知するにはどうしたらよいのでしょうか? 外部からコネクションを確立した後にケーブルが抜けたとき、Linux側でソケットをcloseしたいのです。今はこれができておらず、接続状態のまま(netstatでみるとESTABLISHED)になっています。複数の接続を許していないので、ケーブルを繋いだあとにTCP/IPで再接続できません。 試したこと ソケットに対するioctl(2)でifreq.ifr_flagsのIFF_UPフラグをみたけど検知不可 切断時にselect(2)がエラーリターンするかと思ったがだめ ケーブルが抜けたとき、カーネルが eth0: link down とログに出力するのでどこか(/proc , /sys以下)を参照すればよさそうな気がするんですが…

  • BuffaloのBBR-4HGには、YAMAHAのルータのようなセッション数というのはあるのか?

    BuffaloのBBR-4HGはいくつまでのセッション数があるのでしょうか?また、YAMAHAのルータRT58iの”show nat desctiptor address コマンド”に相当する消費セッション数を調べる機能はあるのでしょうか。 現在TCP/IP通信通信機器の通信テストを行っている段階で、インターネット回線(フレッツ光ハイパーファミリ回線)で通信テストを行っており、200台程度のTCP/IPパケットを出力するシミュレーションソフトを作り、サーバにそれを受信するというテストをおこなっているのですが、サーバ側のルータとしてBuffaloのBBR-4HGを使用してテストしていたところ、通信が安定せず、サーバソフトも動作がダウンするという現象が出てきました。いろいろと原因を探ってみて、回線がベーシックじゃないとだめなのではなどの意見が出たのですが、とりあえずルータをYAMAHAのRT58iに変更してみたところこの現象がかなり少なくなりました。 どうしてRT58iで良くなったのかを考えてみたところ、セッション数である”4096”に注目しているのですが、RT58iにはどのくらいセッションを消費しているのかというshow nat desctiptor address コマンドというのがあるということをYAMAHAサポートさんから教えてもらい実行したところ、370セッションを消費しているということがわかりました。このセッション数でBBR-4HGは通信が不安定になっているのではないかと考えています。 どなたかご存じなかたいらっしゃいましたらどうぞご教授よろしくお願いいたします。

  • TCPの接続処理と終了処理について

    TCPでコネクションを確立するとき、制御フラグでSYN、SYN+ACK、ACKで3パケットをやりとしますが、終了手順のときは、FIN、ACK、FIN、ACKと4パケットをやりとりします。 これは何故でしょうか? コネクション確立時と同じく、FIN、FIN+ACK、ACKにしないのは何故でしょうか?教えてください。

  • 複数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)のパターンが崩れてしまう。 文字数が多くて煩わしいかと思いますが、回答宜しくお願いいたします。