フォワードプロキシとリバースプロキシの違い

ネットワークスペシャリスト試験でリバースプロキシとフォワードプロキシについての問題がまた出た。

過去5年の問題を確認したが、2、3回出ている。去年も出てたんじゃなかったかな?

リバースプロキシは仕事で構築したこともあるのだが、
「リバースプロキシと通常のプロキシの違い」という点については、
インターネットのどの情報を見てもピンとこない。

いろいろ言っても、結局クライアントとサーバの間にあってリクエストを転送することには変わりないじゃないか、と。

ようやく自分なりに納得できる違いを見つけた。

それは、フォワードプロキシつまり通常のプロキシは、不特定多数のサーバ宛のリクエストの代理となり、リバースプロキシは特定のサーバ宛のリクエストの代理となる、ということである。

クライアントがプロキシ宛にリクエストを送るのはフォワードもリバースも同じ。

「フォワードはクライアント側、リバースはサーバ側」というのもなるほどと思ったが、
フォワードプロキシがデータセンタにあればクライアントにとっては「サーバ側」と感じるだろう。

偏差値

ネットワークスペシャリスト試験を受けてきた。

全力は尽くした。


さて、午前1に以下のような問題が出た。

どうやって解くのかわからず、なんとなく答えを選んだ。

---
受験者1000人の4教科のテスト結果は表のとおりであり、いずれの教科の得点分布も正規分布に従っていたとする。90点以上の得点者が最も多かったと推定できる教科はどれか。

教科 平均点 標準偏差
-------------------------
A    45   18
B    60   15
C    70    8
D    75      5
---

昼休みにiPhoneでそれらしきキーワードで検索してみたが
過去には出題されていないようだった。

この問題は3問めだったが、ちょっと読んでわからないので飛ばし、
解ける問題を解いた後でじっくり考えてみた。

90点以上の得点者が最も多いということは平均点が高い教科になりそうに思えるが、
問題は標準偏差である。

もし、標準偏差が示されず、平均点だけを示されたら、Dを選ぶだろう。

そんな単純な問題でないことはわかる。

標準偏差の算出方法は覚えていないが、何を意味するかはわかる。
少し前に自分なりに整理したこともある。

標準偏差が大きいほど、得点のばらつきが大きい。

Dは5でもっとも小さく、Aは18で最も大きい。

Dの得点分布は縦に細長く、Aは横に広くなる。

それはわかるが、「90点以上の得点者が最も多い」ということをどうやって知るのか。


午前1に出るような問題なのでそんなに複雑な計算が必要ではないはずだ。

AとDは両極端なのでたぶん正解ではないだろう。

BかCか。15という標準偏差はかなり大きい、と、Bを選んだ。



昼休みに検索した結果、以下のような解き方でとりあえず正解を出せることがわかった。

偏差値は、「平均点との差に10をかけ標準偏差で割って50を足す」ことで算出できる。
(得点が平均点より高い場合)

90点をとった場合の偏差値を求めてみる。

A
(90-45)*10/18 + 50 = 75

B
(90-60)*10/15 + 50 = 70

C
(90-70)*10/8 + 50 = 75

D
(90-75)*10/5 + 50 = 80


同じ90点でも、教科Dの90点は偏差値が高い。
「偏差値80」はなかなか出るものではない。
そして教科Bの偏差値が最も低い。

この結果からなぜ「90点以上の得点者が最も多い」と言えるのかが
正確に説明できないのだが、

90点をとったときの偏差値が高いということは、
それだけその得点がまれである、
つまり、90点をとった人が少ないということを示す。

正規分布の正確な定義は知らないのだが、
確か中央が高くなって両端がだんだん低くなる分布である。
つまり、90点の偏差値の高低によって、それ以上の得点者の多寡が判断できる、
ということだと思う。

というわけで、問題で問われている90点以上の得点者が最も多いのは、
90点の場合の偏差値が最も低いBである。

その筋の情報によっても、正解はBだった。

というわけで、私がなんとなく選んだBは正解であった。

利用率と待ち時間

サービスの利用率がaだった場合、サービスを待つ人数は a/(1-a)となる。

具体的に数値を入れてみると、

a=0.1の場合

0.1/0.9 = 1/9 ≒ 0.11


a=0.3の場合

0.3/0.7 ≒ 0.43


a=0.5の場合

0.5/0.5 = 1


a=0.8の場合

0.8/0.2 = 4


a=0.95の場合

0.95/0.05 = 19



a=1 にするとゼロ除算になってしまう。
aを限りなく1に近づけていくと、(1-a)は限りなくゼロに近づき、
a(1-a)は無限大になる。


ρ(1-ρ)を 待ち人数とすると、

稼働率50%のとき一人となる。

それより低いときは1未満であるが、人数は整数である。

では、0.5人の待ち人数というのはどういうことか。

稼働率が33%くらいのときに待ち人数が0.5になる。

24時間営業のコンビニでサービス稼働率33%だとすると、
その日に10回店にいったら2回に1回は一人待っている、という感じか。




稼働率0.01から0.96までのグラフ
待ち人数が5を超えるあたりから急上昇する。
0.83%あたり










計算問題

ネスペには「計算問題」というのがある。

最近は「計算」ということをほとんどしない。

エクセルを使うからだ。

するのはコンビニで買い物をするときくらい。

それすらも、最近はクイックペイなどを使うようになりすることが減ってきた。


午前の問題に計算問題があるのだが、過去問をやってみたらほぼ100%わからない。

「xxバイトの電文をxxxビット/秒で転送したときの送信時間」

など。

アーランとか、ポアソンとか、見ただけで拒否反応が出る。

しかし、回答方法を見てみると、ごく簡単な計算しかしていない。

足し算引き算掛け算割り算だけだ。


「1/100秒は何ミリ秒か」を1ミリ秒だと間違えたりする。

「2÷1.1」をひっ算でやってみるとアレ?となったりする。

「1000÷109」をひっ算でやる途中で

「1000-981」という計算が出てくるが、暗算すればすぐ19と出てくるが、

ひっ算で

1000
  981

とやって1の位から引いて行って繰り下がる場合に10を借りてくるのか9を借りてくるのか戸惑ったりする。


バイトとビットを合わせなかったり、そんなミスばかりだ。


「100人が共通鍵で通信するときに必要な鍵数の合計」

これは、100人をフルメッシュにしたときのノード間の接続数を求めることであり、
ノード数をnとすると

接続数=n(n-1)/2

である。

1台の装置が常に利用中である場合、1アーランのトラヒックが発生している、という。

1日に1時間だけ利用されているなら 1/24 アーランである。

そのような装置が2台あれば、2 x 1/24 = 1/12 アーランである。



プリンタの利用率が25%である場合、待ち人数は

0.25 / (1-0.25) = 0.25 / 0.75 = 1/3 である。

この 

ρ/(1-ρ)

については「なぜそうなのか」と疑問を持つことは大切だが
これくらいの簡単な式なら試験のためなので覚えてしまえる。

そして

待ち時間 = 待ち人数 x 一人当たりのサービス時間 である。

これは覚えるまでもない自明のことだ。


この程度である。



ネットワークスペシャリスト

あと10日程で受験日。

この試験を受けるのは初めてである。

以前は「オンライン」という名前だった。平成5年まで。

これは2回ほど受けたことがあるが、難関で有名だった。

今調べると合格率は5%に満たない。


ネスペは受験者比で14%程度のようだ。

難しい試験といえるだろう。


身の回りでもこの資格を持っている人は少なく、持っている人は皆ソコソコ、
いや、かなりデキる人ばかりである。


シスコなどのベンダー系試験は定番教科書や問題集をこなしていれば受かるのだが、

ネスペ等の高度情報処理技術者試験はそうはいかない....

と思っていたが、問題を見てみると思っていたほど難しくなかった。

特に午前の問題は知らないものはまったくわからないが、
問う知識の内容としてはあまり深いものはない。

そして過去問はググればすぐ出てくる。

過去問と回答はIPAでPDFが公開されていて、
解説サイトもすぐ出てくる。

午前の問題については、10年くらい前から出ているような問題もあり、
対策は可能だ。

午後はまだ去年のものしか見ていないが、記述式といっても論文を書くようなものではなく、単語や、せいぜい20字程度の短い文を書くだけである。

そして、合格点は午前1・2、午後1・2それぞれ60点というから、
けっこう低い。