在庫システムに入れない朝
大阪の物流会社の倉庫で、朝から在庫システムが開けません。
情報システム担当の人は、まず二つのことを確かめます。サーバーの機械は動いているか。その中の在庫システムは動いているか。
ネットワークでは、この二つを別々の番号で表します。このレッスンでは、その二つの番号を読めるようにします。
このレッスンのゴール
メモ
IPアドレスとポートが何かを説明できる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| ネットワーク | つながってデータをやりとりする機器の集まり | |
| サーバー | 頼まれた仕事に応えるコンピューター | |
| クライアント | サーバーに仕事を頼む側 | |
| IPアドレス | ネットワーク上の機器の番号 | 192.168.10.20 |
| ポート | 機器の中のプログラムの番号 | 443 |
| サービスの住所 | IPアドレスとポートの組み合わせ | 203.0.113.25:443 |
学生が入力するセルは、このプレビューでは空白です。
IPアドレスは機器を指す
ネットワークにつながる機器には、それぞれIPアドレスがあります。手紙の住所のようなものです。
よく使う形は、0から255までの数字を四つ、点で区切ったものです。
同じネットワークの中で、二つの機器が同じIPアドレスを使うことはできません。使うと、データがどちらに届くか決まらなくなります。
例: 倉庫のネットワーク
| 機器 | IPアドレス | 役割 |
|---|---|---|
| 在庫サーバー | 192.168.10.20 | 在庫システムが動く |
| 勤怠サーバー | 192.168.10.21 | 出勤と退勤を記録する |
| 事務所のパソコン | 192.168.10.105 | クライアント |
| プリンター | 192.168.10.50 | 伝票を印刷する |
| ルーター | 192.168.10.1 | 外のネットワークとつなぐ |
学生が入力するセルは、このプレビューでは空白です。
ポートはプログラムを指す
一台のサーバーでは、いくつものプログラムが同時に動いています。
そこで、プログラムごとにポートという番号を付けます。IPアドレスが建物の住所なら、ポートは部屋番号です。
よく使うサービスには、決まった番号があります。たとえば、暗号化したWebは443番です。
仕事でよく見るポート
| ポート | サービス | 使う場面 |
|---|---|---|
| 22 | SSH | サーバーに遠くからログインする |
| 80 | HTTP | 暗号化しないWeb |
| 443 | HTTPS | 暗号化したWeb |
| 25 | SMTP | メールを送る |
| 5432 | PostgreSQL | データベース |
学生が入力するセルは、このプレビューでは空白です。
やってみよう: 一台で動くもの
# 倉庫のサーバー一覧をファイルに書いておきます
printf "在庫システム 192.168.10.20:443\n勤怠システム 192.168.10.21:443\n管理用ログイン 192.168.10.20:22\nプリンター 192.168.10.50:9100\n" > services.txt
# 192.168.10.20 で動いているものを探します
grep "192.168.10.20" services.txt
# 192.168.10.20 を :443 に変えて、もう一度実行してみましょう
よくある思い違い
注意
IPアドレスが応答すれば、システムも動いている、と考える人が多いです。実際は、機械が動いていても、プログラムが止まっていることがあります。IPアドレスとポートは、別々に確かめます。
両側にIPアドレスとポートがある
つながりには、いつも両側があります。サーバー側は、決まったポートで頼みごとを待っています。
クライアント側も、自分のIPアドレスとポートを持っています。こちらのポートは、その場で大きな番号が自動で選ばれます。
書くときは「IPアドレス:ポート」の形にします。
やってみよう: 住所を分ける
address = "203.0.113.25:443"
# 最後の「:」で、機械の番号とプログラムの番号に分けます
place = address.rfind(":")
ip = address[:place]
port = int(address[place + 1:])
print("IPアドレス:", ip)
print("ポート:", port)
# address を "198.51.100.7:22" に変えて、実行しましょう