第16章 server-client モデル サーバの仕事 複数の同時要求をこなさなくてはならない. – Open port • well-known port を open する. – Wait for client • clientからのリクエストを待つ. – Choose port • 新しいlocal portを割り当ててもらい,clientに通知 – Spawn process • 分身を作ってこのrequestを処理させる. – Continue サーバの仕事 資格チェック・保護(システムを守る) – システムファイルを読む. – 記録をとる. – 保護されているデータへのアクセス. が必要になることがある → 特権で動く – やたらとrequestに応じてはいけない. サーバの仕事 自分自身を守る. – 予期せぬメッセージにより,プログラムが中断 したり,停止してはいけない. – 予測が困難である. – あらゆる可能なエラーに対処する. 不備なサーバの悪用 1988年コーネル大学の院生 – internet worm • いったん感染すると不備なホストを探し,攻撃 • 自分のコピーを作る. • 世界中のUNIXシステムが止まった. – Fingerd の悪用 • gets がバッファオーバフローのチェックをしなかっ た. UDP echo server UDP echo server Server – OSからUDPエコー・ポートの使用許可を得る. – Loop: • UDPデータグラムを待つ. • Src dstの入れ替え.(IPアドレス,ポート) • データグラムの返送 client – 未使用のUDPポートを得る. – サーバに送り,返事を待つ. • 送ったのと同じものが帰ってくるはず Serverとclientの違い Lifetime の違い – サーバ – Client 予約済みと非予約ポート – サーバ – client ずっと続く. 有限で終わる. 予約済み 未使用ポートからの割り当て 用途 – ネットワークソフトの設計・実装・計測に便利 – 到達可能性のテスト Time and date Boot 時にシステムは時計をセットする必 要がある. プログラムは通常,時刻をシステムに問い合わ せることができる. – オペレータが設定する – 電池で時計を動かしておく. – ネットワークに問い合わせる. • UNIX 1970.1.1.0:0:0 からの秒数 • Internet 1900.1.1.0:0:0からの秒数 • 標準時: GMT universal time べつのclient-serverモデル Rarp – boot 時に自分のIPアドレスを教えてもらう. – サーバのアドレスを知らない. • Broadcast • 同じ物理ネット上のみ(フレームの伝送)UDPでは なく,生の物理ネットワークパケット. • ユーザプログラムではない(→echo). べつのclient-server モデル ARP … 相手の物理アドレスを聞く – キャシュ 手元に新しい情報があればネット ワークに聞かない. – 能率がよくなる.2回目以降の要求のコストを 下げる. – しかし要求駆動 ruptime …CPUロード,startupからの経過 時間 – backgound 定期的に放送し,事前に情報 収集、リクエスト時にネットワークへアクセスし ない.
© Copyright 2024 ExpyDoc