情報工学実験2[TCP/IPプログラミング]

H班メンバー

j04017F:沖津 望 
j04020F:狩野 昴 (リーダー) 
j04031B:高良 史朗 
j04043E:長浜 慎

課題1:telnetコマンドによるwwwサーバへのアクセス (担当者 : 高良史朗)

telnetコマンドを使って任意のwwwサーバにアクセスし,任意のURLのページデータ(htmlソースプログラム)を画面に表示せよ.(報告書にはそのURLとページデータの先頭の20行程度を添付せよ)

課題1へGO!
課題2:inetdを使用するサーバプログラミングの作成 (担当者:沖津 望)

サンプルプログラム(1)はサーバ(server.c)をinetdから起動することで,サーバはクライアント(client.c)の標準入力から入力された文字に対応するキーワードをクライアントに返すプログラムである.サンプルプログラム(1)を自分の実験環境で動作するようにし,実行結果を示すとともに,プログラムの中で使われている関数(Connect,Disconnect, Send Data, Recv Dataなど)の動作を説明し,サーバ・クライアント動作全体をフローを示して説明せよ.

課題2へGO!
課題3:inetdを使用しないサーバプログラムの作成 (担当者 : 沖津 望)

サンプルプログラム(1)のサーバプログラム(server.c)はinetdから起動するものであるが,inetdを使用せずに同じ動作をするデーモン型のサーバプログラムを作成し,実行結果を示すとともに,inetdを使用するサーバプログラムとそうでないものとの実装上の違いを説明せよ.

課題3へGO!
課題4:HTTPクライアントの作成 (担当者 : 長浜 慎)

ソケットおよびHTMLを使ってWWWサーバから任意のURLのページを取得し,標準出力に出力するプログラムを作成せよ.

課題4へGO!
課題5:ポートスキャンの実験 (担当者 : 狩野 昴)

自分の実験環境(端末)の使用/未使用ポート(ウェルノウンポートのみでok)を確認するポートスキャンプログラムを作成せよ.さらに,任意のリモート端末の使用/未使用ポートを確認するように改良せよ(加点ポイント).なお,スクリプトを使って内部で'netstat -l'コマンドを実行し,その結果を利用するのは不可とする(ソケットプログラムを作成すること).

課題5へGO!
課題6:バッファオーバーフローの実験 (担当者 : 高良 史朗)

サンプルプログラム(2)を実行せよ.このプログラムはgets() 関数を用いて,標準入力からの入力をバッファにデータを読み込むものであるが,結果を見ると,プログラム中で操作していないバッファdmy[] に値が入ることがある.この原因を考察し,解決策を示せ.また,この問題によって引き起こされるTCP/IP通信におけるセキュリティ上の欠陥はどのようなものが考えられるか,具体例を挙げて述べよ.

課題6へGO!