プロトコルスタックにメッセージ送受信依頼の仕組み
データ送受信の仕組みを本で読んだのでそのアウトプットです。
データの送受信の仕組みは以下の4つに分かれています。
①自分のPC側にソケットを作る
②サーバー側のソケットにつなぐ
③データを送受信する
④ソケットを削除する
タイトルにあるプロトコルスタックですが、
これはOSに組み込まれているネットワークを制御するための
ソフトのことです。
プロトコルスタックにデータを送受信してくれと
お願いするとデータをやり取りするための仕組みを作ってくれます。
その仕組みを作る段階が上記の4段階にあたります。
①にあるソケットとはデータをやり取りするための出入り口のことです。
サーバー側からとこちらがわのPC側にトンネルを作るための入り口を
作るようなものです。
ただし複数のデータをやり取りする場合が多々あります。
そんな時はトンネルは1本だけではなく送受信する分だけトンネルが
存在します。
ここでデータを乗せた列車が間違ったトンネルに入って間違った目的地に
着いてしまうわけにはいきません。だからPC側のトンネルの入り口に番号が
ふられるのでそれを目印にどのトンネルを通ればよいかを認識しています。
この振り分けられた番号をディスクリプタと言います。
次に②でプロトコルスタックに両側からトンネルを掘って行って
つなげてくれと依頼します。
ただしここで注意したいのはこちら側のPCで割り振られたディスクリプタは
サーバー側では分からないことです。
ディスクリプタはデータをのせた列車にこのトンネルを通れと指示するために
使われるためにあるのでサーバ側からはこちらで割り振った番号は一切見えません。
となると別の手段が必要になるのでこちら側のPCとサーバー側のお互いのトンネルを正しくつなげるためにIPアドレスとポート番号が使われます。
このIPアドレスとポート番号によってサーバー側にこちらのディスクリプタを知らせることができます。
そこでようやくお互いにつなげるべきトンネルが分かったので両方側から穴を掘っていき開通が完了します。
そして③へ移ります。
ここで列車は正しいルートを使ってデータを送り届けることができます。
列車が着くとサーバー側はデータのことを受け取って
中身を調べたりといった手続きをします。
ホームページを閲覧する場合だとサーバー側は必要なデータを受け取ったら
プロトコルスタックに閲覧したいホームページをこちら側のPCがそれを
受信してくれるように依頼します。そしてつなげられたトンネルを通って
荷物(ホームページ)が届いて中身を確認できます。
最後に④です。
現実のトンネルとは違って上記のトンネルはつなぎっぱなしに
しておくわけにはいきません。自分たち専用のトンネルに
部外者がそのトンネルを使うことは許されませんので、
そのトンネルを他の人が通れないように閉じておきます。
お互いの入り口を封鎖するようなイメージです。
以上ですが送受信の仕組みをあげておきます。