インターネットプロトコルの基礎
プロトコル
- CP同士がやり取りするためには、共通のルールが必要
TCP/IP
- インターネットにおけるプロトコル
- 4つの層に分けて通信のフローを管理する
- 送信側は、データをいくつかの小さなデータに分割し、ヘッダを付け加えたデータ「パケット」を送信する
- ヘッダの情報をもとに、パケットが受信側に届けられる
- 受信側は、パケットを受け取ったら、それぞれの層でヘッダを取り除き、元のデータを復元する
主な角層のプロトコル
層 |
役割 |
プロトコル・通信規格 |
負荷されるヘッダ |
アプリケーション層 |
ネットワークアプリケーションの制御 |
FTP, HTTP, SSH など |
|
トランスポート層 |
データ転送の制御 |
TCP, UDP |
ポート番号 |
インターネット層 |
宛先や伝送経路の制御 |
IP, ICMP, ARP |
IPアドレス |
ネットワークインターフェース層 |
物理的な伝送路の制御 |
Ethernet, IEEE 802.11, PPP |
MACアドレス |
トランスポート層のプロトコル
ポート番号
- アプリケーション層で使われたプロトコルの識別をする
IPアドレスとサブネットマスク
IPアドレス
IPアドレス(IPv4)
- 32ビットのアドレスを8ビット×4に分け、10進数で表記する
サブネットマスク
CIDR記法
IPアドレスクラス
クラス |
上位ビット |
第一オクテットの値 |
ネットワークアドレス部の長さ |
A |
0 |
0-127 |
8ビット以上 |
B |
10 |
128-191 |
16ビット以上 |
C |
110 |
192-223 |
24ビット以上 |
サブネット分割
- ホストアドレス部の部分をネットワークアドレス部として使う
IPv6
- 128ビットのアドレスを16ビット×8に分け、16進数で表記する
IPv6の省略記法
ネットワーク構成
ネットワークで使えるアドレス
ブロードキャストアドレス
- 同じネットワーク内の全てのホストに送信できるアドレス
複数ネットワークの構成
- 異なるネットワーク範囲に接続する場合は、ルーターを使用する
ホスト名の設定
IPコマンド
・ip addr: IP アドレスの設定を表示・設定
・ip addr show: IP アドレスの設定を表示
・ip addr add [IPアドレス] dev [インターフェイス名]: IP アドレスを設定
・ip addr del [IPアドレス] dev [インターフェイス名]: IP アドレスを削除
・ip route: ルーティングテーブルの設定を表示・設定
・ip route add [IPアドレス] via [転送先]: [IP アドレス]から[転送先]へパケットを送信するようルーティングテーブルを設定
・ip route del [IPアドレス]: ルーティングテーブルを削除
ifconfigコマンド
- インターフェイスの設定を確認・設定する
- ifconfig [インターフェイス名] [IP アドレス]: IP アドレスを設定
nmcliコマンド
- 設定ファイルを編集をコマンドラインから行う
- nmcli [オブジェクト] [サブコマンド] [引数]
routeコマンド
- デフォルトゲートウェイアドレスの管理に使う昔からあるコマンド
・ip route コマンドや route コマンド、 nmcli コマンドで設定・参照できる
・route コマンドは昔から利用されてきたコマンド
・ip route コマンド、 route コマンドは、再起動で設定がリセットされる
ネットワークの問題の解決
ICMP
- ICMP: インターネット層のプロトコル
- ICMP: メッセージはネットワークの問題解決に役立つ
pingコマンド
- ICMPパケットを送信して、指定ホストと疎通できるか確認
デフォルト
$ ping <ホスト名または IP アドレス>
Ctrl + C で終了
パケット数指定
$ ping -c <送信するパケット数> <ホスト名または IP アドレス>
tracerouteコマンド
- ホストに辿りつくまでに経由したルーターの一覧を表示する
- traceroute -I <ホスト名または IP アドレス>
tracepathコマンド
- 宛先となるホストに到達するまでの経路を出力する
- tracepath <ホスト名または IP アドレス>
ssコマンド
オプション |
説明 |
-a |
全ての通信を表示 |
-l |
待機ポートを表示 |
-n |
名前を解決せず表示 |
-t |
TCP通信を表示 |
-u |
UDP通信を表示 |
-p |
対応するPIDを表示 |
nc(ncat)コマンド
参考サイト
新・Linux入門編9(LinuC対策版): ネットワークの基礎