2017年3月30日木曜日

SOAP、CORBA、DCOM、SIP

平成28年秋季 問35. SOAP、CORBA、DCOM、SIP

問題文「ほかのコンピュータ上にあるデータやサービスを呼び出すためのプロトコルで、メッセージ記述がXMLのヘッダとボディで構成されているものはどれか。」

解答群
ア. CORBA
イ. DCOM
ウ. SIP
エ. SOAP

この問題もまずもって全くわからない。まあ、記憶に残るように勉強しているわけなので、少しずつ調べてみようと思う。

まず、CORBAはCommon Object Request  Broker Architectureの略だそうで、いくつかサイトを見たもののそもそも実際にプログラムを書くような人でないと完全な理解はできそうになさそうである。

その中で、「達人プログラマーを目指して」さんの「CORBA関連のJava技術について」の中でおそらく現場のプログラマさんが感じている率直な感想を書いていたので参考にしてみた。

「インターフェースを決めておけば言語によらずにサービスを実装できるということから、信頼できる枯れたCORBAの実装が利用できるのであれば、必ずしもWebサービスなどに置き換えるよりもよいというケースも一応存在すると思います。」

CORBAの基本的な概念としてはプログラムコードをカプセル化することで色々な他のプログラムから呼び出せるようにした規格なのだそうで、色々な言語(C、C++、JavaはもとよりPythonまで)からカプセル化されたプログラムを呼び出して使うことができるようにするらしい。

ここまで書くとなんだか古いプログラムもカプセル化してしまえばすごく便利なように聞こえるが、インターネットが普及してブラウザから色々なサービスの提供を受けられるようになった今、あえてこの技術を選択しなくてもいいのでは?みたいなことらしい。

一例としては富士通さんの「CORBA概要」というPDFファイルがあって、これを見ると細かなところは置いておいても何となく理解できたような気になれる。この例ではCOBOLをCORBAを利用して連携できるようにするということが書かれているが、COBOLなどの古い言語を新しい言語から呼び出したりするのに実用的なんだと理解した。

クラウドや仮想化技術にしても、いかに古い技術を活かすかという観点から考えると営業的な意味合いでどうやって古くなったIT資産を転用し、お金に変えるか(営業する側からみた視点だが・・・)という意味でひねり出されたアイディアとも言えると思うので、そのようなアイディアで昔作られたものなんだろうな、ぐらいでよさそうである。

では次にDCOMは、Weblio辞書さんの「DCOM」にざっくり書かれていて、簡単に言うとCOMという技術をネットワーク越しに使えるようにした技術だということだ。ちなみに「Distributed Component Object Model」の略だそうだ。
COMというのはWindowsを利用しているとそこかしこにちらほら出てくる用語だが、調べてみてもいまいちピンとはこなかった。が、まあMicrosoftが開発したソフトウェア基盤の一種だということで納めて置いた方がよさそうだ。何しろこの辺の技術は掘り下げるとどこまでも深くなっていく。

ということで適当にウェブサイトを閲覧していたところ、DCOMに関して面白そうな記事を見つけた。

「Geekなぺーじ」さんの「DCOM(分散COM)を無効にする」というページである。ここを見るとWindows XPの時代からあった技術らしく、上に書いたようにWindows環境にあるCOMをネットワーク越しに使えるというこの便利機能が、ウィルスの踏み台にされることもあり、Windows Updateが行われていないマシンだと「インターネットに接続しているだけで」感染させられてしまうらしい。

どこにいっても便利な技術っていうのはなんらかの落とし穴を持っているらしい。。。

次に進みたい。SIPは「Session Initiation Protocol」の略で、探すと「戦略的イノベーション創造プログラム」とか言う他の言葉まで出てくるのでWikipediaさん情報のみから読み解くと「Session Initiation Protocol」に書かれている通りオーディオなどの通信を制御するH.323というプロトコルに代わるセッション制御プロトコルなのだそうだが、現在はインターネット上の会議など、電話やチャット、テレビ電話などによく使われている双方向通信を行うもののようだ。

ざっくり概要だけ見ると、サーバとクライアント間の通信のように主従関係のようなものが持ちにくい通信、つまり電話などのやり取りの中で通信を行う双方がサーバとクライアントの両方の役割を担えるような仕組みということだそうだ。

あまり面白くもないのであまり掘り下げずにさっさと次に行こう。最後にSOAPについて調べて今日も終わりにしたい。もう疲れてきてソープと聞くだけで大人なサービスしか思い浮かばない。

@ITさんの「SOAP(Simple Object Access Protocol)」というページの記述をまとめると、ネットワーク経由でオブジェクト間の通信を行うプロトコルでXMLを使っているのが特徴ということだ。

「エンベロープ」「ヘッダ」「ボディ」の領域で構成されていて、ファイアウォールで通過しにくい組織間の環境を超えて通信するのに役立つと書かれているのは非常に有益な方法のように聞こえる。

そして、最重要な項目としては「W3C」の宣言でSOAPは何かの略ではなくなり、固有名詞であるということになったということである。何故最重要か?という点だが、これを知っている技術者たちは一様に大人なサービスのSOAPとの二つの固有名詞であると心の底では絶対に思っていると断言できるからだ。

モルダー、あなた疲れてるのよ。と言われそうなので今日はここまでにしたい。

2017年3月29日水曜日

トレーニング日誌 2017/3/28~

一連の記事で行っている実験のまとめはこちらのページ、生活実験:トレーニングを参照ください。

ざっくりまとめると忙しい中で一日30分と週1回のウェイトトレーニング、食事制限で体脂肪を落とせるのか?という実験をやっています。

2017/3/28
体重:74.4kg
体脂肪率:21.4%
基礎代謝量:1630kcal
肉体年齢:39歳

シックスパックトレーナー Lv.15
※体重の下降が止まり、安定してきているように見える。これが筋肉が増えて体脂肪が減っているのであれば良いが、体脂肪がほぼ一定している事実から考えるとあまり望みはないのだろうか。。。



2017/3/29
体重:73.1kg
体脂肪率:18.7%
基礎代謝量:1653kcal
肉体年齢:34歳
ベンチプレス (70kg)x10 (60kg)x10 (55kg)x10x2 (50kg)x10x2
チンニング(61kg)x10 (54kg)x10 (47kg)x10x2 (40kg)x10x2
ダンベルショルダープレス(18kg)x10 (16kg)x6 (14kg)x6 (12kg)x6
サイドレイズ(14kg)x10 (12kg)x10 (10kg)x10x2 (8kg)x10x2
ワンハンドローイング(18kg)x10 (16kg)x10x2 (14kg)x10x3 (12kg)x10x3
ダンベルカール(14kg)x6 (12kg)x6 (10kg)x6 (8kg)x6
デッドリフト左右各(37kg)x10x3

※昨日はいつもは休み前日に酒を飲むのだが、我慢してウェイトトレーニングに行った。前回行った時に体脂肪含めた測定をしてくれるサービスがあるが、トレーニング後はあまり正確な値にならないと言われたためで今回計測してみようと思っていたからである。

窓口で数百円払って計測時間は大体5分かからない程度、手で電極を握って計測する形である。

結果は以下のようである。
体重:74.2kg
体脂肪: 21.5%
BMI: 26.0kg/m2

さらに部位別の筋肉量が調べられるようで
右腕: 3.69kg
左腕: 3.51kg
体幹: 27.6kg
右脚: 8.44kg
左足: 8.36kg
となっている。

わかりにくいのだが、腕と体幹は体重から見た筋肉発達程度という項目でいずれも115%を超えているようで、脚に関しては100%ちょっとと言ったところらしい。

測ってくれた人は何かにびっくりしていたらしいが、何がびっくりさせていたのかは不明だ。ただ、筋肉量がどうやら多いらしいのだけはわかった。

で、せっかく5分のために結構な金額払ったので、体脂肪率を落とす簡単な方法を聞いてみた。
それは2点あって、1点目は大腿筋を鍛えて有酸素運動をすること、2点目は腹回りの脂肪については直接的な刺激が一番効くということだ。

腹回りの直接的な刺激?と聞き返したところ、女性のエステのように直接もみほぐすことが腹回りの脂肪を分解するには一番効果的とのこと。なるほど。。。エステにもそれなりの実証効果があるんだな・・・と感心した。

1点目の大腿筋を鍛えて有酸素運動というのはある程度想像がつく。大腿筋は体の中では一番大きい筋肉になるので、そこを鍛えてから有酸素運動、特にランニングやサイクリングマシンなどは脂肪燃焼に効果が大きいだろう。

ということで前からも考えていたのだが、デッドリフトという項目を今回から加えてみた。デッドリフトについてはダンベルトレーニングでサイドレイズ+デッドリフトと書いているので聞き覚えがあるかもしれないが、実際に俺がダンベルトレーニングでやっているのは適当に名前をつけているものなので、本当のデッドリフトではない。

しかも、俺がデッドリフトと言っているのは、ラグビーをやっていた頃の監督に教えてもらったもので少し一般的に言われるものと少し違う。実を言うと、一般的なデッドリフトを今日の今まで知らなかった。

俺が今まで考えていたデッドリフトはバーベルのバーをまたいで行うものだ。姿勢の維持が異常に難しい(左右の姿勢が変わるため、一般的に言われるデッドリフトでも言われる腰にかかる負荷をしっかりと腰で支えるのが難しくなる)が、効果はこのトレーニングを行った1年上の先輩の背筋力が200kgを優に超えていたことで分かる。

たった50kg、左右10回x3セットを半年しただけ(ほぼ毎日)でそれである。効果は計り知れない。

しかし、今日トレーニングをした感じだと2時間(ジムの1回券の時間)では有効な有酸素運動は難しそうである。ウェイトトレーニングに1時間10分ぐらい費やしてしまうので有酸素運動に割ける時間は30分か40分ぐらいである。

さらに普段のダンベルトレーニングに大腿筋トレーニングを取り入れるのはなかなか難しそうでもある。色々と課題があるが、一番は・・・

最近になって体重の減少が止まってしまっているのが気になっていたが、色々と見てみたところやはりアルコール摂取が体脂肪と体重に影響を与えているように思えてきた。

確かに摂取カロリーと直接的な関係を1日スパンで見るとそれほど認めにくいが摂取カロリーの平均値で見た場合、2500kcalを平均して摂取しているように見え、確かに短期スパンでは影響がないように見えるものの、摂取カロリーは長期的に影響があるようにも見えるからだ。

ただ、酒と美味しいと思えるものを断てるほど俺の精神状態は日常的にはそれほど良好とは言えないので、別の方法を考えた。

休みの日の夕食はそのままにして、日中はそれほどストレスも飢餓感も感じないので「紅葉饅頭」でギリギリ空腹にならないところを攻めてみようということだ。

そこで、今日の晩飯はこれである。



その代わり、今日の日中口にしたのは紅葉饅頭4個である。これで二日間で摂取するカロリーをかなり抑えられる ⇒ 酒を飲んでも無問題 という解決方法である。

最後に測定してくれたトレーナーの人に「トレーニングの目的は何かあるのですか?」と聞かれたので、「ウニ採りでケツが浮くから」と答えるとなんとも言えない笑顔が帰ってきた。

ちなみに今日の体重測定は入浴後なのであまり参考にならない。

NAPT、IPスプーフィング、IPマルチキャスト、NTP

平成28年秋季 問34. NAPT、IPスプーフィング、IPマルチキャスト、NTP

問題文「TCP、UDPのポート番号を識別し、プライベートIPアドレスとグローバルIPアドレス殿対応関係を管理することによって、プライベートIPアドレスを使用するLAN上の複数の端末が、一つのグローバルIPアドレスを共有してインターネットにアクセスする仕組みはどれか。」

解答群
ア. IPスプーフィング
イ. IPマルチキャスト
ウ. NAPT
エ. NTP

はっきり何一つわからない問題ではある、が、今回改めてNATに似てるんじゃね?と思ってNAPTを選択したら当たってしまったw

ポート番号の内容を除けば、NATがそのものずばりの解答だからである。しかしNATはずいぶん前に研修で出てきただけだし、その時研修してくださった方もネットワークのスペシャリストではなかったので、もう一度確認していきたい。

まずはNATで検索すると最近おなじみになってきた「ネットワークエンジニアとして」さんのページ「NAT (Network Address Translation)」にCISCOの用語の説明も含めて詳述してくれている。が、NATそのものは「ローカルIPをグローバルIPに変換する技術」とするだけでよいだろうと思う。

ではNATを踏まえてNAPTを見てみよう。「IPラーニング - サイバーエリアリサーチ」さんの「1.2.4 NAT・NAPTとIPアドレス」のページでは、NATを含めたNAPTの説明をしてくれている。

使っている画像もほのぼのできる感じで好ましいのが印象的である。

説明もほぼ完ぺきに目的を果たしてくれているので、ここで説明する必要もないかもしれないが、あえて簡単に略させてもらうと「NATではローカルIPとグローバルIPが1:1の関係で保たれるため、仮にローカル二つの端末から同じグローバルIPへの要求が行われた場合対応させることが難しくなってしまう。そのため、ローカルに任意のポート番号を割り振って(おそらくNAPTが実装されている機器側の話と想像する)グローバルから指定されたポート番号によって送信先ローカルIPを識別する技術」ということになる。

全然略されてねえ・・・orz

内容はある程度わかったが、グーグル先生のアブストラクトに気になる内容を見つけて、おなじみ「@IT」さんの「NAPT」も参照してみた。

気になった点は2つ、「1.TCP/UDPのポート番号も含めて変換することで、複数の端末を同時接続させる・・・」ということと、「2.LinuxにおけるNAPTの実装をIPマスカレードと呼ぶ。」ということだ。

同時接続させるという点については問題文になりやすい言い回しのようなので押さえておいた方がよさそうなのと、NAPT一つを覚えるのではなく、IPマスカレードという単語も一緒に覚えて置けるので一石二鳥と言える。

では他の選択肢について簡単に見ていってみよう。

IPスプーフィングについては不正アクセスという内容だからかWikipediaさんの説明「IPスプーフィング」を通してみるととても分かりやすかった。
英単語の「Spoof」が「なりすます」という意味であることを合わせて、IPアドレスを偽装する不正アクセスの手法とまとめてしまうとわかりやすいかもしれない。

特にDoS攻撃(対象のアクセス要求を送り付けて動作不能状態を作り出そうとする攻撃)の場合は送り付けるだけの動作のためIPアドレスが偽装されていると発信元が特定できないことも合わせて非常に効果的かつ防御不能の攻撃となり得るらしい。

続けて「IPマルチキャスト」だが、こちらについては既に自サイトの「アドレスクラス」のマルチキャストアドレスの項目で取り扱っているのでこちらを参照されたい。

最後にNTPだが、最初NPTを検索して核不拡散条約がヒットしてちょっとびっくりしたものの「Network Time Protocol」の略で、内容はWikipediaさんの「Network Time Protocol」に詳述されている。

至極簡単にまとめると、「時計を正しい時刻に同期する際、通信することによる時間の補正(要求と時刻データの送信そのものにかかる時間を計算に入れるという意味で)を行う時刻同期のためのプロトコルである、ということだ。

よし、今日も筋トレ頑張ろうっ( ゚Д゚)

2017年3月27日月曜日

トレーニング日誌 2017/3/26~

一連の記事で行っている実験のまとめはこちらのページ、生活実験:トレーニングを参照ください。

ざっくりまとめると忙しい中で一日30分のトレーニングと食事制限で体脂肪を落とせるのか?という実験をやっています。

2017/3/26
体重:74.0kg
体脂肪率:21.1%
基礎代謝量:1626kcal
肉体年齢:38歳

シックスパックトレーナー Lv.15
※最近「効き」が悪くなってきたので、パッド?を交換した。今回から新しく「8パックストレーナー」という新しい形のものにした。


画像の右側がそれなのだが、これで「6Pad」のパクリではなくオリジナルに・・・なるかっ( ゚Д゚)
まあ、バッタもんには違いないのだが、それでもコストパフォーマンスが高ければそれはそれでよいのではないかとも思う。
できれば「6Pad」も購入して全体的なパフォーマンスを比較してみたいが、いつになるかわからない。。。
今日は酒を飲んで寝よう。



2017/3/27
体重:74.5kg
体脂肪率:21.4%
基礎代謝量:1632kcal
肉体年齢:39歳
フレンチプレス(10kg) x20
ワンハンドローイング(10kg) x15
ダンベルカール(10kg) x15
サイドレイズ+デッドリフト(10kg) x10
トライセプスエクステンション(10kg) x10
大胸筋アイソメトリック x2

※最近は休み以外の日に飲むときはかなり食事も制限しているつもりなのだが、今回は500g増になった。就寝がだいぶ遅くなってしまったのが影響しているのか、睡眠時間も大きな要素となるようにも思う。

ただし、前回ウェイトトレーニングしてからかなり筋肉量が増えているように感じるので、この点も考慮にいれるべきか・・・という点で悩んでいる。
正直多少オーバーワーク気味な間隔でトレーニングしているので来週からは理想的なサイクルに持っていけるのではないかと考えているが、それまでの間は今のペースを乱したくないのも正直なところだ。

理想的なサイクルとしては、ウェイトトレーニングして翌日完全休、腹筋を翌日にしてからその翌日にダンベルトレーニング、後は腹筋とダンベルを交互に行う、というサイクルにしたいところである。他のスケジュール(試験勉強含む)を見ながら調整していこうと思う。

2017年3月26日日曜日

アドレスクラス

平成28年秋季 問33. アドレスクラス

問題文「IPアドレス208.77.188.166は、どのアドレスに該当するか。」

解答群
ア. グローバルアドレス
イ. プライベートアドレス
ウ. ブロードキャストアドレス
エ. マルチキャストアドレス

ざっくりとだが、ウ.エ.は特定のアドレスになるのではないか?ということで対象から外し、プライベートアドレスは先頭が10.xxxとか192.xxxとか特定のものになるはずだからという単純な理由で正解したが、細かく見ていきたいと思い調査範囲にした。

まず「応用情報処理技術者試験ドットコム」さんの解説を基に、クラスによってプライベートアドレスの先頭部分が決まっているという点について見ていきたい。

「プライベートアドレス」「クラス」という文字列で検索したトップに「@IT」さんのページ「プライベートIPアドレス」がヒットした。いつもお世話になっております(*´▽`*)

このサイトさんの抜粋によると、以下のようになっているらしい
クラスA: 10.0.0.0~10.255.255.255(10.0.0.0/8
クラスB: 172.16.0.0~172.31.255.255(172.16.0.0/12
クラスC: 192.168.0.0~192.168.255.255(192.168.0.0/16

つまり、上記のアドレスの範囲に当てはまればプライベートネットワークと言えるし、それ以外ならグローバルアドレスであると考えてよさそうである。

上の対応表の中で、赤字で記されている部分についてはサブネットマスクの記述方式で、よりわかりやすく書くと以下のようになる:
クラスA:255.0.0.0
クラスB:255.240.0.0
クラスC:255.255.0.0

これは初めてみると面食らう表現だと思う。実際俺も初めて見た時には意味がわからなかった。
簡単にまとめると、「2bit表記した時の上位?ビットまでがサブネットですよ」と書いているわけで、「サブネットマスク」「表記」でグーグル検索するとトップに表示される、やはり「@IT」さんの「IPアドレスとサブネットマスクをまとめて表記する」に詳しくまとめられている。

しかしここで余計な疑問が出てくる。クラスBでは255.240.0.0となっているはずなのに「172.16.0.0~172.31.255.255」と「16~32(便宜上)」に絞られているのは何故だろうか?

「240」をビット変換すると「11110000」で、「16」は「00010000」、「32」は「00100000」となる。

この部分で「172.16.xxx.xxx」を表現すると
10101100.00010000.xxxxxxxx.xxxxxxxx」で赤字で表現されている部分までが12桁(2進数)なので、それ以降はプライベートに割り振ってよい数字となる。

当然、第2オクテットが「32」になると桁が上がってしまい12桁までの固定が崩れてしまう「10101100.00100000.xxxxxxxx.xxxxxxxx」ので、桁が上がる寸前の「172.31.255.255」までが範囲になるというわけだ。

というか。。。途中で切るなっ( ゚Д゚)
で、なんで172であり、192であるのか?と思って調べてみたが、簡単には結論が出てこなかったため、それぞれをビット変換して並べてみた。

クラスA:00001010
クラスB:10101100
クラスC:11000000

想像に過ぎないが、人間の目で見てわかりやすいから・・・とかいう理由ではなかろうか。。。いや、あくまで想像に過ぎないのは過ぎないのだが・・・

次にブロードキャストアドレスとはなにか?だが、簡単にウィキペディアの参照だけにしたい。「ブロードキャストアドレス」を簡単にまとめると、サブネットマスク以外のビットを全て「1」にした状態「192.168.255.255(クラスCを例にして)」は「そのプライベートアドレスに接続されている全ての端末に対する発信としよう」と決めた(提唱した)人がいるからである。
詳細は上記サイトを見てもらいたいが、確かにそのような必要があった場合に便利だろうとは思う。なぜかは割愛させていただく。

次にマルチキャストアドレスだが、色々探したところ「ネットワークのおべんきょしませんか?」さんの「マルチキャストってなに?マルチキャストの場合」にすごくわかりやすく説明されている。

詳細は疲れてきたので上記サイトに内容を譲りたいが、簡単に言うとグループ化をすることで「特定の複数」の端末に対してデータを送信することができるようにするアドレスだということらしい。

ついでにこのサイトさんでは非常に有益な情報が得られる「IPアドレスには、クラスA~Eがあって、クラスA~Cは普通に使うユニキャスト用のIPアドレス、クラスDがマルチキャスト用、クラスEが実験目的で予約されています。(引用:同上)」とある。

ちなみにこのクラスDアドレス先頭部分は
クラスD:11100000
となっており、やはり先頭からの1のビットの数でクラスを決めている⇒わかりやすい というもののようだ。

上記サイトさんをざっくりと眺めてみたところによると、非常にネットワークのことに関してわかりやすく書いておいでなので、時間があれば見てみたいサイトではある(時間ができるかは別問題である)。

今日は疲れたので以上にしたい。

2017年3月25日土曜日

トレーニング日誌 2017/3/24~

一連の記事で行っている実験のまとめはこちらのページ、生活実験:トレーニングを参照ください。

ざっくりまとめると忙しい中で一日30分のトレーニングと食事制限で体脂肪を落とせるのか?という実験をやっています。

2017/3/24
体重:74.7kg
体脂肪率:21.1%
基礎代謝量:1643kcal
肉体年齢:38歳

シックスパックトレーナー Lv.15
※今日、いつもここを見てくれている仕事の同僚に「いつも酒を飲むときは言い訳をしているように見える」的なことを言われた。なので、今日は飲みますがなにか?( ̄ー ̄)
ウェイトトレーニングをして、やはり筋肉痛になったのはなった。2日後に来なかったのはありがたいが、明日、今日以上に痛かったら悲しい思いをすることになるだろう。

しかし今日目についたのは基礎代謝量がここ数日の推移から見ると劇的に上昇していることだ。うちのタニタちゃんは俺の日頃の変化には鈍感なはずなのだが、意外とここに反応するとは思わなかった。



2017/3/25
体重:74.2kg
体脂肪率:21.4%
基礎代謝量:1624kcal
肉体年齢:39歳
フレンチプレス(10kg) x20
ワンハンドローイング(10kg) x15
ダンベルカール(10kg) x15
サイドレイズ+デッドリフト(10kg) x10
トライセプスエクステンション(10kg) x10
大胸筋アイソメトリック x2

※今日は昨日よりも筋肉痛はやわらいでいた。筋肉痛は残っていたのでダンベルトレーニングするか迷ったが、48時間以上経過しているので追い込んでみた。

一回大幅に体重が増えたかに見えたが、あっという間に元に戻ったのは筋肉量が増えたからだろうか。トレーニング後に鏡で体を見ると、さすがに今まで見たことないぐらい体が膨らんできている。やはり1週間に1回程度のウェイトトレーニングは正解だと思う。

しかし体脂肪の前に筋肉で体が重くなりすぎて海に沈んでしまうのではないかと心配になってきている。まあウニ採りは今年だけではないので今年失敗していたら来年に照準を合わせるだけのことだと開き直ってみよう。

2017年3月24日金曜日

ネットワークプロトコル

平成28年秋季 問32. ネットワークプロトコル

問題文「TCP/IPネットワークにおけるARPの説明として、適切なものはどれか。」

解答群
ア. IPアドレスからMACアドレスを得るプロトコルである。
イ. IPネットワークにおける誤り制御のためのプロトコルである。
ウ. ゲートウェイ間のホップ数によって経路を制御するプロトコルである。
エ. 端末に対して動的にIPアドレスを割り当てるためのプロトコルである。

この問題は確か結構な頻度で過去問題に出ていて、覚えていた問題である。ただ、前回は急いでいたのでさっくり内容だけ把握していたので、今回調査対象にしてみた。
また、答えがわかっても結局は他の選択肢の問題だった場合は正答できないので、他の選択肢も把握したかったのもある。

まず、ARPだが、グーグル先生に聞くとすぐに出てきた。
「ネットワークエンジニアとして」さんの「TCP/IP - ARP
このページではARPリクエストとARPリプライ、それからRAPT(Reverse Address Resolution Protocol)について説明していて、さっくりARP(Address Resolution Protocol)とは「IPアドレスからEthernetのMACアドレスの情報を得られるプロトコルです。」と書いてくれている。

確かコマンドプロンプトでこのプロトコルを使ってIPアドレスを取得した記憶がある。たまにであるが、プリンタのMACアドレスを参照してIPアドレスを固定にしたいときなどに、プリンタの液晶には表示されなかったりする場合役に立ったように記憶している。

使うことはあまりないと思うが、それについてはよくお世話になっている「@IT」さんの「WindowsのARPコマンドで通信先を特定するーMACレベルでの通信相手の特定方法ー」などを見ると使い方が書いているようだ。

仕事で使うことはあまりないのと、確かかなり狭い範囲でしか使えないように記憶しているので、実用性はそこまで無いようにも思う。

では次に、というかチートっぽいが解答群のイ.TCP、ウ.RIP、エ.DHCPについて見ていきたい。

まずはTCP(Transmission Control Protocol)だが、ざっくり理解するのは以下の二つのサイトさんを見ると良いように思う。

「ネットワークエンジニアとして」さんの「TCP/IP - TCP」というページと「e-Words」さんの「TCP」というページである。

何故二つ合わせて紹介したかというと、「ネットワークエンジニアとして」さんのページではTCPの説明をざっくりと説明してすぐにポート番号の説明をしているが、「何をするプロトコルか?」については説明していないのに対して、「e-Words」さんはポート番号の説明は置いておいて、TCPについて役割などを説明してくれているからだ。

また、「ネットワークエンジニアとして」さんについてはUDPとの比較もしてくれているのでそこはありがたい点である。

書かれていることをざっくりとまとめると、IPがIPアドレスを指定して送信先のマシンを特定するのに対し、TCPはポート番号からどのアプリケーションに対して送信を行うかということと、通信相手の状況確認と接続の確立・切断や、送受信が確実に行われたか、データの欠落や破損を検知して再送したり、順番どおりに並べ替えを行ったりという制御を行ってくれるのだそうだ。

上記の2つのサイトさんはおそらく、基本的な知識がある程度備わっていることを前提に書かれているので端折られている部分もあるのだと思うので、より具体的な内容について知りたい人は「パソコン初心者講座」さんの「TCP/IPプロトコルとは?」を参照すると良いのではないかと思う。ざっくりとしか見ていないが、とても良くまとまっていて、且つわかりやすいものになっていると思う。

次にRIP(Routing Information Protocol)は、急いでいる時の強い味方「e-Words」さんの「RIPv1/v2」に「ルータなどの通信機器の間で経路情報を交換し、ある地点から別の地点までの最短経路を割り出す・・・」と書かれている。

もっと踏み込んだ内容については、「@IT」さんの「IPルーティング入門(1)」、「ルーティング・プロトコルの役割を理解する」を読むと良いように思う。わからない単語を飛ばしながら読んでも非常に興味深い内容になっていると思う。

DHCPについては応用情報を受けようとする人なら触れる機会が多いんじゃないかと思うので割愛させてもらう(そこまで時間を割けないというのが理由だがw)