サイズ: 368
コメント:
|
サイズ: 9219
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 15: | 行 15: |
* MACアドレスとping | * MACアドレス |
行 17: | 行 17: |
* ICMP * ルーティングとスイッチング |
|
行 18: | 行 20: |
* ルーティングとスイッチング | * その他のプロトコル = 前回の復習 = * 小テストをやりましたが。。。 * サブネットマスクの理解が微妙だったので、もう一度説明します = ネットワークの構成要素 = * NIC * ブリッジ * ルータ * ゲートウェイ = データリンクとは = * 前回の話よりもっと物理的な部分に近い話をしましょう * 有線通信の本質は、電気信号を相手に送信すること * ここの話は今回はしない * 電気信号を送信するという話と、ネットワークでの通信という話の間にあるもの * 取り合えずコンピュータとコンピュータがまともに通信できる方法を確立する必要 * →データリンク = MACアドレス = * データリンクに接続しているコンピュータを識別するためのアドレス * NICについている == MACアドレスの構造 == * 48bitsの長さ * 1bit...ブロードキャストアドレスかそうでないか * 3~24bit...ベンダ識別子 * 25~48bit...ベンダ内での識別子 * 唯一性が保証されている = イーサネット = * データリンクを実現するための現在もっとも主流の方式 * IEEE802.3に規定されている * 基本的にCSMA/CD方式を採用(一部では採用していない) * データを送信したくなったら早い者勝ちでデータを送りつける * 全二重通信と半二重通信 = イーサネットのフレーム構造 = * イーサネットではデータの一塊をフレームと呼ぶ * 宛先MACアドレスと送信元MACアドレス * SNAP * プロトコルを表すためのもの * FCS * フレームが壊れているかどうかをチェックするためのbit = IPとデータリンクの関係 = * IPは最終目的地までの通信を提供する * データリンクは1区間(1ホップ)の通信を提供する * IPはホップバイホップルーティングしている * 1区間毎にルートが決定され、パケットが転送される * こういった行き当たりばったりな方法をad hocという = IPアドレスとMACアドレスの変換 = * 宛先IPアドレスが分かっている状態で、次にパケットを送るべきコンピュータのMACアドレスを調べたい * ARPと言うものを使う = ARP = * ARP要求パケットをブロードキャスト * ARP応答パケットをそれに対して返す * ARPによって得られたMACアドレスはキャッシュされる = RARP = * ARPの逆で、MACアドレスからIPアドレスを得る = ルーティング = * IPアドレスだけでは目的地にパケットを届けること派できない * 「この宛先に送るためには、ここにおくればよい」という情報が必要 * こうした経路を決める制御をルーティングという * IPで通信する機器は必ずこのルーティングのための表(ルーティングテーブル)を持っている * ルーティングテーブルの作り方 * ダイナミックルーティングとスタティックルーティング * 驚くことにIPそのものにはルーティングテーブルの作り方は決められていない!! = IPアドレスとルーティング = * ルーティングテーブルにはネットワークアドレスと次にどのルータにパケットを送信するべきかがかかれている * 一致するネットワークアドレスが複数ある時はより長いほうに送信する == デフォルトルート == * 一致するものがないときにはここにおくることにする * 無駄な記述を減らせる * 0.0.0.0/0 または defaultとかく == ホストルート == * IPアドレス/32 * IPアドレス全てを使ってルーティングを決める == ループバックアドレス == * 前回やったね! = ルーティングテーブルの集約 = * より効率の良いルーティングテーブルを作るには = ルーティングを理解するためのコマンド = * netstat -r * traceroute = スイッチング = * いちいち全部にデータを送るのは極めて無駄 * スイッチングハブというものがあってな * つながっているコンピュータのMACアドレスを学習して、必要なポートにだけデータを出力する = IPアドレスとMACアドレス2つも必要? = * 別のデータリンクにつながっているコンピュータにデータを送ることを考えよう * ルータを跨がなければいけないので、相手のMACアドレスが分かっていても直接データを送ることはできない * どこのルータを経由して相手にデータを送るかという情報が必要 * ルータのMACアドレスを知る必要がある * ARPが必要になる * MACアドレスしかないとどうなるか * スイッチが学習するまではとりあえず世界中にパケットが流れていくことになる * 想像してみるとおぞましい * 両方が協調することが必要 = ICMP = * パケットが届かなかったときにこのプロトコルを使って障害の通知が行われる = ICMPメッセージ = * おもにエラーを通知するためのものと診断を行うためのもの == ICMP Destination Unreachable Message == * 相手に到達不能であることを示す == ICMP Redirect Message == * 最適な経路ではなかったことを示す == ICMP Time Exceeded Message == * TTL == ICMP Echo Request Message == * pingはこれを使っている = VLAN = * ネットワークをつなぎかえずにネットワークの構造を変える技術 = OSI7層参照モデル = * ネットワークは階層構造になっている * ネットワークを利用したプログラムを作りたいとき、電気信号の挙動に気を配るのは嫌だ * おのおの担当領域を決めて、それぞれがそれぞれの役割を果たすようにしている * アプリケーション層 * プレゼンテーション層 * セッション層 * トランスポート層 * ネットワーク層 * データリンク層 * 物理層 * 上3つは一括りにしてしまうこと多数 * DNSやHTTPなどアプリケーションの実装に関わる層 * トランスポート層はデータをアプリケーション間でどう通信するかを規定している * ネットワーク層はネットワークを構築する上で必要なルールを決めている * データリンク層と物理層は最低限通信するために必要なルールを定めている = OSI7層参照モデルとデータの流れ = * 絵を描いて説明します = その他のプロトコル = * 今回の講習では一部のプロトコルしか扱わなかったが、他のプロトコルについてもどういうものなのかぐらいは覚えてほしい * DHCP * NTP * SMTP, POP3, IMAP * FTP = DHCP = * ネットワークにつないだりつながなかったりする機器のことを考えよう * e.g. MMAの無線LAN * いちいちコチラ側でIPアドレスを決めるのは面倒臭い * →予めIPアドレスのストックを用意しておいて、必要になったらそれを割り当てるようにすればいいじゃん!俺天才 * →→DHCP = DHCPの動作原理 = * DHCPのためのサーバを用意する * サーバには予め、割り当てるIPアドレス・サブネットマスク・デフォルトゲートウェイを設定しておく。 * DHCPでIPアドレスを割り当ててほしいコンピュータはまずDHCP Discoverメッセージを送る * DHCPサーバのアドレスおよび自分のアドレスがわからないので、255.255.255.255を送信先、0.0.0.0を送信元としてとりあえず全員に送りつける * DHCPサーバはそれを受け取ったらDHCP Offerメッセージを返す * DHCP Offerメッセージを受け取ったら、それを受けてDHCP Requestメッセージを送る * DHCP Requestを受けて、DHCP Ackメッセージを送る = 動的割り当てと静的割り当て = == 動的割り当て == * 一定の期限付きで、IPアドレスをストックから適当に割り当てる方法 * 期限が来たらIPアドレスを放棄するか、期限の延長を求める == 静的割り当て == * クライアントのMACアドレスに対応するIPアドレスを決めておき、それを要求に応じて割り当てる方法 * つなげば必ず同じIPアドレスが割り振られる |
今回やること
- 前回の復習
- MACアドレス
- ARP
- ICMP
- ルーティングとスイッチング
- OSI7層参照モデル
- その他のプロトコル
前回の復習
- 小テストをやりましたが。。。
- サブネットマスクの理解が微妙だったので、もう一度説明します
ネットワークの構成要素
- NIC
- ブリッジ
- ルータ
- ゲートウェイ
データリンクとは
- 前回の話よりもっと物理的な部分に近い話をしましょう
- 有線通信の本質は、電気信号を相手に送信すること
- ここの話は今回はしない
- 電気信号を送信するという話と、ネットワークでの通信という話の間にあるもの
- 取り合えずコンピュータとコンピュータがまともに通信できる方法を確立する必要
- →データリンク
MACアドレス
- データリンクに接続しているコンピュータを識別するためのアドレス
- NICについている
MACアドレスの構造
- 48bitsの長さ
- 1bit...ブロードキャストアドレスかそうでないか
- 3~24bit...ベンダ識別子
- 25~48bit...ベンダ内での識別子
- 唯一性が保証されている
イーサネット
- データリンクを実現するための現在もっとも主流の方式
- IEEE802.3に規定されている
- 基本的にCSMA/CD方式を採用(一部では採用していない)
- データを送信したくなったら早い者勝ちでデータを送りつける
- 全二重通信と半二重通信
イーサネットのフレーム構造
- イーサネットではデータの一塊をフレームと呼ぶ
- 宛先MACアドレスと送信元MACアドレス
- SNAP
- プロトコルを表すためのもの
- FCS
- フレームが壊れているかどうかをチェックするためのbit
IPとデータリンクの関係
- IPは最終目的地までの通信を提供する
- データリンクは1区間(1ホップ)の通信を提供する
- IPはホップバイホップルーティングしている
- 1区間毎にルートが決定され、パケットが転送される
- こういった行き当たりばったりな方法をad hocという
- 1区間毎にルートが決定され、パケットが転送される
IPアドレスとMACアドレスの変換
- 宛先IPアドレスが分かっている状態で、次にパケットを送るべきコンピュータのMACアドレスを調べたい
- ARPと言うものを使う
ARP
- ARP要求パケットをブロードキャスト
- ARP応答パケットをそれに対して返す
- ARPによって得られたMACアドレスはキャッシュされる
RARP
- ARPの逆で、MACアドレスからIPアドレスを得る
ルーティング
- IPアドレスだけでは目的地にパケットを届けること派できない
- 「この宛先に送るためには、ここにおくればよい」という情報が必要
- こうした経路を決める制御をルーティングという
- IPで通信する機器は必ずこのルーティングのための表(ルーティングテーブル)を持っている
- ルーティングテーブルの作り方
- ダイナミックルーティングとスタティックルーティング
- 驚くことにIPそのものにはルーティングテーブルの作り方は決められていない!!
- ルーティングテーブルの作り方
IPアドレスとルーティング
- ルーティングテーブルにはネットワークアドレスと次にどのルータにパケットを送信するべきかがかかれている
- 一致するネットワークアドレスが複数ある時はより長いほうに送信する
デフォルトルート
- 一致するものがないときにはここにおくることにする
- 無駄な記述を減らせる
- 0.0.0.0/0 または defaultとかく
ホストルート
- IPアドレス/32
- IPアドレス全てを使ってルーティングを決める
ループバックアドレス
- 前回やったね!
ルーティングテーブルの集約
- より効率の良いルーティングテーブルを作るには
ルーティングを理解するためのコマンド
- netstat -r
- traceroute
スイッチング
- いちいち全部にデータを送るのは極めて無駄
- スイッチングハブというものがあってな
- つながっているコンピュータのMACアドレスを学習して、必要なポートにだけデータを出力する
IPアドレスとMACアドレス2つも必要?
- 別のデータリンクにつながっているコンピュータにデータを送ることを考えよう
- ルータを跨がなければいけないので、相手のMACアドレスが分かっていても直接データを送ることはできない
- どこのルータを経由して相手にデータを送るかという情報が必要
- ルータのMACアドレスを知る必要がある
- ARPが必要になる
- ルータのMACアドレスを知る必要がある
- MACアドレスしかないとどうなるか
- スイッチが学習するまではとりあえず世界中にパケットが流れていくことになる
- 想像してみるとおぞましい
- 両方が協調することが必要
ICMP
- パケットが届かなかったときにこのプロトコルを使って障害の通知が行われる
ICMPメッセージ
- おもにエラーを通知するためのものと診断を行うためのもの
ICMP Destination Unreachable Message
- 相手に到達不能であることを示す
ICMP Redirect Message
- 最適な経路ではなかったことを示す
ICMP Time Exceeded Message
- TTL
ICMP Echo Request Message
- pingはこれを使っている
VLAN
- ネットワークをつなぎかえずにネットワークの構造を変える技術
OSI7層参照モデル
- ネットワークは階層構造になっている
- ネットワークを利用したプログラムを作りたいとき、電気信号の挙動に気を配るのは嫌だ
- おのおの担当領域を決めて、それぞれがそれぞれの役割を果たすようにしている
- アプリケーション層
- プレゼンテーション層
- セッション層
- トランスポート層
- ネットワーク層
- データリンク層
- 物理層
- 上3つは一括りにしてしまうこと多数
- DNSやHTTPなどアプリケーションの実装に関わる層
- トランスポート層はデータをアプリケーション間でどう通信するかを規定している
- ネットワーク層はネットワークを構築する上で必要なルールを決めている
- データリンク層と物理層は最低限通信するために必要なルールを定めている
OSI7層参照モデルとデータの流れ
- 絵を描いて説明します
その他のプロトコル
- 今回の講習では一部のプロトコルしか扱わなかったが、他のプロトコルについてもどういうものなのかぐらいは覚えてほしい
- DHCP
- NTP
- SMTP, POP3, IMAP
- FTP
DHCP
- ネットワークにつないだりつながなかったりする機器のことを考えよう
- e.g. MMAの無線LAN
- いちいちコチラ側でIPアドレスを決めるのは面倒臭い
- →予めIPアドレスのストックを用意しておいて、必要になったらそれを割り当てるようにすればいいじゃん!俺天才
- →→DHCP
DHCPの動作原理
- DHCPのためのサーバを用意する
- サーバには予め、割り当てるIPアドレス・サブネットマスク・デフォルトゲートウェイを設定しておく。
- DHCPでIPアドレスを割り当ててほしいコンピュータはまずDHCP Discoverメッセージを送る
- DHCPサーバのアドレスおよび自分のアドレスがわからないので、255.255.255.255を送信先、0.0.0.0を送信元としてとりあえず全員に送りつける
- DHCPサーバはそれを受け取ったらDHCP Offerメッセージを返す
- DHCP Offerメッセージを受け取ったら、それを受けてDHCP Requestメッセージを送る
- DHCP Requestを受けて、DHCP Ackメッセージを送る
動的割り当てと静的割り当て
動的割り当て
- 一定の期限付きで、IPアドレスをストックから適当に割り当てる方法
- 期限が来たらIPアドレスを放棄するか、期限の延長を求める
静的割り当て
- クライアントのMACアドレスに対応するIPアドレスを決めておき、それを要求に応じて割り当てる方法
- つなげば必ず同じIPアドレスが割り振られる