今回はプロトコルの上位層について解説するよ。
プロトコルってことは前回やったネットワークの基本が前提知識ですよね。覚えてるかなぁ
忘れちゃってたら前回の内容を復習するといいよ。
プロトコルが階層だってことさえわかっていれば話は通じるから!
上位層って何してるのかいまいちわかってなかったので詳しく知りたいです。
じゃあ、プロトコルの上位層について解説を始めるよ!
アプリケーション層(メール)
OSI基本参照モデルには前回説明した下位層からセッション層とプレゼンテーション層を飛ばすよ。
と言うのもセッション層とプレゼンテーション層は基本的にITパスポートでは問題としてほとんど出ないんだ。
セッション層やプレゼンテーション層よりもアプリケーション層を学ぶ方が効率がいい。
サービス同士を結ぶアプリケーション層
IPアドレスなどによって繋がった通信。
繋がった通信ができたらいよいよその通信を使って情報を送り合うんだ。
通信で何の情報をやりとりするのかを決めるプロトコルがアプリケーション層だよ。
メールのルール(SMTP、POP3)
身近なアプリケーション層のプロトコルメールについて解説する。
メールのプロトコルは送信のSMTPと受信のPOP3に分かれている。
誰かに宛てて送ったメールは受信者が属しているメールサーバに蓄積されるんだ。
この方法によって送信者は相手の状況を気にせずにメールを送ることができて、受信者も好きなタイミングでメールサーバからメールを取ってくればいいことになる。
POP3の場合、メールを取りに行かないとメールを読むことができないデメリットもあるんだ。
メールはスマホに直接送られているように感じるかもしれないけど、実はメールサーバに溜まっているメールをスマホで取りにいっている仕組みになっているよ。自動で取りに行っているから意識したことは少ないと思う。
最近ではIMAP4と言う受信プロトコルも目にするようになってきた。
POP3ではメールはメールサーバからダウンロードしてくる形だったのに対し、IMAP4はメールサーバに直接見に行く事ができるようになっているんだ。
ダウンロードせずにどの端末からも共有のメールサーバにアクセスすることでメールを確認できる。
メールってスマホに直接届いていると思っていたけど違ったんですね…!驚きです
そう、メールサーバとの通信をうまくやることで実現しているんだ。
iPhoneでもよく観察するとメールサーバから受信中というのを文字として確認することもできるよ。
メールアドレスの秘密
メールアドレスはどんなものを使っているかな?
taitaitaitai@gmail.comみたいな感じになっているのが一般的だと思う。
この@マークには意味があって、@マークの左側はユーザID、右側はメールサーバを表しているんだ。
つまりgmail.comはGメールのメールサーバを表していて、taitaitaitaiはGメールサーバ内のユーザIDを指している。
先ほども説明した通り受信メールを確認する際にアクセスするのがメールサーバだったね。
メールアドレスからどのメールサーバを使っているかがわかり、さらにユーザIDによって誰が使っているメールサーバの入れ物かがわかる仕組みになっているんだ。
図にまとめるとこんな感じだね。郵便受けみたいなイメージだ。
(メールサーバとユーザIDと言う箱がある図)
メール関連用語
メールに関連する用語について解説しておくよ。
MIME:漢字やひらがな、画像ファイルなどを送りたい要望に答えるためのプロトコル。
情報を一定のルールに従ってASCIIコード(アスキーコード)に変換する。
Webメール:ブラウザによってメールサービスを提供しているWebサイトにアクセスし、読み書き送受信するタイプのメールだよ。
SMTPやPOPではなくHTTPというプロトコルを使う特徴がある。
メーリングリスト:複数のユーザをグループとして登録しておき、グループ宛てのメールアドレスを定める。
例えば、野球部って名前のグループをメーリングリストにした場合、野球部に届くメールは野球部員の全員に届く感じだ。
迷惑メール(スパムメール):インターネット上でやり取りされているメールの40%を占めると言われている迷惑メール。
意味のない文字列やURLをクリックさせて悪質なサイトへ誘導するメールなどが該当するよ。
とにかく無視するのが一番いい。
アプリケーション層(Web)
メールの他にもアプリケーション層でお世話になっているのがWebだ。
WebっていうのはWebページで構成されていて、サーバに問い合わせを行いページ情報をもらうことでスマホやPCで表示させる事ができる。
Webページとマークアップ言語
Webページを記述するルールがHTMLで、HTMLを送受信するためのルール・プロトコルがHTTPだ。
HTMLはマークアップ言語と呼ばれるプログラム言語の一つで、タグと言われる< >などの記号を交えながら書いていくんだ。
例えばこんな感じ。<赤く大きな字で表示>この文字を大きく赤字で!</赤く大きな文字で表示>
みたいな書き方をする。
これによってブラウザではタグの中身を確認してどの文字を大きくすればいいのかを理解して「この文字を大きく赤字で!」というような表示をしてくれるんだ。
基本的にWebページはこのマークアップ言語であるHTMLを読み込むことで、Webサイトらしい画面を描いているよ。
HTMLは比較的易しい言語だから、気になる場合は実際に書いて学んでみるのがいいと思う!
す、すいません、Webページで使うプロトコルっていうのがHTTPだと思うんですが、
似たようなのにHTTPSってのもあるじゃないですか。あれって何が違うんですか?
URLをしっかり見れていていいね~
HTTPSとHTTPの違いはズバリ、情報が暗号化されているか否かだよ。
HTTPSは通信が暗号化されているからクレジットカード情報なんかがちゃんと暗号化されて、相手との通信に使われる。
対してHTTP通信は暗号化機能がないから、盗聴された場合にクレジットカード情報がダダ漏れになってしまうんだ。
HTTPSのSはセキュリティのSって覚えておけばいいと思う!
なるほど!!ありがとうございます。
これからはHTTPのサイトではクレジットカード情報絶対入れないようにします。
Webサイトを便利にする機能(Cookie)
Webサイトをより便利に利用するためにCookieについても解説するよ。
Cookieとは一度訪れたサイトの情報を忘れないように覚えておく機能のこと。
Cookieがないとサイト情報をいちいち忘れてしまうから、例えばログインをしたサイト上を一度でも離れたらもう一度ログインし直さなければいけなくなるんだ。
面倒ごとを少し減らしてくれる便利な機能って感じだね。
最近Cookieを受け入れますか?っていうのをWebサイトとかでよく見かけるんですが、あれって全て受け入れるでいいんですかね?
基本的には受け入れるで大丈夫だよ。
唯一怖いのはCookieを受け入れたスマホやPCが誰かに盗られた場合。
ログイン情報がCookieに残ったままだからスマホやPCを開く事ができればその情報を元に買い物をされる場合があったりする。
とはいえこういった状況は特殊なケースだから、基本的にはCookieは受け入れるで大丈夫。
極端に個人情報であるサイトの訪問履歴などを残したくない場合はCookieは受け入れない方がいいけどね。
アプリケーション層(DNS)
アプリケーション層でもう一つ重要で覚えておきたいのがDNSだ。
DNSはIPアドレスを僕たちがよくみるURLの形に置き換えるプロトコルのこと。
このプロトコルのおかげで僕たちはURLでサーバにアクセスでき、Webサイトに辿り着く事ができているんだ。
IPアドレスはわかりづらいから…
DNSが生まれたわけはシンプル。IPアドレスだと人間は読みづらいからだ。
192.168.233.45というサイトにアクセスしてください。って言うより、「www.google.com」にアクセスしてください。の方が何のサイトかが名前だけで推測できるし伝える時もわかりやすい。
このIPアドレスとURLのドメイン名の変換を行うのがDNSなんだ。
DNSというのはサーバでIPアドレスを聞けばドメイン名(URL)が、ドメイン名(URL)を聞けばIPアドレスを教えてくれる便利なやつだよ。
アプリケーション層(その他)
主なアプリケーション層のプロトコルについては説明したから、残りの細かいプロトコルについてここでまとめて紹介するね。
DHCP
IPアドレスの設定を1からやるとなったら初心者には大変すぎる。
そんな悩みを解決してくれるのがDHCPだよ。
IPアドレスやネットワークの接続情報を自動的に配布する仕組みで、僕たちが特に意識せずにネットが繋げられるのはこのプロトコルのおかげなんだ。
NTP
時刻合わせのために使われるプロトコルがNTPだよ。
システムにおいて時間が合っているっていうのは非常に重要なんだ。
0時00分にシステムがバックアップを取るとかの作業をしたりするから。
NTPはGPSや原子時計などを超正確な時計として利用できるようにするプロトコルなんだ。
ネットにつながっているPCの時計が常に正しい時刻を刻んでいるのもこのプロトコルによるものだよ。
FTP
ファイル転送の際に使われるプロトコルがFTPだよ。
ネットワーク上でファイルの送受信をする目的で使われて、ブラウザで普通にファイルのダウンロードができたりアップロードができているのはこのFTPのおかげなのさ。
よーーく観察するとHTTP通信からFTP通信に切り替わるのをダウンロードの際は確認する事ができるんだ。
ネットワークの知識の補足
ここまでで大体のネットワーク知識については解説してこれた。
残りの部分としてVPNという社内ネットワークに外部からアクセスする技術と、ネットワークが遅いとか早いとかを図る伝送速度の計算方法について最後に解説していくよ。
VPN
VPNっていうのは、自宅の環境から会社のネットワークにつながる回線を超安全なものにしちゃおうという考えのもと生まれた技術なんだ。
イメージとしては社内ネットワークに向けて専用のトンネルを作るイメージ。
認証や暗号化が強く要求される特別な回線だから安心して通信を行えるんだ。
今後テレワークをしていく場合は、VPNっていう用語はかなり頻発するからイメージだけでも押さえておこう。
伝送速度計算
ネットワークを利用する場合はデータを送るスピードというのがそのまま直結して、ネットワークの速度になるんだ。
郵便配達のお兄さんお姉さんがどれだけスピーディに荷物を運べるかが速度に関わるイメージだね。
式としてはシンプルで、かかる時間 = (データ量)÷(伝送速度)で計算する事ができる。
伝送速度はbpsという単位で表現される事が多く1秒間に〇〇bit送れますよという意味になる。
実際の計算の際は単位合わせに注意しよう。
例えば100Kbpsという回線で、100MBitのデータを送る時時間はどれほどかかる?っていう問題があった場合。
100÷100で1なんてことを決してやってはいけないよ。
片方は100Kで、データの方は100Mなんだから。単位を合わせてこういった計算になる。
100×10^6 ÷ 100×10^3 = 10^3 = 10000つまり10000sが正解。
Mは10が6個、Kは10が3個、Gは10が9個というのは覚えておいた方が単位計算が多いITの世界では便利だよ。
あとはビットとバイトの違いにも注意が必要だよ。例ではわざとデータにビットという表記をしているけど仮にこれがバイトだった場合は100MBは800Mbitとして計算しなきゃいけない。
bpsは1秒間に遅れるビット数だったからね。
単位は非常に重要だからビットとバイト、MやG、Kには特に注意しよう。
まとめ
今回はネットワークの上位層アプリケーション層について解説してきたわけだけど
どうだったかな?
これまで意識していなかったメールとかWebサイトの仕組みがわかって面白かったですね。
HTMLについてもう少し詳しく勉強したいなとは思いました。
なるほど、HTMLについてはたこにも解説しようと思っているから、その時は声かけるようにするよ。
ぼ、ぼくは伝送速度の計算が面白かったです。
問題ももっと解いて単位とかビット、バイトに騙されないようにしたいと思いました。
いいね!今回の内容はかなりITパスポートでも問われる事が多いから問題もバッチリ解いて知識を資格の合格にまで昇華していこう!
じゃあ今回はここまで、また次回!
はい!ありがとうございました!!