第16章

第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 定期的に放送し,事前に情報
収集、リクエスト時にネットワークへアクセスし
ない.