パケット解析ツールを構築するにあたって、そもそも通信ってどういう仕組み?とか
OSI7階層モデルってよく聞くけどいまいちピンと来ないなあ~とか
プロトコルは決まりごとって言うけど、意識してないからどういうとき知っておかないと影響でるのか分からない
といった状況だったので、改めて自分なりにまとめなおしてみたくなったのでメモ書きしていく。
まず通信とはざっくり言うと、PCとPC、PCとプリンタ、PCとスマホ、PCと機械とかAとBを繋いで情報や資産のやりとりをすることと認識しておけばいいかなと思います。掘り下げれば掘り下げるほど小難しくなるのでまずは概要から!
次に、AとBを繋いでやりとりをするときのお約束事をプロトコルと言いますね。
お約束事とよく言われますが、そもそもなんでやりとりするのに約束事が必要なの?って思うわけです。
人間に置き換えると、LINEや電話、SNSなんかは何も意識せずできちゃってるわけです。
PCだとそれがどうなるか、少しだけ掘り下げてみましょう。
上の図みたいに人間だったら何も気にせず会話スタートできますよね。
これが機械だったらどうなるのか。
はい、イメージとしてはこんな感じです。
・・・。
なんじゃこりゃですよね。
AちゃんからすればBくんはなんていってるかまったく分かりません。
人間の世界でも、こういうコミュニケーションがとれないことってよくありますよね。
アメリカ人の友達がほしくても、英語話せないからそもそも会話できないな、、みたいな。
人間でも機械でもコミュニケーションをとるためにはそれぞれに伝わる方法で接していかなければなりません。
何かコミュニケーションをとるためには、人間だと言葉が一緒じゃないと難しいってことはみなさん認識あると思います。
では同じ日本語でも、方言みたいにそれぞれに癖があったらどうなるでしょう?
秋田
沖縄
こんな具合に秋田や沖縄だと同じ文章でも全然ちがいますよね。
機械の場合においてもそれは一緒で、メーカーが変わるごとにそれぞれ約束事を取り決めていては
意味わかんない!って悲鳴をあげちゃう可能性があるんです。
そのため、異なるメーカ同士でも通信が出来るようにするため、国際的にルールを標準化する動きが出てきたわけです。
それらを取り決める団体も存在します。
wikiさんに聞けば一発なのでここは割愛します。(標準化団体)
ちなみにこういった団体で標準化されたものを強制的に使用しなければいけないということはなく、
あくまで使用を決めるのはメーカが判断します。
つまり「こういう仕様を規格化したからよかったら活用してねぇ」と世界中に知らせることにより標準化を促進しているにすぎないということです。
外国の人たちが始めに勉強する日本語って大体標準語ですよね。
でも関西弁や博多弁などを勉強してはいけない!とはなってませんからそれと一緒です。(プロトコル一覧)
次にプロトコルの階層化の考え方や、ネットワークの基本OSI参照モデル7階層の考え方や通信するときのデータの流れについて
とても分かりやすいサイトがあったのでリンクを張っておきます。
プロトコルの階層化 https://www.itbook.info/study/p36.html
と、ここで私のおすすめしたかったサイトが見れなくなってしまいました、、、
何でだろう?私のリンク設定がおかしかったのかなんなのか。
以前もこんなことがあったので、脱線しますがちょっと原因探ってみます。
コマンドプロンプトを開いて下記のコマンドを実行します。
user1>nslookup www.ドメイン名
すると要求がタイムアウトしました。の結果表示が、、、、、
つまりは、DNSサーバーに登録していたはずの情報が無い状態になってるみたいですね。
IPアドレスが分かればサイトも見れるようになるけれど、これ以上の調査は難しそうです。。。
このnslookupコマンドは何かというと、DNSサーバに問い合わせてドメイン情報を取得できるコマンドです。
nslookup IPアドレス/ホスト名 [DNSサーバー]でDNSサーバーにIPアドレス/ホスト名の情報を問い合わせます。
DNSサーバーを指定しない場合は、/etc/resolv.conf に記載されているDNSに問い合わせます。
本来はこんな感じでIPとドメイン名の紐付けが分かるはずです。
$ nslookup yahoo.com Server: aaa.bbb.ccc.ddd Address: aaa.bbb.ddd.ddd#53 Non-authoritative answer: Name: yahoo.com Address: 206.190.36.45 Name: yahoo.com Address: 98.138.253.109 Name: yahoo.com Address: 98.139.183.24
DNSサーバーに問い合わせてドメイン情報を取得する流れは以下のサイトの図が分かりやすいです。
http://ドメインまるわかり.jp/special/dns/page_02.html