初学者向けネットワークの基礎知識! TPC/IP?プロトコル?IPアドレス??丁寧に解説します!
こんにちは、kotaroです。
もともと私はインフラエンジニアとしてオンプレのL2,L3ネットワーク周りで仕事していました。
最近は、AWSをやっており純粋なネットワークの業務はやっていないのですが、せっかく身につけた知識なので忘れないうちにアウトプット!
ネットワーク初心者の新入社員に説明する気持ちで書こうと思いますw
ネットワークを学び始めたかたや、もう一度基礎を固めたいかたに参考になればいいなと考えています!
私が初学者の頃
こんな感じでした。
「具体的にどういうこと!?」「図をくれぇぇぇぇ!」。。。
なかなかイメージしにくい分野だと思いますので学びはじめはかなりきつかったです。
以前勤めていた会社で、入社前の内定者とお話しさせていただく機会があったのですが、
「ネットワークの構築って実際に何やるんですか?」という質問がありました。
おそらく同じ思いをしている方も多いと思いますので、そんな方に向けてイメージを掴みやすくするため図を多めに解説していきます。
ネットワークとは
正直、この定義を明確にする意味はあまりありません。
私自身、3年働いているうちにだいたいこういうものかなーというのは分かってきたところでした。
ネットワークというものと付き合っていく中で「こういうものなんだな」という自分なりの定義ができればOKだと思います!
図にするとこの部分です!
ネットワークを構成するもの
代表的なものはこんなものです。
- スイッチ
- ルーター
- ファイアーウォール
- ロードバランサー
これらの機器をLANケーブルや光ケーブルで接続してネットワークを構築しています。
ネットワークに関わるエンジニアはこれらの機器をいい感じに設定して、皆さんのPCとサーバを繋げています。
ネットワーク自体は結構抽象的なものですが、実態は物理的な機会がネットワークを構成しているんです。
どのように通信しているのか
先程の物理的なネットワークの中を情報が行き来しているわけです。
ネットワークの中で、通信するためには送信側と受信側で同じルールに則って通信する必要があります。
このルールを「プロトコル」といいます。
なんでプロトコルというルールが必要なのかを少しご紹介します。
例えば皆さんがWindowsのPCを使っていて、Linuxのサーバと通信を行いたいとしましょう。
そんな時、WindowsとLinuxがそれぞれ独自のルールで通信しようとしていたらお互い何を言っているのかわからず、通信できませんよね。
そんな時、OSやメーカに依存しない共通のルールが必要で、それこそがプロトコルなのです。
ネットワークの分野では「TCP/IP」というプロトコルが使われています。
今後ネットワークという言葉が指し示すのは、TCP/IPのネットワークとさせていただきます。
TCP/IPについて
先程述べたTCP/IPでは色々なルールが定義されていますが、それらはざっくりと4つに分類することができます
分類の名前 | 分類されるもの |
アプリケーション層 | メールやファイル転送など実際にユーザがやりたいことを実現するためのプロトコル群 |
トランスポート層 | 通信相手と確実に通信するためのプロトコル群 |
インターネット層 | 直接接続されていないネットワークと通信するためのプロトコル群 |
ネットワークインターフェース層 | 直接接続されたネットワークと通信をするためのプロトコル群 |
ここで、情報量がかなり増えます。。私はここを理解するのめっちゃ時間かかりました。
プロトコルとは一般的に1つの大きいルールで定義するのではなく、複数の小さなプロトコルを寄せ集めて1つのプロトコルとして定義します。
こんなイメージ
TCP/IPでも分類したまとまりの中にも様々なプロトコルが含まれており具体的には下表のようなものがあります。
分類の名前 | 具体的なプロトコルの例 |
アプリケーション層 | HTTP HTTPS SMPT FTP SSH etc… |
トランスポート層 | TCP UDP |
インターネット層 | IP ICMP |
ネットワークインターフェース層 | ARP RARP イーサネット |
次に、4つに分類したものの名前に「層」という文字が付いていることについてです。
結論から申し上げると、通信をする際にこれらのルールに則っているかチェックするのですが、それに順番があるからです。
先程の表でいくとネットワークインターフェース層から上へ、またはアプリケーション層から下へと順々にチェックしていきます。
この、「層」のことを「レイヤー」と呼びます。
TCP/IPのルールの上で通信するためには
通信をする上では、通信相手を特定する必要があります。
相手を特定するために必要にな一意の情報が「MACアドレス」と「IPアドレス」です。
MACアドレスとは?
ネットワークインターフェース層で通信相手を特定するための識別子です。
物理アドレスともいわれていています。
人間がPCやスマホを使って通信するときなどは特に意識することはありません。
しかし、機械的にはまず通信相手のmacアドレスを特定するという作業を行っているということを覚えておいてください。
参考:MACアドレスとは?(CMAN)
IPアドレスとは
IPアドレスには2種類あります。
グローバルIPアドレス
インターネット上で使われていて全世界で一意でなければいけません。
これはICANという組織が世界規模で管理していて勝手に使うことはできません。
電話で言うと外線の番号みたいなものです。
プライベートIPアドレス
こちらは、ある限られた範囲で一意であれば自由に使うことができるIPアドレスです。
電話で言うと内線の番号みたいなものです。
業務で触るのはほとんどプライベートIPアドレスでした。
図にするとこんなイメージです。
「自宅のPCにグローバルアドレスなんて設定していないのにインターネット使えてるじゃん!」と思うかもしれませんが、
今回はその説明は省略させていただきまが、家にあるモデムやルータなどがNATという技術を使ってよしなにやってくれています。
IPアドレスの見方
IPアドレスは0~255までの数字を「.」で区切った4つのブロックで構成されています。
これは、人間に見やすい形で表示してくれているだけで、実際には2進数です。
2進数にした時の数字1桁を1ビットと数え、「.」で区切られた8ビットの単位をオクテットと呼びます。
この2進数で表記された状態においてある地点を境にして、
右側をネットワーク部
左側をホスト部
といいます。
ある地点を決めているのは、サブネットマスクというIPアドレスとは別の数列で、IPアドレスと合わせて設定されているものになります。
左側のネットワーク部は所属するネットワークの番号を表しています。
右側のホスト部は所属するネットワークの中で一意に識別するための番号を表しています。
そしてある地点を決めているサブネットマスクは先頭から1が連続していてある地点を境に0の連続に変わります。
この1と0が切り替わっているのがネットワーク部とホスト部の境となります。
ネットワーク部以外を全て0にしたものをネットワークアドレスといってネットワーク自体を表現します。実際にここに対して通信を送ることはありませんが、設計書などを書く時にこの表現をよく使います。
また、ネットワーク部以外を全て1にしたものをブロードキャストアドレスといいます。
このアドレスへの通信は同じネットワークに属する全てのIPアドレスに対して通信をおこなうという意味を持ちます。
手動でこのIPアドレスに対して通信を行うことはありませんが、様々なプロトコルで利用されています。
次回!
この記事で説明した内容は本当に基礎的な内容で、これだけではまだ通信できません。
これらの要素が実際にはどのように連携してネットワークを構築しているのかを解説しました!
初学者向けネットワークの基礎知識! 実際どのように通信しているのかを解説します!
一旦ここまで!
今回紹介した内容で頻繁に使うのはIPアドレスとプロトコルのところです。
IPアドレスについてはさらに詳細な記事を後々あげたいなーと思っています。
TCP/IPのレイヤーについてはトラブルシューティングの際にどこで失敗しているのかを特定する時に役立ちますので、覚えておいて損はありません。
一気にやろうとするとこんがらがってくると思いますので順々にやっていきましょう!