モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

目次目次を開く/閉じる

ネットワーク関連の雑多な用語整理

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2014/12/30
最終更新最終更新
2017/04/17
記事区分記事区分
一般公開

目次

    Webエンジニア。Next.jsとVercelでモダンなWeb開発を実践しています。

    TCP/IPモデル

    教科書的には OSI 参照モデルが有名ですが、実際の現場ではTCP/IPモデルを使用した通信がほとんどです。TCP/IPモデルは以下の 4 層から構成されます。

    • アプリケーション層: OSIのセッション層 + プレゼンテーション層 + アプリケーション層
    • トランスポート層: OSIのトランスポート層
    • インターネット層: OSIのネットワーク層
    • ネットワークインターフェイス層: OSIの物理層 + データリンク層

    PDU (Protocol Data Unit)

    OSI参照モデルの文脈で、以下の3層におけるカプセル化されたデータには特別な名称があります。PDU はそれらの総称です。

    • トランスポート層: TCPのPDUをセグメント、UDPのPDUをデータグラムとよびます
    • ネットワーク層: パケット
    • データリンク層: フレーム

    イーサネットのケーブル

    イーサネットは OSI 参照モデルにおける (物理層および) データリンク層のプロトコルです。プロトコルは共通ですが、実際にネットワークを構築する際には通信速度や通信ケーブルに関してネットワーク管理者による選択の自由があります。自由度があるとはいえ、経験上ネットワーク規模によって好ましい選択肢があることが知られており、規格として整理されています。

    10BASE-2
    10BASE-T
    

    規格名の最初の数値 10 は通信速度が 10Mbps (bps: bits per second) であることを意味します。ハイフン '-' 以降の部分はケーブルの種類と長さを示します。無印 2 は同軸ケーブル 200 メートル前後を意味します。また一部の例外はありますが、T は UTP (Unshielded Twisted Pair), F は光ファイバを意味します。その際、通信速度 100Mbps の場合をファストイーサネット、1Gbps の場合をギガビットイーサネットとよぶことがあります。通信速度が求められるイーサネットには光ファイバが採用され、求められないイーサネットには同軸ケーブルが採用されます。UTP には後述の通りカテゴリーによる品質の幅があるため一概には判断できませんが、基本的に同軸ケーブルと光ファイバの中間に位置するケーブルです。

    ツイストペアケーブル

    より対線 (ついせん) ともよばれます。8本の銅線があり、以下の二種類があります。

    • UTP (Unshielded Twisted Pair): よくあるLANケーブルです。最大セグメント長 (ケーブル長) は100メートルとされており、それ以上はハブやスイッチを使用して仮想的に延長する必要があります
    • STP (Shielded Twisted Pair): ノイズに強いケーブルです。特殊な環境で利用されます

    カテゴリー

    ツイストペアケーブルには「カテゴリー」という品質を示す数値があり、その数値が大きいほど品質が高く高額になります。

    • カテゴリー3 (Cat3): 10BASE-T 向け
    • カテゴリー5 (Cat5): 100BASE-TX (ファストイーサネットの一種) 向け
    • カテゴリー6 (Cat6): 1000BASE-T (ギガビットイーサネットの一種) 向け

    ポート

    ツイストペアケーブルの両端には RJ-45 コネクタがよく用いられます。コネクタに 1-8 の番号を付与したとき、両端のコネクタの同じ番号が電気的に接続されている場合をストレートケーブルとよびます。そうでない場合をクロスケーブルとよびます。これはケーブルの区分ではなく、コネクタの接続方法で決定される区分です。使用するデバイスのイーサネットインターフェイスのポートの仕様によって使い分けます。

    • MDIポート: 1,2が送信で3,6が受信。PCやルータはこれ
    • MDI-Xポート: 1,2が受信で3,6が送信。ハブやスイッチはこれ

    MDIポートとMDI-Xポートの組み合わせの場合のみストレートケーブルを使用します。それ以外の組み合わせではクロスケーブルとなります。違う種類のポートならばストレートケーブルで、同じ種類のポートならばクロスケーブルとも理解できます。自動的に送信と受信の銅線を判別してくれる Auto-MDI ポートというものがあります。Auto-MDI ポートのデバイスに関しては、どちらのケーブルも使用可能です。

    物理層とデータリンク層のデバイス

    ハブ

    MACアドレスによるフィルタリングができないことから、現在はあまり使用されていません。物理層 (レイヤ 1) までのデバイスです。信号を整形増幅する機能と全ポートに送信することで 1:N 接続を可能にする機能 (集線装置) を有します。スイッチングハブ (単にスイッチともよぶ) で代用可能です。

    スイッチ

    データリンク層 (レイヤ 2) までサポートするデバイスです。レイヤ 2 スイッチやスイッチングハブともよばれます。ポートとMACアドレスの対応関係を記憶するMACアドレステーブルを持ちます。MACアドレスを学習する機能があり、データを受信するとテーブルを更新します。送信時にテーブル登録があれば該当ポートのみに送信し、なければ全ポートにフラッディングします。

    コリジョンドメインはネットワークにおいて半二重通信 (受信と送信が同時にできない通信) となる範囲です。同じコリジョンドメインで異なる二つ以上の通信を同時に行うためには、例えば CSMA/CD (Carrier Sense Multiple Access/Collision Detection) といった仕組みが必要になります。ハブはネットワークすべてで一つのコリジョンドメインを共有するのに対し、スイッチは基本的にポート毎にコリジョンドメインが独立しています。よって、スイッチのバッファリングを利用できることもあり、全体として擬似的に全二重通信となります。効率のよくない CSMA/CD を使用する必要もありません。

    スイッチには VLAN (Virtual LAN; 仮想LAN) という機能があり、仮想的に複数のスイッチとして機能してネットワークを分割することができます。Catalyst スイッチには既定で VLAN1 が default という名前で生成されています。スイッチの全てのポートはこの VLAN1 に属しています。

    ブリッジ

    現在ではあまり使用されません。機能としてはスイッチと同じです。ポート数がスイッチよりも少なく、スイッチがハードウェアで処理することをブリッジではソフトウェアで処理するため動作も低速です。

    レイヤ 3 スイッチ (参考)

    マルチレイヤスイッチともよばれます。教科書的には、ルータはソフトウェア処理である一方でレイヤ 3 スイッチはハードウェア処理なため高速に動作します。しかしながら、現在ではルータとの違いは明確ではなく、レイヤ 2 スイッチを拡張したものであるという歴史的経緯を表現した言葉であると解することもできます。

    インターフェイス名

    ルータやスイッチにはボックス型とシャーシ型があります。ボックス型は備えつけられた固定のものが一つですが、シャーシ型はモジュールを複数設置できます。各モジュールには複数のインターフェイスがあり番号が付与されています。

    例 FaX/Y

    • X: モジュール番号
    • Y: インターフェイス番号

    WAN接続などに使用されるシリアルインタフェイスは Se0/0 などと表記されます。

    イーサネットで送信されるデータ (フレーム) の構成

    イーサネットヘッダ

    レイヤ2ヘッダともよばれます。

    宛先MACアドレス6バイト + 送信元MACアドレス6バイト + タイプ部2バイト (合計14バイト)
    
    • MACアドレス: 前半の3バイトはベンダーコード、後半の3バイトはメーカによるシリアル番号
    • タイプ部: 上位層のプロトコルの識別子。IPならば 0x0800 の2バイト

    タイプ部はイーサネットにだけある特別な仕組みではなく、カプセル化を基本とするプロトコルスタックの各層に備わっている仕組みです。例えば IP ヘッダにはトランスポート層のプロトコル識別子としてのプロトコルフィールドがありますし、トランスポート層のヘッダにはアプリケーション層の識別子であるポート番号フィールドがあります。

    イーサネットトレーラ

    データの「後」に付与されます。トレーラはイーサネットにだけある特別な仕組みではなく、他のプロトコルでも同様の仕組みが採用されていることがあります。データリンク層のデータは壊れやすいため FCS (Frame Check Sequence) というトレーラを付与します。具体的には FCS に CRC (Cyclic Redundancy Check) という値を入れておき、受信側で壊れていないかを確認します。

    IPヘッダ

    IPバージョン 4bit + ヘッダ長 4bit
        + 本パケットの扱いでルータに重視してほしいサービス種別 8bit + ヘッダを含むパケット長 16bit
    パケット分割で使用するパケットの識別子 16bit + パケット分割の制御フラグ 3bit
        + 同じ識別子のパケットでデータ復元する際の本パケットの断片位置 13bit
    TTL 8bit + 上位プロトコルの種類 (TCP: 6, UDP: 17, ICMP: 1) 8bit + ヘッダ部用のチェックサム 16bit
    送信元IPアドレス 32bit
    宛先IPアドレス 32bit
    

    TCP/IPにおいて、レイヤ 2 のプロトコルごとに最大データサイズ MTU (Maximum Transmission Unit) が規定されています。例えばイーサネットは 1500 バイトです。IPパケットのサイズが MTU を越える経路を使用する場合にパケット分割が発生します。これは IP フラグメンテーションともよばれます。分割されるのは IP パケットのデータ部分のみです。分割時には IP ヘッダ情報は可能な限りコピーされます。分割されたパケットはそれぞれ独立して宛先 IP アドレスまで転送されていき、宛先において復元されます。レイヤ 2 の通信におけるイーサネットフレームは以下のようになります。

    イーサネットヘッダ + MTU以下 + イーサネットトレーラ
    

    ICMP

    ICMP (Internet Control Message Protocol) は IP の上位プロトコルですが、ネットワーク層のプロトコルとして扱われます。IP に不足している機能を補うためのプロトコルであり、IP が使用できる端末では必ず ICMP も実装されています。ICMP パケットは以下のようになります。

    イーサネットヘッダ + IPヘッダ + ICMPヘッダ (ICMPメッセージ) + データ + イーサネットトレーラ
    

    ICMPヘッダ (ICMPメッセージ)

    大まかな通知の種類 8bit: 8 エコー要求、0 エコー応答、3 宛先到達不能、11 時間超過
        + 詳細な通知種別コード 8bit + エラー検査のためのチェックサム 16bit
    各通知に必要なデータ 32bit 単位
    

    例えば ping コマンドは ICMP を利用しています。正常時にはエコー要求に対してエコー応答を返します。到達できなければ宛先到達不能が返されます。TTL が 0 になり破棄されたならば時間超過が返されます。

    IPアドレス

    ネットワーク部 + ホスト部 で 32 ビットです。IPアドレスの扱いはすべて対等ではなく、サブネットマスクを用いないデフォルトのネットワーク部の桁数によってクラス分けされています。クラスには A,B,C,D,E がありますが、一般利用されるものは A,B,C です。クラス D はすべてマルチキャスト用に使用されます。

    • クラスA: 第一オクテット 0-127 (0*******/8)
    • クラスB: 第一オクテット 128-191 (10******/16)
    • クラスC: 第一オクテット 192-223 (110*****/24)
    • クラスD: 第一オクテット 224-239 (1110****/32)

    ループバックアドレス

    クラス A の 127 はループバックアドレスとして使用されます。そのうちよく採用されるのは「127.0.0.1」です。TCP/IP が正常に動作していることを確認する目的や、いわゆる localhost として自分自身の PC が提供するサービスの動作確認に使用されます。「127.0.0.1」に ping が届かない場合、経路上の障害以前の問題として NIC 周辺の障害が疑われます。

    リンクローカルアドレス

    DHCP クライアントは、何らかの障害によって IP アドレスの取得に失敗すると APIPA (Automatic Private IP Addressing) という機能によってクラス B の 169.254.0.0/16 範囲のリンクローカルアドレスとよばれる IP を自分で設定します。その際、重複が発生しないように他の機器の使用状況を事前に自動確認します。ルータは宛先の IP アドレスがリンクローカルアドレスのパケットを転送しません。リンクローカルアドレスは DHCP が存在しない小規模で閉じたネットワークを形成し、同一ネットワーク内での通信を行う目的で考案されました。AutoIP や自己割り当て IP ともよばれます。

    各クラスのプライベート IP アドレス

    グローバル IP アドレスとして確保されていないアドレスです。

    • クラスA: 10.0.0.0/8
    • クラスB: 172.16.0.0/12
    • クラスC: 192.168.0.0/16

    VLSM (Variable Length Subnet Mask)

    可変長サブネットマスク VLSM は「サブネット毎に」異なった長さのサブネットマスクを使用できる技術です。対して、固定長サブネットマスク FLSM (Fixed Length Subnet Mask) ではサブネットマスクがすべてのサブネットで同じ長さである必要があります。VLSM で IP アドレッシングするためには、ルーティングプロトコルが対応している必要があります。対応しているものをクラスレスルーティングプロトコルとよび、対応していないものをクラスフルルーティングプロトコルとよびます。クラスレスルーティングプロトコルには RIPv1 が該当します。

    CIDR (Classless Inter-Domain Routing)

    IP アドレスをクラスで扱うと割り当ての際に無駄が発生する場合があります。CIDR はクラス全体ではなく部分的に IP アドレスを割り当てることで浪費を防ぐ機構です。VLSM と似た概念ですが VLSM は技術で CIDR は機構です。

    クラスの概念を廃したアドレスのことをクラスレスアドレスとよびます。クラスレスアドレスにおけるネットワーク部の長さをプレフィックス長とよびます。プレフィックス長が N のアドレスは *.*.*.*/N と表記されます。これを CIDR 表記とよぶこともあります。

    デフォルトルート

    サブネット間通信の規定の窓口であるデフォルトゲートウェイとは別物です。ルーティングテーブルにおいて 0.0.0.0/0 が宛先となっているエントリのことです。/0であるため、任意の IP アドレスが合致します。ルーティングテーブルのエントリとは「ネットワークアドレス」と「インターフェイスおよびネクストホップの IP アドレス (または直接接続)」の組み合わせです。合致するエントリがなければパケットは破棄されますが、任意の宛先に合致するデフォルトルートをエントリに登録しておくことでパケットの破棄を回避できます。ただし、他に合致するエントリがあれば合致度合いが低いためデフォルトルートは採用されません。これをロンゲストマッチとよびます。

    ルーティングテーブルの管理方法

    • スタティックテーブル: 管理者がエントリを追加します
    • ダイナミックルーティング: ルーティングプロトコル (RIP, OSPF, EIGRPなど) が自動的に各々が好ましいと判断したエントリを追加します。判断基準をメトリックとよびます

    ルーティングプロトコル

    • RIP: 中小規模ネットワークで使用されます
    • OSPF: 大規模ネットワークで使用されます
    • EIGRP: シスコ独自のルーティングプロトコルです (シスコ製品でしか使用できません)

    NAT (Network Address Translation)

    ルータに備えられる IP 変換のための機能です。変換の度に NAT テーブルを更新して IP アドレスの変換情報を保持します。また、NATによって IP ヘッダの送信元アドレスが書き換えられます。変換の際にポート番号の情報まで含めてテーブルに保持する場合を IP マスカレードとよびます。これは NAPT (Network Address Port Translation) や PAT (Port Address Translation) ともよばれます。ポート番号まで含めて保持することで、一つのグローバル IP と複数の LAN 内プライベート IP アドレスの変換が可能になります。

    TCPヘッダ

    送信元ポート番号 16bit + 宛先ポート番号 16bit
    シーケンス (Seq) 番号 32bit  ← セグメントの識別番号
    確認応答 (ACK) 番号 32bit  ← 受信済みセグメントの範囲を示す
    TCPヘッダ長 4bit + 将来の機能拡張用の予約 6bit + コードビット 6bit + 送信側に通知する受信側のウィンドウサイズ 16bit
    エラー検査用のチェックサム 16bit + URGコードビットが有効の場合に参照される緊急ポインタ 16bit
    (オプション 32bit単位で可変長 >= 0)  ← ここを除くとTCPヘッダは 20 バイト
    

    コードビットの詳細

    • URG: Urgent あまり使用されません。緊急データが含まれることを示す
    • ACK: 確認応答 (ACK) 番号フィールドが有効であることを示す
    • PSH: Push バッファリングせずにアプリケーションにすぐに渡すことを要求
    • RST: Reset 接続を強制終了することを相手に通知
    • SYN: Synchronize スリーウェイハンドシェイクによるコネクション確立を要求
    • FIN: Finish コネクションの切断を要求。リセットと異なり相手にお伺いを立てる

    スリーウェイハンドシェイク

    => SYN:1,ACK:0,Seq番号:M,ACK番号:0
    <= SYN:1,ACK:1,Seq番号:N,ACK番号:M+1
    => SYN:0,ACK:1,Seq番号:M+1,ACK番号:N+1
    

    以上のやり取りによってシーケンス番号の初期値 M, N が決定されます。最初のセグメントを特に SYN パケットとよびます。それ以外のセグメントは ACK コードビットが常に 1 であり ACK パケットとよびます。初回 M, N を除く新規セグメントの Seq 番号には、受信した最後のセグメントに含まれる ACK 番号を使用します。ACK 番号はスリーウェイハンドシェイク中は相手のセグメント Seq 番号 K に「K+1」とするだけです。それ以降の通信では、受信したセグメント Seq 番号 K に受信したTCPヘッダを除くデータのバイト数 L を足して ACK 番号が「K+L」のセグメントを返します。データ量が 0 バイトのセグメントに対する返信時には相手のセグメント Seq 番号が「K+0」となり変化しないことになります。データが 0 バイトのセグメントについてはそもそもACKを待つ必要がないためこれで問題になりません。

    通信の終了

    FIN コードビットが 1 の FIN パケットをお互いに送信して通信終了の合意を取ります。

    => ACK:1,FIN:1,Seq番号:K,ACK番号:L
    <= ACK:1,FIN:0,Seq番号:L,ACK番号:K+1 (通信終了の合意)
    
    <= ACK:1,FIN:1,Seq番号:L,ACK番号:K+1
    => ACK:1,FIN:0,Seq番号:K+1,ACK番号:L+1 (通信終了の合意)
    

    宛先ポート番号 16bit の補足

    ポート番号フィールドは 16bit であるため 0-65535 の範囲になります。そのうち 1-1023 はウェルノウンポート番号です。

    • ftp: 20,21
    • telnet: 23
    • smtp: 25
    • http: 80
    • pop3 110

    送信元ポート番号 16bit の補足

    クライアント側のポート番号は自動設定されるのが通常です。ポート番号フィールドは 16bit であるため 0-65535 の範囲が使用可能ではありますが、そのうちランダムポートとよばれる 1025-65535 の範囲から選ばれます。

    MSS (Maximum Segment Size)

    上述の MTU から IP ヘッダと TCP ヘッダを除いた値を MSS (Maximum Segment Size) とよびます。

    [イーサネットヘッダ][MTU以下][イーサネットトレーラ]
    

    における MTU 部分を MSS を用いて表現すると以下のようになります。

    [イーサネットヘッダ][IPヘッダ][TCPヘッダ][MSS以下][イーサネットトレーラ]
    

    UDPヘッダ

    送信元ポート番号 16bit + 宛先ポート番号 16bit
    UDPヘッダとデータの合計 (データグラム) の長さ 16bit + エラー検査用のチェックサム 16bit
    

    宛先ポート番号の補足

    UDP を利用するアプリケーション層のプロトコルとしては DHCP や TFTP、NTP、ルーティングプロトコルの RIP が有名です。それぞれのポート番号はウェルノウンポートの範囲に含まれます。UDP を利用するアプリケーションは「動画や音声などのパケットロスよりもリアルタイム性を重視するもの」や「伝えたい情報量がとても小さくデータグラムにすべて含めることができるため、スリーウェイハンドシェイクを行う TCP を用いると非効率なもの」です。後者には DNS や DHCP が該当します。

    • DHCP: UDP 67,68
    • TFTP: UDP 69
    • NTP: UDP 123
    • RIP: UDP 520
    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    Webエンジニア。Next.jsとVercelでモダンなWeb開発を実践しています。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事

      • Ciscoルータの基本操作
        シスコ社の製品のうち、ルータは Cisco*** という製品名でスイッチは Catalyst*** という製品名です。いずれも *** は機種番号で、数字が小さいほど小規模ネットワーク向けとなっています。例えば資格試験 CCNA Routing and Switching では小規模および中規模ネットワークが対象です。そのため、中小規模のネットワークのルータおよびス
      • BIND 9 ゾーンファイル Dynamic Update の設定方法
        DHCP 環境下などで IP が動的に付与される場合は DNS レコードを動的に更新する必要があります。これを実現する Dynamic Update 機能が BIND 9 には実装されています。使用方法をまとめます。Dynamic Update に対応した DNS を特に Dynamic DNS または DDNS とよぶことがあります。 ゾーンファイルの作成 ローカルホストに example.co...
      • VyOS の基本的なルーティング設定
        本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP)の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネッ...
      • BIND 9.10.2 の公式マニュアルに学ぶ DNS の基本
        DNS の実装としては Internet Systems Consortium (ISC) の Berkeley Internet Name Domain (BIND) が有名です。本ページは公式サイトの Documentation からダウンロードできる v9.10.2 の PDF マニュアルおよび『DNSの仕組み完全解説』から基本事項を抽出してまとめ
      • スタティックルートの設定
        サムネイル画像-73e0bcdf3a
        インターフェイスに IP を設定しただけでは他のデバイスと通信できません。各デバイスにルーティングテーブルを設定する必要があります。ルーティングテーブルの設定方法には動的に自動設定するものと、静的に手動設定するものの二種類があります。ここでは静的に手動設定するスタティックルートの方法を紹介します。 具体的にはまず PC0, PC1, Router0, Router1 それぞれ
        あきらあきら9/7/2021に更新
        いいねアイコン画像0