げんきちの秘密基地

エンジニアリングが世の中の思いを実現してきた歴史に気づき、29歳未経験からWEBエンジニアとして転生!【Danger】綺麗事を割と本気で言ってきます【GitHub】https://github.com/0840kg【Twitter】https://twitter.com/0840kg

図解(?)通信アーキテクチャ入門 その2

ぞす!げんきちです!\\\\٩( 'ω' )و ////

 

「いや、誰だよ」って方は、下記リンクを見てやってください。

  1. はじめまして!げんきちです! - げんきちの秘密基地

  2. 僕がエンジニアになりたい理由 - げんきちの秘密基地

目次〜

f:id:Genkichi:20190306201919j:plain

 

前回の続きです!

genkichi.hateblo.jp

 

全体像

f:id:Genkichi:20190307184818j:plain 

なぜ住所であるはずのグローバルIPアドレスが変わっても(利用者が引っ越しても)利用者を特定できるのか?

DDNSDynamic Domain Name System)のおかげ。

DDNSについては後述してあります。

 

ドメインとは

IPアドレスを文字列に変換したもの。

インターネット上のネットワークを特定する文字列。

https://genkichi.hateblo.jp/であれば、hateblo.jpの部分。

#genkichi.hateblo.jpの部分はホスト部ネットワーク上のコンピュータを特定する文字列)。

 

DNS(サーバー)とは

Domain Name Systemの略。

人が使う言葉で書かれた住所 (ドメイン名) とネットワーク上にあるコンピュータ (WebやメールサーバーのIPアドレス) の間で、翻訳機としての役割がある。

 

DNSの仕組み

簡単に言うと、辞書のような仕組みとなっている。
例えば、辞書で「ドメイン」を調べる時は、まず「と」から始まる文字列について書かれたエリアを探して、次に「め」「い」「ん」という風に絞り込んでいく。

同様に、たとえば「genkichi.hateblo.jp」であれば、「.」で区切られた順に右側から検索を行っていく。

まず、「jp」の情報を管理するDNSサーバー(ルートDNSサーバー)に対して「hateblo.jp」の情報を管理するDNSサーバーはどこにあるかを確認する。

こうして最後に、「hateblo.jp」のDNSサーバーに対して「『genkichi.hateblo.jp』のIPアドレスは何か」を確認する。

 

  1. PC がDNSキャッシュサーバーに、ホスト名(genkichi.hateblo.jp)でアクセスする。
  2. DNSキャッシュサーバーがDNSルートサーバーに、管理情報 (「hateblo.jp」の情報を管理するDNSサーバーはどこにあるか) を問い合わせる。
  3. DNSルートサーバーがDNSキャッシュサーバーに、管理情報のあるDNSサーバーを知らせる。
  4. DNSキャッシュサーバーが「hateblo.jp」のDNSサーバーに、管理情報 (「genkichi.hateblo.jp」の情報を管理するDNSサーバーはどこにあるか) を問い合わせる。
  5. 「hateblo.jp」のDNSサーバーがDNSキャッシュサーバーに、管理情報のあるDNSサーバーを知らせる。
  6. DNSキャッシュサーバーが「genkichi.hateblo.jp」のDNSサーバーに、ホスト名(genkichi.hateblo.jp)に対応するIPアドレスを問い合わせる。
  7. 「genkichi.hateblo.jp」のDNSサーバーはDNSキャッシュサーバーに、IPアドレスを回答する。
  8. DNSキャッシュサーバーはPCに、IPアドレスを回答する。
  9. PCはIPアドレスでWebサイトにアクセスし、ブラウザ上にWebサイトが表示される。

 

DNSルートサーバーとは

DNSキャッシュサーバーが最初に問い合わせをするサーバー。

世界中に13機しかない。 

 

キャッシュとは

一度読み込んだWebページのデータをPCのストレージに一時ファイルとしたもの。

同じページを再度表示する時に、この一時保存されたデータを使えば、いちいちWebサーバーと通信しなくてすむので素早く再表示される。

 

キャッシュの保存場所

~/Library/Application Support/Google/Chrome/Default/Application Cache

 

DNSキャッシュとは

ドメイン名に対応するIPアドレス情報が一時的に保存されている状態のこと。

 

DNSキャッシュサーバーとは

DNSキャッシュの処理を担当するサーバ。

 

問い合わせ結果のデータが、一定時間蓄積する。

そのためPCより以前と同じ問い合わせがあった場合には、自身でPCにIPアドレスを回答することができる。

DNSキャッシュサーバーの役割

役割1 => DNSサーバーの仕組み全体のスピードアップ化
役割2 => DNSルートサーバーの負担軽減

 

DDNSとは 

Dynamic Domain Name Systemの略。 

DNSの進化版。

IPアドレスFQDNの紐付けの設置を定期的に更新することで、変化するIPアドレスに対して、同一のFQDNが紐付けられるようにできる。

#FQDNについては後述してあります。

#通常のDNSは、それぞれのドメインごとにゾーンファイルを持っているが、ヒューマンエラー防止のため、基本的に一度設定したら変更はできない。

 

グローバルIPアドレスの「東京都渋谷区○○町××~×,△△マンション」の住所例で言うと、住所変更手続きをする役所のようなもの。

役所と同じように、DDNSクライアント側からDDNSサーバーにどのIPアドレスに変更したのかを知らせる必要がある。

通知の仕方は、以下のように様々な種類がある。

DHCPとは

ネットワーク接続している他の端末と重複しないプライベートIPアドレスを自動的に付与してくれるサーバー。

ほとんどの場合には、ルーターなどに内蔵されている。

 

FQDNとは

Fully Qualified Domain Nameの略。

省略していないドメイン名のこと。

 

例)

FQDN     =>genkichi.hateblo.jp

FQDNではない =>hateblo.jp

 

ポートとは

ソフトウェアが外部とデータを入出力するできるよう、OSなどによって抽象化されたインターフェースのこと。

グローバルIPアドレスの「東京都渋谷区○○町××~×,△△マンション」の住所例で言うと、ポートは「@@号室」の「〇〇君の部屋」のドア(出入口)のイメージ。

 

1つのサーバと複数のサーバをつなぐもの。

サーバは1つのIPしか持っていないことが多く、このIPをWEBサーバで使ってしまうと、他のサーバとして動作することができないため、番号でサーバを管理している。

 

ポート番号とは

コンピュータ(サーバ)が通信を行うために通信先のアプリケーション(サーバ)を特定するための番号。

コンピュータ(サーバ)間の通信で通信する宛先のIPアドレスが分かれば、そのIPアドレスにデータを送信できるが、そのデータを受信したコンピュータが、どのアプリケーション(サーバ)でそれを受信するのか判断するために必要。

ポートが割り振る番号には、0から65535までがある。

 

ポート番号の種類

ウェルノウンポート番号 0~1023

IANAで管理。サーバのアプリケーションに割り当てられるポート番号。

 

登録済みポート番号 1024~49151 

IANAで管理。独自に作成したアプリケーションに割り当てられるポート番号。

 

ダイナミックポート番号 49152~65535

クライアント側のアプリケーションに自動的に割り当てられるポート番号。

 

ポートは、インターネットサーバー側のポート(出入口)と、パソコン側(クライアント側)のポート(出入口)とに別れる。

 

インターネットサーバー側のポート

インターネットサーバ側のポート(扉:出入口)は固定の番号となっており、常に扉が開いた状態となっている。
サーバ側のポート番号には意味がある。

 

ポート番号毎にサーバ側の機能(サービス)は異なる。
サーバ側はサービス提供している機能のポート番号のみ開いた状態で待っている。
例えば、「https://~」が利用可能なサーバは443番のポートを開いて待っている。
443番ポートが開いていないサーバに「https://」でアクセスしてもエラーとなる。

 

パソコン側(クライアント)のポート

パソコン側(クライアント)のポートはセキュリティ等のため毎回変わり、使用の都度ポート開閉が行われる。

 

自動で割り当てられるポート番号は使用しているOSなどにより異なりますが「49152~65535」使用される。
OSが動的に割り当てをするため、ポート番号を指定することができない。
通信の長くて数秒だけ動的なポート番号「扉」が開かれるので外部からの不正侵入に耐える仕組みとなっている。

 

ポートの注意点

ポートを開けたままだと、扉が開いた状態と同じで外部からの侵入リスクが高まる。

必要のないポートは解放しない。

 

www.linuxacademy.ne.jp

ルーターとポートの違いとは?

どちらも抽象化するとドアのイメージで紛らわしい。

 

ルーター =>グローバルIPからプライベートIPへスイッチするもの。

グローバルIPアドレスの「東京都渋谷区○○町××~×,△△マンション」の住所例で言うと、ルーターは「@@号室」の玄関のドア(出入口)のイメージ。

 

ポート  =>1つのサーバと複数のサーバをつなぐもの。

グローバルIPアドレスの「東京都渋谷区○○町××~×,△△マンション」の住所例で言うと、ポートは「@@号室」の「〇〇君の部屋」のドア(出入口)のイメージ。

 

WEBサーバの動作

1.「80ポート」でHTTPリクエストを受け付ける。
2. リクエストに応じた処理や、要求されたファイルを探す。
3. リクエストしてきたコンピュータにHTTPレスポンスを返送する。

 

次回予告

HTTPとは

 

・・・

長くなってきたので、続きはまた明日書きます... 🙇‍♂️

 

<一日一新>

サラダチキン(カラムーチョ味)。ハマった。

 

<学習進捗>

学習開始からの期間 :86日
今日までの合計時間:849h
今日までに到達すべき目標時間:784h
目標との解離:65h
10,000時間」まで、

 

残り・・・9,151時間!」

 

以上です。

読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。

genkichi.hateblo.jp

genkichi.hateblo.jp

 

f:id:www08056561815:20190224095507g:plain

twitter.com