ネットワークプログラミング 中村 修 今日の授業のお題 • この授業について – – – – 授業の目的/流れ スタッフ紹介 授業の進め方/参加方法 みんなへのヒアリング • ネットワークの基礎知識 • 実習 授業の目的 • ネットワークを利用したアプリケーションを 作成できるようになること。 • C言語によるプログラミング この授業の流れ • • • • • C言語によるプログラミング入門 システムプログラミング ミニプロジェクトのグループ決定 ネットワーク関連のプログラミング ミニプロジェクト成果発表 スタッフ • 教員 – 中村修 ([email protected]) • アシスタント – 海崎良:D1 ([email protected]) – 入野仁志:M1 ([email protected]) – 高橋宏明:B4 ([email protected]) この授業の進め方 • 5限、6限の連続の授業 • 5限(16:20-17:50) – 講義形式 • 6限(18:00-19:30:終わるまで) – 実習形式 • 毎回授業では実習を行う • 更に、学期末にはミニプロジェクトの発表 この授業の評価方法 • 毎回の授業の実習結果 • ミニプロジェクトの成果 • 出席は・・・? この授業の参加方法 • SoIにおいて受講登録をしてください – http://www.soi.wide.ad.jp/class/20030030 • 課題の提出など授業のサポートはここでお こないます 受講者へのヒアリング • • • • 学年は? C言語によるプログラミング経験 Java言語によるプログラミング経験 他授業の履修状況 – – – – インターネットオペレーション インターネット概論 ネットワークオペレーション システムプログラミング 公式サポート環境 • CNS環境 – FreeBSD: zux001 – zux159 • sshして上記のホストにログイン – http://itc.sfc.keio.ac.jp/ssh/ • 自分のホームディレクトリにファイルを置く ネットワーク超基礎知識 • 階層化モデル • プロトコル • ネットワークアプリケーションとは? OSI参照モデル アプリケーション層 データ アプリケーション層 セッション層 プレゼンテーション層 トランスポート層 セッション層 トランスポート層 ネットワーク層 データリンク層 物理層 プレゼンテーション層 パケット フレーム 信号 ネットワーク層 データリンク層 物理層 OSI参照モデル アプリケーション層 データ アプリケーション層 セッション層 プレゼンテーション層 トランスポート層 セッション層 トランスポート層 ネットワーク層 データリンク層 物理層 プレゼンテーション層 パケット フレーム 信号 ネットワーク層 データリンク層 物理層 インターネットの階層モデル アプリケーション アプリケーション TCP IP データリンク 物理 IP データリンク 物理 TCP IP データリンク 物理 OSI参照モデルと インターネットの階層構造の関係 アプリケーション プレゼンテーション アプリケーション セッション トランスポート TCP UDP ネットワーク IP データリンク Network Interface 物理 物理 階層型プロトコルでのデータ送受信 • 送信側 – 各層がそれぞれ必要な情報を付加して下層へ渡す • 受信側 各層の 情報 – 各層がそれぞれ情報をもとに処理を行い、その使った 情報を取り除いて上層へ渡す データ アプリケーション アプリケーション TCP TCP UDP UDP IP IP Network Interface Network Interface 物理 物理 送信ノード 受信ノード データ プロトコル • 2つの機器間で,通信の手順を決めた約 束ごと – IP,TCP,HTTP,FTP • コンピュータは「決まり」がないと通信でき ない 同じ決まりで通信するということ • 相手が英語,自分が日本語で話しても会 話は成立しない • 電話では始めに 「もしもし,xxです」 • コンピュータの世界でも同じ – UNIX-Windows間の通信 – 無線-有線間の通信 ネットワークアプリケーションとは? process process TCP UDP IP ICMP process process ARP transport layer IGMP network layer RARP hardware interface media data link layer 実習 • 次週からの授業を行う準備/練習 – 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 Hello World % 終わり • 出来たら終わりです。 • お疲れさまでしたー。 • 毎回自分のPCを持ってきてくださいね。
© Copyright 2024 ExpyDoc