シラバス情報

授業コード
37710001
講義名
ネットワーク構築演習 [ライブ型・FS]
開講時期
2021年度1Q(前期)
科目分類
演習
科目分野
プログラミング
教員名
山本 雅也
実務家教員
履修年次
3〜4
単位数
2単位
曜日時限
月曜3限、月曜4限

学習目標 (到達目標)
(1) コンピュータシステムにおけるネットワークの役割と重要性を理解し説明できる
(2) 代表的なネットワークアーキテクチャを理解し階層構造の役割を説明できる
(3) TCPやIPとはじめとする各種プロトコルの役割を理解し説明できる
(4) 小規模なローカルネットワークとサーバアプリケーションの構築を通じてリモートホスト上での作業やトラブルシュートに必要な知識を身につける
授業概要 (教育目的)
本講義では、インターネットをはじめとするコンピュータネットワーク全般の基礎知識を身につけることを目的とする。代表的なネットワーク技術であるTCP/IPを学習対象に、パケット通信やネットワークアーキテクチャ、各種プロトコルの仕組み・役割を学ぶ。演習パートでは仮想環境を用いて、Linuxシステムによる小規模ネットワークの構築およびネットワークプログラミングを実施し、各種プロトコルやネットワークアプリケーションの動作を理解する。
履修条件
履修条件緩和
成績評価方法・基準
各講義で提示する課題 40%、期末試験(最終課題)60%
※出席率7割未満の学生については、評価対象としない(不可とする)
期末試験の内容
最終課題の提出とし、提出方法は講義内で案内する
課題の内容
講義毎に課題(レポートもしくは記述式の設問)を提示し採点を行う。
提出期限は次回講義の前日までとし、期限後の提出は大幅に減点されるものとする。

授業内容
第1回
■ ガイダンス

本講義の目的、構成、評価方法を説明する。
各自のPC上に演習環境を構築し、SSH によるリモートアクセスと Linux の基本的な操作方法について学習する。
第2回
■ コンピュータネットワークとTCP/IPの基礎

コンピュータネットワークの基礎と代表的なネットワークアーキテクチャであるTCP/IPについて学習する。
第3回
■ ネットワークインタフェース層

ネットワークインタフェース層の役割と対象プロトコル(Ethernet)について学習する。
パケットキャプチャを用いた実験的な演習を行う。
第4回
■ インターネット層

インターネット層の役割と対象プロトコル(IP、IPv6、ARP、ICMP)について学習する。
関連コマンドを用いた実験的な演習を行う。
第5回
■ トランスポート層

トランスポート層の役割と対象プロトコル(TCP、UDP)について学習する。
ソケット通信によるネットワークプログラミングの演習を行う。
第6回
■ ローカルネットワーク

ルータのはたらきと関連技術・プロトコル(NAT、ポートフォワード、DHCP)について学習する。
LinuxベースのPCルータを構築し、外部と通信可能なローカルネットワークを構築する。
第7回
■ ネームサービス

名前解決の仕組みと対象プロトコル(DNS)について学習する。
権威DNSサーバとフルサービスリゾルバを構築して複雑なDNSへの理解を深める。
第8回
■ Webサービス

Webの仕組みと対象プロトコル(HTTP)について学習する。
Webサーバを構築して簡単なWebアプリケーションを動作させる。

購入が必要な教科書

教科書以外に準備するもの(画材・機材)

参考文献
(1) 基礎からわかるTCP/IPネットワークコンピューティング入門 第3版 / オーム社(ISBN: 9784274050732)
(2) マスタリングTCP/IP 入門編 第5版 / オーム社(ISBN: 9784274068768)
(3) コンピュータネットワーク 第5版 / 日経BP社(ISBN: 9784822284763)
※大学での教科書販売はありません。

教員より履修学生へメッセージ
■ 履修条件

エンジニアリテラシーの単位を取得、または同等の知識を有すること。

■ 演習環境について

演習は各自のPC上に VirtualBox をインストールし、仮想環境に Linux を構築して実施する。各自 VirtualBox の動作要件を満たすコンピュータを準備すること。
* 2021年1月現在、Apple Silicon「M1チップ」を搭載したコンピュータでは VirtualBox が動作せず、今後の対応も未定であるため利用不可とする
講義内では Windows 10 および macOS(10.14 Catalina 以降) を前提としてインストール方法等を解説する。

演習環境となる Linux の利用とコマンド操作の経験があることが望ましい。

■ プログラミング言語について

演習の一環としてPython および PHP によるプログラミングを実施する。
これらのプログラミング言語の経験がない場合には、基本構文を理解できるよう事前に学習しておくこと。
教員連絡先
masaya_yamamoto@dhw.ac.jp