13.1 ネットワークとは
Linux Essentials Online Text | 2021/08/03

コンピュータ間をケーブルや無線機能で接続したシステム全体をネットワークと呼びます。LinuxOSが搭載されたコンピュータのほとんどはネットワークに接続して利用されます。物理的なネットワークは機器間をツイストペアケーブルでつなぎます。最近では無線機能を使って接続することも多く、有線と無線の混在したネットワークが主流です。

ローカルエリアネットワークとワイドエリアネットワーク

ネットワークは大きく分けて2種類あります。ローカルエリアネットワーク(Local Area Network)、略してLANと、ワイドエリアネットワーク(Wide Area Network)、略してWANの2つです。

LANはケーブルや無線などを使って、同じ建物もしくは同じフロア、室内の中にあるコンピュータや通信機器、プリンタなどを接続してデータをやり取りする「範囲の限られたネットワーク」です。

一方WANは、インターネット(Internet)やVPN網などを経由してLAN同士を繋いだネットワークのことを指します。グローバルネットワークと呼ぶこともあります。
また、支社が点在する企業では、本社と支社をVPN網で接続して大きな一つの企業内LANを形成します。本社LANや支社LANから見るとVPN網もLANの外側であることから、VPN網の事をWANと表現することもあります。

TCP/IPを用いたネットワーク

ネットワークでつながったコンピュータ同士の間では、決められた手順に従ってデータを送受信して通信します。この「決められた手順」のことを「プロトコル」と言います。今日のネットワークでは、主に「TCP/IP」というプロトコルが使われています。

厳密に言うと「TCP/IP」は「TCP(Transmission Control Protocol)」というプロトコルと「IP(Internet Protocol)」という2つのプロトコルの名前を組み合わせた言葉です。

現在のネットワークは「IP(Internet Protocol)」を用いたネットワークです。「TCP(Transmission Control Protocol)」は「IP」を構成する要素の一つです。性質上、IPネットワークの大半は「TCP」による通信であるため、このように呼ばれます。

IPアドレス

「IP(Internet Protocol)」で通信を行う際、それぞれの機器にはネットワーク上で個々の通信対象を識別するための番号が割り当てられます。この番号の事を「IPアドレス」と呼びます。「アドレス(住所)」と呼ばれる通り、その機器の存在する場所を表します。そのためIPアドレスは、原則としてユニークである必要があり重複してはいけません。

現在のインターネットにはIPv4(Internet Protocol version 4)とIPv6という2つのアドレス空間があり、現在一般的に使われているのはIPv4です。

IPv4におけるIPアドレスは32ビットの数値であり、コンピュータ的な表現だと32桁の2進数(「0」と「1」の羅列)です。しかし、これでは人間には覚えにくいので右のように8ビットずつ「.(ドット)」を使って4つに区切り、10進数で表示するのが一般的です。4つに区切った1区画分の数値は2進数だと「00000000」~「11111111」までの値が入ります。これは10進数に直すと「0」~「255」までの数値になります。そのため、IPアドレスは0.0.0.0~255.255.255.255まで存在することになります。

アドレスクラス

IP通信を行うにあたりIPアドレスが必要ですが”ただ付与すれば良い”というわけではありません。ネットワーク設計において、どのようにIPアドレスを割り当てるかが一つのファクターとなりますが、その際に考慮しなければならない一つの要素がネットワークの規模です。

そこでIPアドレス範囲である「0.0.0.0~255.255.255.255」を5つのクラスに分け、構築するネットワークの規模に応じて使用する方法が考案されました。これがアドレスクラスです。

アドレスクラスは以下の表の通り、A~Eまでの5つに分類されています。クラスA~Cはネットワーク上で使うためのIPアドレスで、ネットワーク部とホスト部の長さがそれぞれ異なり、これによって使用できるホストの台数が異なります。また、クラスD、Eは特殊な役割を持っています。

クラスアドレス範囲台数用途
A0.0.0.0 ~ 127.255.255.255約1,677万台大規模NW用
B128.0.0.0 ~ 191.255.255.25565,534台中規模NW用
C192.0.0.0 ~ 223.255.255.255254台小規模NW用
D224.0.0.0 ~ 239.255.255.255-マルチキャスト用
E240.0.0.0 ~ 255.255.255.255-実験用

実際には、このアドレスクラスを用いた方法は上手くいきませんでした。見て分かる通り、クラスAは大きすぎ、クラスCは小さすぎるのです。そのためアドレスクラスを用いた割当は今では使用されておらず、別の方法が使われています。ただ、一般常識として会話の中に出てくることがあるので覚えておきましょう。

パケット通信

ネットワーク通信には、データが壊れやすいという弱点があります。データは「0」と「1」が断続的に並んだ文字の列ですが、電気信号として届くためノイズが混じって順番がおかしくなったり、電気信号が消えて一部が欠落してしまうことがよくあります。

普段、私たちが電話で会話するときには、多少の雑音が入って聞き取りづらくなってしまっても、なんとなく「勘」で何を言っているか聞き取る事ができます。例えば「ハロー」という単語が、「ハロ」と聞こえたとしても理解ができます。しかしながら、コンピュータにはそういう「融通」が利きません。データの場合、少しでもこの文字列がおかしくなってしまうと、コンピュータには解釈ができなくなるため、そのデータは全く意味不明な内容になってしまうのです。

そのため、データをある特定の大きさに区切ったものに分割し、パケット(小包)にして伝えるという手法をとるようになりました。もちろん、単に区切っただけではなんのデータだかわからなくなるので、宛先と発信者、何番目のデータか、などといった情報(ヘッダ)を一緒につけて送るのです。わかりやすく例えるなら、送信したい文章をパケット通信として1文字づつ分けて送ってやるわけです(実際のパケットは1文字づつではありません)。これなら、通信状態が悪くて、相手に「HELO」しか届かなくても「E」が欠落していることがわかりますから、このデータを再送してやれば良いことになります。

「HELLO」という5文字のデータを成功するまで何度も送り直すよりも、パケット化して1文字づつ送信して失敗したデータだけ送り直した方が効率的なのです。ちなみに、大きなデータが流れると回線を占領してしまい、そのデータが流れ切るまで他のデータが流せなくなってしまいますが、パケット化されていると次々にデータが流せるので、複数人が同時に回線を使用でき、回線使用効率が良くなります。

TCP(Transmission Control Protocol)

前述したパケット通信を行う前に、通信相手と通信方法をきめます。ここでも決められた手順(プロトコル)が必要です。TCP(Transmission Control Protocol)はそのうちの一つです。

TCPはスリーウェイハンドシェイクによってコネクションを確立して通信を行います。またTCPではデータのまとまりを1つ受け取ると、すぐにデータの破損などのエラーを確認し、問題がある場合はデータの再送を依頼します。信頼性の必要な場面でよく使用されるプロトコルですが、他のトランスポート層プロトコルに比べ、プロトコル上のオーバヘッドが大きい為、比較的低速となる性質をもっています。

UDP(User Datagram Protocol)

TCP と並んで代表的なプロトコルとしてUDP(User Datagram Protocol)があります。UDPは最小限の仕組みでデータの送受信を行います。

UDPはTCPとは正反対に送受信されるデータの誤りや順序の違いなどを検出する機能がありません。それどころかコネクションが確立しているかどうかを確認する状態(ステート)もありません。どうしても通信中のパケット紛失や、データ誤り等の検出やその為の対応が必要な場合はアプリケーションで行います。

その性質上、TCPと比較して信頼性は劣りますが、通信方法が簡素であるため転送速度を重視する通信に使用されます。例えば、途中でデータが抜け落ちても比較的問題が少ない音声や画像のストリーム形式での配信(VoIP、ストリーミングなどの音声、動画配信)に用いられています。

ICMP(Internet Control Message Protocol)

直訳すると「インターネット制御通知プロトコル」です。通信処理で使われるプロトコルのひとつで、Internet Protocolのデータグラム処理における誤りの通知や通信に関する情報の通知などのために使用します。

具体的に言うと通信経路の疎通や状態を確認するためのプロトコルで、指定した宛先にICMPを用いて通信を行うと、発生した各種エラー情報を報告してくれます。

これにより、指定した宛先への通信経路が正しいかどうかを判断することができ、問題がある場合はどのような問題が発生しているかを調査することが可能です。

おまけ:ネットワークインターフェース

コンピュータがネットワークへアクセスするためにはネットワークインターフェースが必要です。「インターフェース」には大きく分けて2つの性質があり、一つは物理的なインターフェースです。これは、ネットワークケーブルを実際に接続する接続口や、無線で通信を行うことができる装置などが該当します。

ブロードバンドが普及する以前、パソコンが一家に複数台あることは珍しく、一般家庭でネットワークを構築することは稀で、インターネット接続もモデムやTAが使われていました。

ネットワークカード - Wikipedia

そのため、コンピュータ自体にネットワークインターフェースが搭載されていないことがほとんどで、ネットワークインターフェースが必要な場合は、ネットワークインターフェースの機能を持つPCIボードを増設することで対応していました。

これはノートパソコンについても同様でした。現在のノートパソコンはネットワークインターフェースが搭載されていて当たり前ですが、同時期のノートPCにはネットワークインターフェースが搭載されていなかったため、右図のようなカードタイプの増設機器を接続してネットワークインターフェースを増設していました。

見ての通り、いずれも平たいカードのような形状であったことから、物理的なネットワークインターフェースを総称してネットワークインターフェースカード(NIC)と呼ぶようになり、現在でもその名残が残っています。

もう一つは、LinuxがOS上に設定している内部的なインターフェースです。Linuxは物理的なインターフェースとこの内部的なインターフェースを紐付け、IPアドレスを設定する事で、通信を行います。また、Linuxに限らず全てのOSは実際に使うネットワークインターフェース以外に、プログラムが内部的に使う仮想のネットワークインターフェースとしてループバックインターフェースを設定しています。

PAGE TOP