到達目標
TCP/IPはインターネットの高性能なパケット通信を実現するプロトコルとして利用され続けている. 本授業の前半では, TCPやIPのヘッダを直接操作するプログラムでの実験により, 各プロトコルのヘッダの意味やプロトコルの仕組みを理解する. 加えて, 各プロトコルの特性, 問題点, 運用時の注意点を学ぶ. さらに, 後半では, パケットを中継しながらネットワークの仕組みを理解するのと同時に, リンクレイヤーでパケットを扱う方法を主眼としている. そのために, ブリッジやルータを自作し, 実際にパケットを中継しながらイーサネットの仕組みを理解する.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 標準的な到達レベルの目安(可) |
プロトコルスタック | プロトコルスタックを実装できる | プロトコルスタックの内部処理について説明できる | パケット交換の概要を説明できる |
ソケットプログラミング | ソケットを用いたUDPおよびTCP通信ができる | ソケットシステムコールについて説明できる | ソケットの概要を説明できる |
ブリッジ | ブリッジを実装できる | ブリッジが実際に行う処理について説明できる | ブリッジの機能を説明できる |
ルータ | ルータを実装できる | ルータが実際に行う処理について説明できる | ルータの機能を説明できる |
学科の到達目標項目との関係
教育方法等
概要:
前半は, 標準的なLinux上でソケットAPIを使いながら, TCP/IPによる通信アプリケーションを作成する. 後半は, 直接Ethernetパケットを扱い, ルーターを実装することを主な目的とする. その過程で, 各プロトコルの使用法, 特性, 注意点を学ぶ.
授業の進め方・方法:
実験プログラム用のテスト環境用のネットワークを構築し, その中でプログラムの挙動を解析し, 各プロトコルの特性を学ぶ.
注意点:
本授業でプログラムを作成する目的は, 実験を通してプロトコルおよびネットワークの知識・技能を向上させることである. 用法を守って正しく使う倫理観が求められる.
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
TCP/IPプロトコルスタック入門(1/2) |
TCP/IPプロトコルスタックの基礎およびプロトコルスタックの詳細 について説明できる
|
2週 |
TCP/IPプロトコルスタック入門(2/2) |
プロトコルスタックの実現方法について説明できる
|
3週 |
TCP/IPプロトコルとヘッダの構造(1/2) |
プロトコルヘッダと構造体, Ethernet, ARP, IPについて説明できる
|
4週 |
TCP/IPプロトコルとヘッダの構造(2/2) |
ICMP, UDP, TCP, チェックサムについて説明できる
|
5週 |
ソケット(1/2) |
ソケットの概要, ソケットで利用される構造体, ソケットシステムコールによる処理の流れについて説明できる
|
6週 |
ソケット(2/2) |
ソケットシステムコールの詳細について説明できる, UDPによる通信プログラムおよびTCPによる通信プログラムを作成できる
|
7週 |
パケットモニタリング実験(1/2) |
パケットモニタリングの基礎知識, データリンクアクセスインターフェースについて説明できる
|
8週 |
パケットモニタリング実験(2/2) |
パケットモニタリングプログラムを作成できる
|
2ndQ |
9週 |
TCP/IP通信の識別(1/2) |
IPアドレスとポート番号について説明できる, ホストスキャンプログラムを作成できる
|
10週 |
TCP/IP通信の識別(2/2) |
TCPポートスキャンプログラム, UDPポートスキャンプログラムを作成できる
|
11週 |
ARPの実験 |
ARPの詳細を説明できる, ARPを使用した実験プログラムを作成できる
|
12週 |
IPとICMPの実験(1/2) |
ルーティングテーブルと経路制御について説明できる
|
13週 |
IPとICMPの実験(2/2) |
ICMPリダイレクトメッセージ送信プログラムを作成できる, 経路上のルータの情報を取得するプログラムを作成できる
|
14週 |
TCPの実験(1/2) |
TCPの詳細, TCPコネクション確立時のSYNセグメントを送信するプログラムを作成できる
|
15週 |
TCPの実験(2/2) |
TCPコネクションを強制的に切断するプログラムを作成できる
|
16週 |
|
|
後期 |
3rdQ |
1週 |
ルータ・ブリッジの役割 |
ルータやブリッジがネットワークの中でどんな働きをするものなのかを理解し、説明することができる。
|
2週 |
種々のパケット・IPv6 |
EthernetパケットやARPパケットなどについて、その利用目的や構成を理解することができる。
|
3週 |
データリンク層におけるプログラム(1/2) |
データリンク層を扱うプログラムを見て流れを把握することができる。
|
4週 |
データリンク層におけるプログラム(2/2) |
データリンク層を扱うプログラムを理解し、一部修正することができる。
|
5週 |
パケットキャプチャプログラム(1/2) |
パケットキャプチャのサンプルプログラムの流れを把握することができる。
|
6週 |
パケットキャプチャプログラム(2/2) |
パケットキャプチャのサンプルプログラムの流れを把握し、一部修正することができる。
|
7週 |
キャプチャしたパケットの内容確認 |
キャプチャしたパケットの内容を読むことができる。
|
8週 |
ブリッジのプログラム |
ブリッジの働きを理解し、サンプルプログラムの動作の流れを把握することができる。
|
4thQ |
9週 |
ブリッジを用いたネットワークの構成 |
ブリッジを使ってネットワークを組むことができる
|
10週 |
ブリッジプログラムの改良 |
ブリッジのサンプルプログラムの一部を修正することができる。
|
11週 |
ルータの働き |
ルーター内の処理について説明することができる。
|
12週 |
ルータのプログラム作成(1/3) |
ルーターの動作を理解し、該当するプログラムを作成することができる
|
13週 |
ルータのプログラム作成(2/3) |
ルーターの動作を理解し、該当するプログラムを作成することができる
|
14週 |
ルータのプログラム作成(3/3) |
ルーターの動作を理解し、該当するプログラムを作成することができる
|
15週 |
ルータを用いたネットワークの構成 |
作成したルーターを使ってネットワークを組むことができる。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | 後12,後13 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 後12,後13 |
変数の概念を説明できる。 | 4 | 後12,後13 |
データ型の概念を説明できる。 | 4 | 後12,後13 |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | 後12,後13 |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | 後12,後13 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 後6,後12,後13 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 後12,後13 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 後3,後5,後8 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | 後4 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 3 | 後6,後10,後12 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | 後6,後10,後12 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 3 | 後4 |
情報通信ネットワーク | プロトコルの概念を説明できる。 | 4 | 後2 |
プロトコルの階層化の概念や利点を説明できる。 | 4 | 後2 |
ローカルエリアネットワークの概念を説明できる。 | 4 | 後1,後2,後9,後11 |
インターネットの概念を説明できる。 | 4 | 後2 |
TCP/IPの4階層について、各層の役割を説明でき、各層に関係する具体的かつ標準的な規約や技術を説明できる。 | 4 | 後1,後2,後11 |
主要なサーバの構築方法を説明できる。 | 4 | |
情報通信ネットワークを利用したアプリケーションの作成方法を説明できる。 | 4 | 前6 |
ネットワークを構成するコンポーネントの基本的な設定内容について説明できる。 | 4 | 後9 |
無線通信の仕組みと規格について説明できる。 | 4 | |
有線通信の仕組みと規格について説明できる。 | 4 | 後1 |
SSH等のリモートアクセスの接続形態と仕組みについて説明できる。 | 4 | |
基本的なルーティング技術について説明できる。 | 4 | 後1,後2,後11 |
基本的なフィルタリング技術について説明できる。 | 4 | 後13 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 3 | 後12,後13,後14 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | 後12,後13,後14 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 3 | 後12,後13,後14 |
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。 | 3 | 後3 |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 3 | 後3 |
標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。 | 3 | 後3 |
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。 | 3 | 後3 |
評価割合
| 成果物 | 合計 |
総合評価割合 | 100 | 100 |
基礎的能力 | 0 | 0 |
専門的能力 | 80 | 80 |
分野横断的能力 | 20 | 20 |