この記事は自分でもネットワークについて調べて分かった事について書いてます。
今回は「TCP/IP」です。
とかく私の様な初心者ってのは言葉の意味に翻弄されます。
耳に言葉が入ってきても理解が出来ていないから話し全体のイメージが沸かない。
つまりは全然話が理解できていないって事になります。
それを解決していく為にはやはり知識を増やすしかないですよね。
こればかりは努力しないといけない。。。
そんな訳でね。
今回ググった内容と~
参考にしたサイトのURLをここに残しておこうと思います~
↓↓↓↓↓ ITエンジニアになる為の
言語以外の必要なスキルも調べておきました~ ↓↓↓↓↓↓
TCP/IPは略語です。
TCP/IPってのは~ご想像の通り略語なんですね~
正式には~
「Transmission Control Protocol/Internet Protocol」
っと言うのだそうな。
現在では最も利用されている通信プロトコルなんですって。
TCP/IPの階層モデル???
なんかもう既に分からない事がいっぱいなんですけども~
階層モデル???
なにそれ?
なんか仕組みを表しているみたいですなぁ。
ググったページなんかでは~
図で説明とかしてくれてますけども~
なんかイメージとしては捉える事が出来ますが~
いやいや全然実感が沸かない。。。((+_+))
でも、これ丸暗記するしかないでしょうね。
(図1)
なんかこんな感じで~
TCP/IPの階層モデルってのは~
OSI参照モデルの細かい層をもう少し大まかにまとめて扱っていて~
OSI参照モデルの3つの層
(アプリケーション層、プレゼンテーション層、セッション層)が担当している仕事ってのを
TCP/IPの一つの層(アプリケーション層)でやってたり~
他にもOSI参照モデルの2つの層(データリンク層、物理層)が担当する仕事ってのを
TCP/IPの階層モデルでは1つの層(ネットワークインターフェース層)
でやってたりするという事なんですね~
まあ、これは仕組みを作り上げる時の捉え方の違いというだけで
やっている仕事の内容は同じなんでしょうなぁ。きっと~
(図2)
上の図の様に~
階層ってのとコンピュータの内部で仕事を担当しているとこ
(OSとかデバイスドライバ)を並べてみると少しわかる気がいたしますね。
OSやらデバイスドライバってのは知っている言葉だからね~
なるほど~PCの通信アプリケーションってのは
OSI参照モデルの
アプリケーション層、プレゼンテーション層、セッション層
で必要な仕事をやってたのですなぁ。。。
TCP/IPの階層モデルではデータがカプセル化したり非カプセル化したりする
ここでなんと~またまた不明な言葉。。。
データのカプセル化と非カプセル化。。。
データってのは、プログラムの中にあるもので~
人にとって意味のある情報だったですよね。。。確か。。。
(図3)
上の図を見てハッとしましたね。
なんか分かった気がしませんか?
(視覚的にデータが順に加工されていく様子がわかる。。。気がする。。。)
この図は通信プログラムを使ってデータをやり取りする時の仕組みを表してるんですよね。
TCP/IP階層モデルの送る(送信)側の仕組みについて(カプセル化)
私から相手にデータを渡す時、
私(送信側)がパソコンで作ったデータってのがまづ有りますよね。
(文書とか画像なんかもそうですね~)
それが(図3)の左側の一番上に書いてある「データ」って奴ですわなぁ。
これは人が手をかけて作らないと出来上がってこないもんですよね。当然ですがね。。。
アプリケーション層では「HTTPプロトコルのヘッダ」を付加
私が書いたモノをあなたに送りたいので~
通信プログラムで「送信」ってやります~
すると~プログラムの内部ってか
プログラムの記述の中で
「HTTPプロトコルのヘッダ」ってのを
くっ付けるって事でしょうなぁ!
これでデータは送る為に必要な加工がなされました~
でも、まだ第一段階ですね。
データ加工第一段階の型:「HTTPプロトコルのヘッダ」「データ」
(※図3の送信側(左)の処理参照)
トランスポート層では「TCPプロトコルのヘッダ」を付加
更に~加工されたデータは~
プログラムを離れて~!
今度はOSの仕事に使われていく訳です~
(トランスポート層はOSの仕事になりますからね(図2参照))
加工されたデータ(HTTPヘッダが付いたデータ)をOSが更に加工していきます。
今度はOSがね「TCPプロトコルのヘッダ」をくっ付けていきます~
データ加工第二段階の型:「TCPプロトコルのヘッダ」「HTTP」「データ」
(※図3の送信側(左)の処理参照)
インターネット層で「IPプロトコルのヘッダ」を付加
更にOSが受け持つ仕事にはインターネット層のものがありますから~
そこでまた加工していきますよ!
今度は「IPプロトコルのヘッダ」を付けていきますね。
ヘッダってのは「先頭」って意味だからね~
どんどんとデータの先頭にその時必要なプロトコルのヘッダ情報を
くっ付けていきます~
データ加工第三段階の型:「IPプロトコルのヘッダ」「TCP」「HTTP」「データ」
(※図3の送信側(左)の処理参照)
ネットワークインターフェース層では「Ethernetプロトコルのヘッダ」を付加
コンピュータの仕組みの中では
各プロトコルの階層別に必要な情報をヘッダという形でどんどんとくっ付けていく。。。
そしていよいよネット―ワークインターフェース層に入って行きます。
ここまでくるとハードウェア寄りの仕組みなのですかね。
私はこの辺りはイメージは良く分かってません。。。
でも、なんか機械的な仕組みに最も近い部分なのでしょうなぁ~
ここでもデータは加工されていきますね。
今まで加工され続けてきたデータの先頭に
「Ethernetプロトコルのヘッダ」を付加していきます。
そして気づきましたかね?
「Ethernetヘッダ」の他にもお尻の所に「FCS」っていう情報が付いてます。。。
(図3参照)
この「FCS」はデータがキチンと線を伝って送られてきたのかをチェックする為に付けられた
誤り検出符号なんですって~
まだ、私的には何の事なのかは把握しきれてませんが~
データをやり取りする時にはきっと途中でデータが壊れたりするのかもしれませんなぁ~
データが壊れたりしたかどうかを判断する為に計算して付けられた情報なんだとか。
これもプロトコルなんでしょうかね?
(分りませんが。。。)
っという事で~
「Ethernetプロトコルのヘッダ」から「FCSプロトコル(?)」までってのが
送る時のデータの単位って事になるのですかね。多分~
そしていよいよ電気的(?)な送信という事になりますかね~
(図3)には電気信号に変換って書いてあるから~
まあそうなんでしょうね。
行ってらっしゃ~い!
データ加工第四段階の型:「Ethernetプロトコルのヘッダ」「IP」「TCP」「HTTP」「データ」「FCS」
(※図3の送信側の処理参照)
「データのカプセル化」の意味はこれだ!と思う。。。(;^ω^)
今まで見て来た様に~
人が作り上げた文書などのデータにヘッダという情報をどんどんと頭に付加していって~
データを実際に相手に送れる状態に整えるって事をカプセル化って言う様ですね!
あたかも必要な情報をカプセルに詰めてひとまとめとして送り出すみたいな感じなんでしょうか・・・
(違ってたらごめんなさい。。。(/ω\)
TCP/IP階層モデルの受取り(受信)側の仕組みについて(非カプセル化)
今までの加工を施した後で~
人が作ったデータってものが電話線(?)を通って電気(?)に乗って移動を始めます~
そうなれば今度は送られてくるのを受取らないと通信にはなりません。。。
(あってますかね?)
っという訳で~
今度は受け取りの仕組みについてのお話になりますね~
送信の時ってのは~
データにプロトコルのヘッダを次々に付けていって~
最終的な形が出来上がった状態で送り出したのでした。
今度はどうするのかと言えば~
受信側ってのはまるっきり反対の仕組みを作って~
そして最終的には人が見る事が出来る形にデータを加工していきます~
この最終的な加工ってのは~
送る時の最初の形を再現できないといけない訳です。
なるほどね!元に戻していくって事ね。。。
それではいってみましょうか~
ハードウェアが電気信号になったデータを受け取りビット列に変換してくれる。
(図4)
送られてきた電気信号になったデータを受取るのが機械(ハードウェア)な訳でしょ!
このハードウェアってのはモデムって奴でしょうかね。
昔のパソコン通信なんかでは理由は分って無かったけども~
電話線をモデムに繋げたり、
モデムからパソコンに線で繋いだりとかやってましたなぁ。そういえばね~!
まあ、この手の機械で~
送られてくるヘッダ付きのデータってのを受取るのでしょうね。
そして受取った電気信号のままではコンピュータは扱えないので~
それを機械的な仕組みでビット列に変換します。
ビット列ってのはコンピュータが認識できる形の物なのだそうですね。
ネットワークインターフェース層で「Ethernetプロトコルのヘッダ」を取り除く
コンピュータにも認識できる状態になったデータってのを~
ネットワークインターフェース層の仕組みで加工をするんですね。
ここからは受取り側のコンピュータの中でのお話に変わっていきますよ。
あちらからデータを送り出す時には、ネットワークインターフェース層では
「Ethernetプロトコルのヘッダ」と「FCSプロトコル」ってのを付けましたね。
(図4の左側参照)
受信の時には反対の事を行う訳なので~
受け取ったデータからは
この層で付けられた「Ethernetヘッダ」と「FCS」を外していきます。
そして加工したデータをインターネット層の仕組みに渡します。
これが受信の時に加工していく形になりますね。
受信時のデータの第一段階の加工型:「IP」「TCP」「HTTP」「データ」 (※図4の受信側(右側)の処理参照)
インターネット層では「IPプロトコルのヘッダ」を取り除く
ここまでくれば後は
送信時にインターネット層で付けていたヘッダを外して行けば良い
ってのが想像つくでしょ!
その通りでね~
このインターネット層では「IPプロトコルのヘッダ」を取り外します~
そしてトランスポート層の仕組みに加工したデータを引き渡すんです~
このインターネット層ともう一つトランスポート層ってのは
コンピュータのOSの働きになりますよね。
受信時のデータの第二段階の加工型:「TCP」「HTTP」「データ」 (※図4の受信側(右側)の処理参照)
トランスポート層で「TCPプロトコルのヘッダ」を取り除く
もうどんどんとプロトコルのヘッダを取り外していきますよ~
このトランスポート層では
TCPプロトコルのヘッダを取り除くんでしたね。
そして次のアプリケーション層に引き渡します~
受信時のデータの第三段階の加工型:「HTTP」「データ」 (※図4の受信側(右側)の処理参照)
アプリケーション層では「HTTPプロトコルのヘッダ」を取り外す
やっとここで最後になりますね。
アプリケーション層では「HTTPプロトコルのヘッダ」を外していきます。
そうする事で残ったのは~
送り主が作り上げたデータの形に戻ったって事になりますかね。
このデータを表示させてあげれば~
無事に、データは私から貴方へ送れたよ~って事になりますなぁ~
なんとも言葉にすればこんなに長くなるお話なんですね!
これを瞬時にこなしているコンピュータってのは
やっぱり速いのだなぁ~って思います~
しかも一度だけではなくって~
相手からも此方からもなんてのが頻繁に行われるのですからね~
これはホントにスゴイ仕組みですよね~
感心感心~
「データの非カプセル化」の意味も分かった気がいたしますね!
ここまでくれば~
データの非カプセル化ってのも想像が出来ましたよ。
データを送る時にはカプセルに色々と付けて詰め込んだけども~
データを受取る時には~
今度はカプセルからいろいろと外していく~
そしてカプセルからは全て取り出して~
元のデータのままの姿にする事~
これがまさに「非カプセル化」って事でしょ!
んんん~なんかこの「カプセル化」と「非カップセル化」ってのは上手い言い回しですなぁ。
こんなに「沢山の仕事」ってか「細かい作業」を
「一言」で言い表してますね~
意味を知る前にはなんか抽象化し過ぎていて分らなかったけれども~
意味を知ってしまえば沢山の説明を省略できる~
なんて素晴らしいのでしょうか~!
さて、ここまで見て来て~
思った事があります~
「カプセル化」とか「非カプセル化」等のイメージを表す言葉ってのは~
ベースとなる知識がちゃんと頭の中に溜まっていないと~
「まったく理解には至らない!」って事なんですよ~!
このイメージを表す言葉を聞いて、
「フムフムなるほど~」ってなる為には
具体的な仕組みを知っていないとダメって事ですわな。。。
なんかワインのソムリエ達の頭の中と
彼らの言葉の表現に共通する所がある様な気にさえなってきましたなぁ。。。
(この表現自体も分りずらいですよね。。。(;^ω^))
それでは今回はこの辺で~
↓↓↓↓↓↓ 今回ググって~参考にさせて頂きましたサイト様!
有難うございました~↓↓↓↓↓↓
ここまで読んで頂きまして誠に有難うございました。
嬉しい楽しいついてます。
感謝
泉水善光