LAN/WAN
LAN(local aria network)
- 小規模な地域(家庭やオフィスなど)に限定されたネットワークで、複数のコンピューターを相互接続している
- コンピューター同士をLANケーブルで結ぶ
WAN(wide area network)
- 離れた場所(都市、国、または世界を跨ぐ)にあるLANとLANを結んだネットワーク
- LAN同士を通信回線で結ぶ
TCP/IP, UDP
IP(Internet Protocol)
- インターネットにおいて情報の伝達を行なう手順 (プロトコル)
- 送り先とデータからなるパケットを送るだけの簡単な仕組み
- ping コマンドでデータが送信され、データを受けた機器 (サーバやルータなど) から確認メッセージ かが返ってくるかを確認できる
TCP(Transmission Control Protocol)
- IP(Internet Protocol) の仕組みを使ってデータを送るプロトコル。異なるネットワーク間で情報をやり取りするための規則や手順を定義している
UDP(User Datagram Protocol)
- エラー確認やデータの再送制御は行わないが、その分データを高速に送ることができる→小さなデータや映像のような多少欠損しても問題なく、信頼性よりも速度を求められる通信に適している。
pingコマンド
- Packet InterNet Groper(パケットインターネット探査者)の略。
- $ ping ターゲット で表記:ターゲット (ホスト名や IP アドレス) にデータを送り、返答が戻るまでの時間を表示する。
- -c オプションを付けて、pingを発行する回数を指定できる。
$ ping 192.168.1.1 (192.168.1.1 へ ping を送信)
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=30 time=1.01 ms (1.01m 秒で返答があった)
64 bytes from 192.168.1.1: icmp_seq=2 ttl=30 time=0.914 ms (0.914m 秒で返答があった)
IPアドレス
TCP/IP でデータを送受信するには発送元と発送先の場所を表すアドレスが必要 →IPアドレスの導入
IPアドレスは、ネットワーク上の住所。
IPv4(Internet Protocol version 4) と IPv6 という 2 つのプロトコルが使われている。
IPv4(Internet Protocol version 4)
- 4バイト (16進数で8桁) で表せるアドレスで、4 バイトのアドレスは 1 バイト (16進数で2桁) ごとで10進数に変換してでつないで表記する。
- グローバルIPアドレス:プライベートなIPアドレスを除いたIPアドレス。NICに管理されていて、許可なく利用できない。
- 1バイト(Byte):8桁の2進数=8ビット(Bit):1桁の2進数
IPアドレス=ネットワークアドレス(どのネットワーク?)+ホストアドレス(どのPC?)。つまり、どのネットワークの、どのコンピューターかを表現している。
サブネットマスク(subnet mask)
- IPアドレスのどの部分がネットワーク部で、どの部分がホスト部かを示す情報。
- サブ(=部分)ネット(=ネットワーク)マスク(=覆い隠す)→ネットワーク部とホスト部を区別する
- IPアドレスと同じ形式で表され、ネットワークアドレス部分には”255″、ホストアドレス部分には”0″が入る。
IPアドレス: 192.168.1.10
サブネットマスク: 255.255.255.0
----------------
ネットワークアドレス: 192.168.1
ホストアドレス: .10
プライベートIPアドレス
インターネット上では使用されず、ローカルネットワーク内でのみ使われる特別なIPアドレス範囲。
ローカルネットワーク内で使える、自分たちで勝手に決めていいIPアドレス。
例えば、192.168.1.10
はプライベートIPアドレス。このIPアドレスはインターネット上で一意ではなく、ローカルネットワーク内でのみ意味を持つ。インターネット全体で一意である必要がなく、ローカルネットワーク内でのみ一意であれば良い
プライベートIPアドレスが同じでも良い理由
家庭のネットワークでコンピュータが 192.168.1.10
というプライベートIPアドレスを持っていても、別の場所(例えば職場)で別のネットワークが存在し、そのネットワーク内の全く別のコンピュータが同じ 192.168.1.10
というIPアドレスを持っていても問題ない。
これらのネットワークは互いに独立しており(異なるグローバルIPアドレス(インターネット上で一意のアドレス)を介してインターネットに接続されている)、プライベートIPアドレスが衝突することはない。
インターネット上では、各ローカルネットワークはルーターを通じて接続される。このルーターは、グローバルIPアドレスを持っており、インターネット上でユニーク。
ローカルネットワーク内のデバイスがインターネットにアクセスする際、その通信はルーターを通じて行われ、ルーターは「NAT(Network Address Translation)」と呼ばれるプロセスを使用して、プライベートIPアドレスをグローバルIPアドレスに変換する。
NATは、表形式でプライベートIPアドレスとグローバルIPアドレスの関係を記載している。
| ローカルIPアドレス(プライベートIP) | グローバルIPアドレス |
|-------------------------------------|---------------------|
| 192.168.1.10 | 203.0.113.5 |
| 192.168.1.11 | 203.0.113.5 |
| 192.168.1.12 | 203.0.113.5 |
このNATプロセスにより、複数のデバイスが同じグローバルIPアドレスを共有してインターネットにアクセスでき、また、外部から見た場合、どのプライベートIPアドレスがどの通信を行っているかを区別することができる。したがって、異なるローカルネットワークで同じプライベートIPアドレスを使用していても、グローバルIPアドレスが異なれば、インターネット上での通信が混同することはない。
CIDR (サイダー:Classless Inter-Domain Routing)表記
IP アドレスのネットワーク部とホスト部の境目を/ (スラッシュ)の後に続くビット数で指定する方法。IPアドレスとサブネットマスクを簡潔に表現するために導入された。
「IPアドレス/プレフィックス長」という表記
- プレフィックス長:プレフィックスはprefixで、文字通り「接頭辞」の意味。何の接頭辞かというと、IPアドレスの接頭辞に該当するのはネットワークアドレス。つまり、最初の何ビット分がネットワークアドレスかを示している。
例)CIDR表記「192.168.1.0/24」
ネットワークアドレス: 192.168.1.0
サブネットマスク: 255.255.255.0
プレフィックス長: /24
ネットワーク部分: 192.168.1 (24ビット)
ホスト部分: .0 (残り8ビット)
ホスト部分で表現できる(PCに割り当てられる)アドレスの数:256個
IPv4の場合、ホスト部分のアドレス数は、2の(32−プレフィックス長)乗となる。今回の場合は、2の32-24=8乗なので、256。
つまり、LAN内で実際にデバイスに割り当てることができるIPアドレスの数は256。
正確には、サブネットの最初のアドレス(ネットワークアドレス)と最後のアドレス(ブロードキャストアドレス)はデバイスに割り当てられない。従って、実際にデバイスに割り当てることができるアドレスの数は、総数から2を引いた数=254となる。
ifconfig:IPアドレス確認(mac)
プライベートIPアドレス
ipconfigで下記オプションをつける。macの場合、ipconfigのみで出力しようとすると、コマンドと引数をつけるように言われる。
ipconfig
: ネットワーク構成情報を表示するためのコマンドラインユーティリティgetifaddr
: 指定したネットワークインターフェースのIPアドレスを取得するサブコマンドen0
: 特定のネットワークインターフェースを指定するためのインターフェース名。macOSやLinuxでは、ネットワークインターフェースは通常、en0
、eth0
、wlan0
などの名前で識別される。en0
は通常、有線Ethernet接続を表す
$ ipconfig getifaddr en0
198.168.XXX.XXX
もしくは、ifconfigを入力。ifconfigの場合は、ipconfigと異なり、単体コマンドで結果を出力してくれる。しかし、この場合、ネットワークインターフェースに関する多岐にわたる情報が出力される。
$ ifconfig
# 下記はダミー出力
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether aa:bb:cc:dd:ee:ff
inet 192.168.56.101 netmask 0xffffff00 broadcast 192.168.56.255
- en0: これはネットワークインターフェースを識別する名前。en0 は通常、macOS デバイスの最初のイーサネットまたはWi-Fiインターフェースを指す。
- flags: 各フラグは、インターフェースの特定の状態や機能を示す。例えば、
UP
はインターフェースが動作中であることを意味し、RUNNING
は有効なデータリンクが存在することを示す。 - mtu 1500: MTU(Maximum Transmission Unit)は、ネットワークを介して一度に送信できる最大データサイズ。1500は標準的なイーサネットのMTU値。
- ether aa:bb:cc:dd:ee:ff: インターフェースのMACアドレス。MACアドレスは、ネットワーク上のデバイスを一意に識別するためのアドレス。
- inet 192.168.56.101: デバイスがローカルネットワーク内で使用しているIPアドレス(IPv4)。
- netmask 0xffffff00: サブネットマスクです。0xffffff00 は、255.255.255.0 と同等。
- broadcast 192.168.56.255: ブロードキャストアドレス。同じローカルネットワーク内の全てのデバイスにデータを送信するために使用されるアドレス。
グローバルIPアドレス
ipecho.net/plain:
ipecho.net
は自分のIPアドレスを返すためのシンプルなWebサービスを提供している。/plain
パスは、余計な装飾やHTMLなしで、純粋なテキスト形式でIPアドレスを返す。
curl ipecho.net/plain; echo
DNS(Domain Name System)
- インターネット上でドメイン名をIPアドレスに変換するためのシステム。
- 人間は記憶しやすいドメイン名(例:www.example.com)を使ってWebサイトにアクセスするが、コンピュータは数値のIPアドレス(例:192.0.2.1)を使って通信する。
- DNSがなければ、ユーザーはお気に入りのウェブサイトにアクセスするためにIPアドレスを直接記憶しておく必要があり、インターネットの利便性は大幅に低下する。
ポート番号
TCP/IP で通信をする場合は、IP アドレスに加えて、通信を行う特定のサービスやアプリケーションを識別するためにポート番号を使う。
Webサーバーとメールサーバーの例
ある企業には、Webサーバーとメールサーバーが1台のサーバー上で動作していて、このサーバーのIPアドレスが「203.0.113.5」だとする。
- Webサーバー: 通常、WebサーバーはHTTPプロトコルを使用し、デフォルトでポート80番を使用する。したがって、このサーバー上のWebサービスにアクセスするためには、IPアドレスとポート番号を組み合わせて「203.0.113.5:80」と指定する。
- メールサーバー: メールサーバーは通常、SMTPプロトコルでメールの送信を管理し、デフォルトでポート25番を使用する。このサーバー上のメールサービスにアクセスするには、「203.0.113.5:25」と指定する。
ポート20(FTP データ): File Transfer Protocol (FTP) データ転送用。FTPはファイルのアップロードやダウンロードに使用されるプロトコルで、データ転送にはポート20が使われる。
ポート21(FTP 制御): File Transfer Protocol (FTP) 制御(コマンド)転送用。セッションの確立や制御にはポート21が使用される。
ポート22(SSH): Secure Shell (SSH)。リモートサーバーへの安全なログインやデータ通信、その他の安全なネットワークサービスを提供する
ポート23(Telnet): Telnetプロトコル。リモートサーバーへのコマンドラインインターフェイスアクセスに使用されるが、暗号化されていないためセキュリティが低く、SSHに置き換えられつつある。
ポート25(SMTP): Simple Mail Transfer Protocol (SMTP)。メールの送信に使われるプロトコル。
ポート53(DNS): Domain Name System (DNS)。ドメイン名とIPアドレスを対応づけるために使用される。
ポート80(HTTP): Hypertext Transfer Protocol (HTTP)。Webサーバーとクライアント間の通信に使用されるプロトコル。
ポート443(HTTPS): HTTP over SSL/TLS、またはHypertext Transfer Protocol Secure (HTTPS)。HTTP通信を暗号化してより安全にするプロトコル。
通常、ユーザーがWebブラウザでHTTPS通信を行う際には、IPアドレスやポート番号を直接入力する必要はない。ブラウザはHTTPS通信のデフォルトポートとしてポート443を自動的に使用する。しかし、実際にはそのサーバーのIPアドレスとポート443を使用して通信が行われる。
例えば、ユーザーが https://www.example.com
にアクセスする場合、ブラウザは以下のことを行う。
- DNSサーバーが
www.example.com
に対応するグローバルIPアドレスを見つける。仮に203.0.113.5
が返されるとする。 - ブラウザは、取得したIPアドレスのポート443、すなわち
203.0.113.5:443
に自動的に接続を試みる。 - サーバーはリクエストを受け取り、セキュアなHTTPS通信を通じて、必要なデータ(ウェブページの内容など)をブラウザに送信する。
コメント