##ネットワークを教えるのは難しい
- 自分でネットワーク(TCP/IP)を教えるときに工夫したことをシェアする。
- 自分は文系出身で、研修でTCP/IPを学んだとき、とても苦労した。
- とりあえず、OSI参照モデルがわからない。。。
- ちょっと変わったやり方なので、あくまで参考までに
##導入:ネットワークがつながるとはどういうことか。
####OSI参照モデルを最初に教えない
- OSI参照モデルは概念的であり、かつ、TCP/IPの考え方とも齟齬があるので、最初には教えない。新人レベルでは知識として知っておくだけでよい。
####クライアントアプリケーションとサービスアプリケーション(デーモン)の役割を最初に教える。
- 最初にIPとは、イーサネットとは、と言われてもゴールが見えない。WebサーバとWebブラウザの簡単な役割を伝える。
クライアント:リクエストを送信して、レスポンスを受け取って受け取ったデータを処理する。
サービス:コンピュータ上に常駐し、リクエストを受け取って、レスポンスをクライアントに返す。
- 目で確認できること、操作して動作検証できることで仕組みを体感させる。
個人のローカルにWebサーバを用意して、HTMLファイルを閲覧できるようにする。URLを指定してアクセスさせる。「http://192.168.x.xx/sample.html」など。
アクセス先のパソコンにsample.htmlが存在し、ファイルが変更されれば、表示が変更されること、アドレスを変更すれば、別のパソコンにアクセスしたりする。
ある程度遊んでもらったら、適宜説明を入れる。
伝えるポイントは
- クライアントアプリとサービスの役割
- コンピュータの住所を示すIPアドレスの存在と設定方法
- コンピュータ上でアプリケーションの宛先を示すポート番号の存在(80と指定したら、消え、9999と指定したら消えずにアクセスできなくなることで体感的に説明できる。)
- あと、強調しておくべきは、物理的配線
大事なことは、クライアントアプリからOSを経由してパケットが送信され、サーバアプリに到達し、サーバからパケットが返却される、「キャッチボールのイメージ」を持ってもらうこと。
普通の初心者は通信をキャッチボールではなく、「そこに行って見に行く、取りに行く」イメージを持っている。
ここらで、「ping」を教えてもいい。IPの細かいところは不要。
####ネットワークが「つながるとき」と「つながらないとき」を体感的に理解させる。
設定やパラメータを操作して、つながらなくなること、つながらない原因とそのエラーメッセージをみせる。
- IPアドレスを変更、または存在しないIPを指定(コンピュータまで到達できない。)
- ポート番号を変更させる。(コンピュータまで到達。OSがアプリを探せない。)
- Webサーバを停止させる。(コンピュータまで到達。OSがアプリを探せない。)
- 存在しないHTMLファイルを指定する。(サーバAPまで到達。APがファイルを探せない。)
- ケーブルを抜く。スイッチの電源を切る
それぞれ、「パケットがどこまで到達できたか」、を「絵」で書かせる。個人で書かせて、小グループで共有させるといい。
時間次第だが、トラブルシューティングの演習をやってもいい。文章でトラブルの状況を説明し、グループで調査方法、解決方法をディスカッションさせる。
また、思考の方向を逆にして、「このように設定したら、どうなるか」という問いかけをしてもいい。
※ちなみに、自分はWindowsのTCP/IPプロトコルスタックを無効にする、ってのもやる。OSレベルで果たしている役割も認識してもらう。OSの機能の復習にもなる。
此処で、応用問題として、別のネットワークアプリケーション(自分はTELNETを使ってやっていた)を利用させる演習をやってもいい。かえって混乱させる危険もあるが、クライアントとサービス、IPアドレスの復習になる。
また、ファイアウォールの説明と演習をやってもいい。ポート番号が理解できていれば、すんなり理解できる。TCP/UDPは簡単な説明でよい。時間によっては、本よんどけ、でよい。
重要なことは理論的な理解を実際の操作、画面上の値、メッセージと連動させること。ネットワークの難しさの源泉は、目に見えないこと。自分の理解の正しさを目に見える形で検証できないこと。
ここまでの内容で大体1日〜2日(演習の量による)。
一応OSI参照モデルを説明したい場合は、個人的には最後に、知識として知っておいてね、って感じでやる程度。新人の最初はこれでいいと思う。
##IPの仕組みについて教えるとき
教える内容
- IPの構造(IPアドレス、サブネットマスク)
- ルータ(L3スイッチ)の役割とルーティングテーブル
- DHCP
##OSI第2層及びイーサネットについて教えるとき
教える内容
- MACアドレスとCSMA/CD
- ARP
- スイッチの役割