【ネットワーク】TCP/IPを用いた通信ってどんなの?

こんにちは!

突然ですが、コンピュータと関わっていると、「IPアドレス」という単語を目にしませんか?

僕もよく目にする単語だと思っていましたが、実際何のことなのかよくわかっていませんでした。

そこで今回は、この記事を読むとIPアドレスのことがわかるようになるというコンセプトで書いていきます!

この記事では、以下のことがわかります

  • TCP/IPとは何なのか
  • IPアドレスとは何なのか
  • ネットワークをさらに分割するサブネットマスクとは

では、順に見ていきましょう!

TCP/IP どうやって通信するか

インターネットにおける通信規格として、TCP/IPというものがあります。TCPとIPはプロトコルの名前です。TCP/IPとは、これら2つのプロトコルを組み合わせた通信規格ということです。

TCPはOSI基本参照モデルにおけるトランスポート層、IPはネットワークのプロトコルです。

OSI基本参照モデル

現在、ほとんどの場合でTCP/IPが用いられています。

これを使わなければならないという決まりはないのですが、みんな使っているので、事実上の標準となっています。

TCPとIPの役割

IPはネットワークの網としての経路機能を担う

IPは経路の制御を行い、ネットワークから次のネットワークへとパケットを運んでいくことで、相手に届けるプロトコルです。

IPでは、送信相手と接続していることを確認しないままパケットを一方的に送り付けます。なので、送信したパケットが相手に届いたかどうかまではわかりません。

IP上で相手と接続していることを確認するプロトコルがTCP

IPだけでは相手に届いたかわからず不安ですが、TCPを組み合わせることでその問題を解決します。TCPは、通信相手とのコネクションを確立し、データを送受信する通信プロトコルです


送信者は、パケットに付加情報をつけて送信します。受信者はパケットを受け取ると、受け取ったという情報を送り手に返します。こうして、パケットがきちんと送信されたことを保証します


送信後、しばらくたっても返事がない場合は、もう1度同じ情報を送信します。そうすることで、パケットが欠損することを防ぎます。


IPとTCPを組み合わせた通信規格がTCP/IPです。

IPアドレス

IPアドレスはネットワーク上の住所

IPで構成されたネットワークでは、コンピュータやネットワーク機器は、IPアドレスによって管理されています。IPアドレスがネットワーク上の住所のような役割を持ち、これをもとにデータの送受信が行われます

IPアドレスはコンピュータやネットワーク機器を識別するための番号です。なので、番号は一意である(重複があってはいけない)必要があります。

IPアドレスは、32ビットの2進数で表されます。つまり、0か1の数字が32個並んだものがIPアドレスです。

これだといったい何を表しているのか、私たちにとってはわかりづらいです。なので、32ビットの数値を8ビットずつに区切ります。

ちなみに、8ビットの数値は単位が変わり、1バイトになります。普段よく目にする100MBとか、2GBの”B”はこのバイトを表しています。

そしてそれらを10進数に変換することで、私たち人間でもわかりやすい数値としてあらわすことができます。

グローバルIPアドレスとプライベートIPアドレス

IPアドレスには、グローバルIPアドレスとプライベートIPアドレスの2種類があります。

グローバルIPアドレスは世界に1つの値

グローバルIPアドレスとは、インターネットで使用するIPアドレスです。したがって、世界中で一意である必要があります

世界中で一意であることが保証されていないといけないので、私たちがグローバルIPアドレスを好き勝手に割り当てることはできません。

NICと呼ばれる非営利団体が、地域ごとにアドレスを管理しています。

プライベートIPアドレスはローカルで使用する

プライベートIPアドレスは、企業などのLAN内で用いるアドレスです。

グローバルIPアドレスのように世界中で一意である必要はありません。LAN内で重複がなければ、自由に割り当てることができます

IPアドレスの構成

IPアドレスは32ビットの数値ですが、その数値は「ネットワークアドレス部」と「ホストアドレス部」に分かれています。

「ネットワークアドレス部」はどのネットワークに属するかを、「ホストアドレス部」はどのコンピュータかを示します。

先ほどIPアドレスはネットワーク上の住所だと紹介しましたが、「ネットワークアドレス部」が住所を、「ホストアドレス部」が宛名の役割を持っています。

例えば下に示すIPアドレスの場合、先頭24ビットがネットワークアドレスで、後ろ8ビットがホストアドレスです。

注意してもらいたいのが、必ずしも先頭24ビットがネットワークアドレスになるというわけではないということです。何ビットがネットワークアドレスになるかといったことは、状況に応じて変わります。

ネットワークの規模によって分かれるIPアドレスのクラス

ネットワーク上の住所であるIPアドレスですが、使用するネットワークの規模によってクラス分けがされています。

クラス分けのルールは、「32ビットのうち何ビットをネットワークアドレスに割り振るか」ということです。ホストアドレスに使えるビット数が増えれば、ネットワーク内で使えるコンピュータの数が増えます。

クラスA

大規模ネットワーク用のクラスで、ネットワーク部が8ビット、ホストアドレス部が24ビット割り当てられています。割り当て可能なコンピュータの上限は1600万台以上です。

クラスAでは、ネットワークアドレスの先頭は”0”と決まっています。

クラスB  

中規模ネットワーク用のクラスで、ネットワーク部が16ビット、ホストアドレス部が16ビット割り当てられています。割り当て可能なコンピュータの上限は約65000台です。

クラスBでは、ネットワークアドレスの先頭2ビットは10と決まっています。

クラスC

小規模ネットワーク用のクラスで、ネットワーク部が24ビット、ホストアドレス部が8ビット割り当てられています。割り当て可能なコンピュータの上限は254台です。

クラスCでは、ネットワークアドレスの先頭3ビットは110と決まっています。

なお、ホストアドレス部が全て0または全て1のアドレスは、コンピュータの割り当てに使用することはできません。これらは特殊なアドレスとして、予め予約されているのです。

なので、各クラスの割り当て可能なコンピュータの上限は、ホストアドレスのビット数で表すことができる数から2を引いた値になっています

ネットワークを分割するサブネットマスク

クラスCでも254台のコンピュータを扱うことができます。しかし、そんなにコンピュータがない企業も少なくありません。一方で、各部署ごとにネットワークを分けたいといった要望も出てくるでしょう。

それを実現するのが「サブネットマスク」です。

サブネットマスクは、各ビットの値によって、ネットワーク部とホストアドレス部を再定義することができます(1がネットワークアドレス部、0がホストアドレス部)。

IPアドレスのどこからどこまでをネットワークアドレスとみなすかを指定するビット列がサブネットマスク

上に示したサブネットマスクだと、先頭26ビットがネットワークアドレスであることを示しています。

サブネットマスクはIPアドレスと書き方が似ていますが、異なるものです。注意してください。

例えばクラスCで上記のようなサブネットマスクを指定した場合、ネットワークを62台割り当てを行える4つのサブネットに分割することができます。

本来公開24ビットであったネットワークアドレス部がサブネットマスクによって26ビットに拡張されています。これによって、差分の2ビットを使って分割したネットワークを表現できるのです。

まとめ

TCP/IPとIPアドレスについて紹介してきました。

現在では主流のプロトコルなので、どのようなシステムの上に成り立っているのかということは知っておいて損はないと思います!

IPアドレスについて少しでも理解していただけたでしょうか。この記事を読んで、ネットワークについての理解が進めば幸いです。

ではでは👋