ネットワークプログラミング 中村 修
今日の授業のお題 この授業について ネットワークの基礎知識 実習 授業の目的/流れ スタッフ紹介 授業の進め方/参加方法 みんなへのヒアリング ネットワークの基礎知識 実習
授業の目的 ネットワークを利用したアプリケーションを作成できるようになること。 C言語によるプログラミング
この授業の流れ C言語によるプログラミング入門 システムプログラミング ミニプロジェクトのグループ決定 ネットワーク関連のプログラミング ミニプロジェクト成果発表
スタッフ 教員 アシスタント 中村修(osamu@sfc.wide.ad.jp) 海崎良:D1 (kaizaki@sfc.wide.ad.jp) 入野仁志:M1 (irino@sfc.wide.ad.jp) 高橋宏明:B4 (hero@sfc.wide.ad.jp)
この授業の進め方 5限、6限の連続の授業 5限(16:20-17:50) 6限(18:00-19:30:終わるまで) 毎回授業では実習を行う 講義形式 6限(18:00-19:30:終わるまで) 実習形式 毎回授業では実習を行う 更に、学期末にはミニプロジェクトの発表
この授業の評価方法 毎回の授業の実習結果 ミニプロジェクトの成果 出席は・・・?
この授業の参加方法 SoIにおいて受講登録をしてください 課題の提出など授業のサポートはここでおこないます http://www.soi.wide.ad.jp/class/20030030 課題の提出など授業のサポートはここでおこないます
受講者へのヒアリング 学年は? C言語によるプログラミング経験 Java言語によるプログラミング経験 他授業の履修状況 インターネットオペレーション インターネット概論 ネットワークオペレーション システムプログラミング
公式サポート環境 CNS環境 sshして上記のホストにログイン 自分のホームディレクトリにファイルを置く FreeBSD: zux001 – zux159 sshして上記のホストにログイン http://itc.sfc.keio.ac.jp/ssh/ 自分のホームディレクトリにファイルを置く
ネットワーク超基礎知識 階層化モデル プロトコル ネットワークアプリケーションとは?
OSI参照モデル 物理層 データリンク層 ネットワーク層 トランスポート層 セッション層 プレゼンテーション層 アプリケーション層 信号 フレーム パケット データ
OSI参照モデル 物理層 データリンク層 ネットワーク層 トランスポート層 セッション層 プレゼンテーション層 アプリケーション層 信号 フレーム パケット データ
インターネットの階層モデル TCP TCP IP IP IP データリンク データリンク 物理 物理 物理 アプリケーション
OSI参照モデルと インターネットの階層構造の関係 セッション トランスポート アプリケーション プレゼンテーション ネットワーク データリンク 物理 アプリケーション TCP UDP IP Network Interface 物理
階層型プロトコルでのデータ送受信 送信側 受信側 各層がそれぞれ必要な情報を付加して下層へ渡す 各層がそれぞれ情報をもとに処理を行い、その使った情報を取り除いて上層へ渡す 各層の 情報 アプリケーション アプリケーション データ データ TCP UDP TCP UDP IP IP Network Interface Network Interface 物理 物理 送信ノード 受信ノード
プロトコル 2つの機器間で,通信の手順を決めた約束ごと IP,TCP,HTTP,FTP コンピュータは「決まり」がないと通信できない
同じ決まりで通信するということ 相手が英語,自分が日本語で話しても会話は成立しない 電話では始めに 「もしもし,xxです」 コンピュータの世界でも同じ UNIX-Windows間の通信 無線-有線間の通信
ネットワークアプリケーションとは? transport layer IP network layer data link layer process process process process TCP UDP transport layer ICMP IP IGMP network layer ARP RARP data link layer hardware interface media
実習 次週からの授業を行う準備/練習 “こんなのできるぜ”というたしなみのある人は帰っていいよ CNSへsshをする Hello world 出力する “こんなのできるぜ”というたしなみのある人は帰っていいよ
はろーわーるど ???.c というファイル名 gccコマンド include printf a.out などのおまじないを体験してみる
プログラミング言語と実行コード コンピュータがわかるのは0/1 0/1の列だと人間には理解不可能 人間とコンピュータの架け橋が必要 インタプリタ コンパイラ
C言語におけるコンパイラ CNSの環境では gcc version 2.95.4 20020320 [FreeBSD] ソースコード 字句解析 構文解析 コンパイラ コード生成 実行コード
一連の流れ エディタ(vi,emacs)でソースコードを開く ソースコードを書く ファイルを保存する コンパイルを行う プログラムを実行する vi hello_world.c emacs hello_world.c ソースコードを書く ファイルを保存する コンパイルを行う gcc hello_world.c プログラムを実行する ./a.out
ソースコードを書く #include<stdio.h> int main(){ printf("hello world\n"); }
コンパイルを行う gcc hello_world.c 実行コードが生成される lsをしてみよう! → a.out というファイルが生成されている。
プログラムを実行する ./a.out カレントディレクトリにパスが通っていない場合には上記のように、 ./ で場所を指定。 %./a.out カレントディレクトリにパスが通っていない場合には上記のように、 ./ で場所を指定。 %./a.out Hello World %
終わり 出来たら終わりです。 お疲れさまでしたー。 毎回自分のPCを持ってきてくださいね。