ものづくりブログ

ゼロからスタートして何かを作って世に出すまでのことを書くブログです.

インターネットに関わるプロトコルについて解説(HTTP/TCP/IP)

 

こんにちは.

 

前回インターネットってそもそも何?というお話をしました.その中で,いくつかのプロトコルがあってそれらを使用して複雑な通信を簡単に(抽象化)しているということがありました.今日はそれらのプロトコルの中で,インターネットを使用するうえで特に重要なものについて解説していきます.

 

1. IP(ネットワーク層)

世界中にはたくさんの端末,すなわちPCやスマホやIoT機器などがインターネットに接続されています.もちろんサーバもインターネットに接続されています.私達がPCからWEBサイトを見るという行為は,サーバに閲覧したいファイルを送るようリクエストを送って,サーバがそれに応えてファイルを送り返してくれることで実現しています.

世界中に無数にあるコンピュータに割り当てられている住所をIPアドレスと言います.これをブラウザに入力することで指定のサーバにアクセスするわけです.この,どのIPアドレスがどの端末であるということを定めてそこまでどのようにデータを送り届けるかという仕組みを担っているのがIPなのです.

 

2. TCP(トランスポート層)

IPは端末同士や端末とサーバなどでデータをやりとりするためのプロトコルでした.しかし,例えばPC内で色々なアプリケーションがインターネットを使うようになると,たとえば今送られてきたデータがブラウザへのものなのか,Skypeなどの他のアプリ向けのものなのかを判断することができません.これを区別するために定められているのがポートと呼ばれるものです. これを担っているのがTCPです.TCPはポートだけを気にしていれば良くて,相手の端末までどのようにアクセスするかはIPにまかせてしまえばよい,という考え方です.

 

3. HTTP(アプリケーション層)

IPとTCPにより,どの端末のどのアプリケーションにデータを送ればよいかが決まりましたが,肝心の何を送るかが決まっていません.それを担うのがHTTPです.HTTPがどのような情報をどのように送っているかということは,追々詳しく触れる必要が出てくると思いますので,その時に触れます.

 

4. アプリケーション層のその他の規格たち

アプリケーション層にはHTTP以外にも私達に馴染みのあるプロトコルがいくつかあります.例えばラズパイへのファイル転送に使っているSFTPや,普段ラズパイの操作に使っているSSHなどもそうです.さらにメーラーアプリケーションを使っている人は受信にはPOPというプロトコルを使用し,送信にはSMTPを使っていることが多いと思います.

 

 

 

それぞれのプロトコルが裏側でどのような動作をしているかはユーザは知る必要はありませんが,それを使用したサービスを作る場合は学ぶ必要があります.まずはこれらのプロトコルがどのような階層で成り立っているかを知っておくと,どのプロトコルについて学ぶときも助けになるはずです.

 

 

 

参考文献

[1]「IP」がわかるとインターネット接続に差が出る