応用情報をとりたくて
きたる10月、応用情報技術者試験があります。ので、それまでの二か月間でひたすらに勉強し、その内容をまとめていきたいと思います。
今回はネットワークの過去問を解いたので、その分で出てきた単語をまとめます。
出てきた単語集(前回分)
以下に、今まで取り扱った単語を全て格納しています。
取り扱った単語集
正規分布、確率、モンテカルロ法、再帰的、再使用可能、再入可能、再配置可能、相関係数、ユークリッド互助法、 ハフマン符号化、幅優先と深さ優先探索、ディープラーニング、ベイズの定理、排他的論理和、リストの実現(配列orポインタ)、浮動小数の情報落ち、ハッシュ関数の衝突、完全二分木、ニュートン法、オイラー法、ガウスの消去法、シンプソン法、グラフと隣接行列、スタックとヒープ、BNF(バッカス・ナウア記法)、UTF-8、過学習、パリティチェック、有限オートマトン、ハミング符合、M/M/1待ち行列モデル、クイックソート、選択ソート、挿入ソート、バブルソート、BCD(Binary-coded decimal)、逆ポーランド記法、カルノー図、桁落ち、丸め誤差、情報落ち、打ち切り誤差、値呼び出しと参照呼出し、双方向リスト、シェルソート、ヒープソート、マージソート、オーバーライド、オーバーロード、カプセルか、汎化、TOF(Time of Flight)センサー、RAID0、RAID1、RAID5、RAID2、RAID3、RAID4、SIMD、VLIW、グリッドコンピューティング、レジスタ、命令レジスタ、プログラムカウンタ、ベースレジスタ、インデックスレジスタ、アキュムレータ、汎用レジスタ、パイプライン処理、メモリインターリープ、フォールトトレランス(Fault Tolerance)、フォールトアボイダンス(Fault Avoidance)、フォールトマスキング(Fault Masking)、フールプルーフ(Fool Proof)、フェールセーフ(Fail Safe)、フェールソフト(Fail Soft)、フェールオーバー(Fail Over)、フェールバック(Fail Back)、フォールバック(Fall Back)、MIMD、ウェアレベリング、マルチレベルセル、ブロックアクセス方式、スケールイン/アウト、スケールアップ/ダウン、web3層アーキテクチャ構造、密結合マルチプロセッサシステム、アウトオブオーダー実行、遅延分岐、投機実行、レジスタリネーミング、サーバコンソリデーション、キャパシティプランニング、絶対アドレス方式、相対アドレス方式、間接アドレス方式、SDXC、シンクライアント、アムダールの法則、MMU(Memory Management Unit)、スーパースカラ、スーパパイプライン、構造ハザード、制御(分岐)ハザード、データハザード、シンプロビジョニング、キャパシティプランニング、ZigBee、SAN(Storage Area Network)、磁気ディスクにおけるデータ読み取り時間、ライブマイグレーション、ホットスタンバイシステム、ハートビートバケット、ライトスルー/ライトバック、アクセス透過性、ダイレクトマップ、フルアソシエイティブ、セットアソシエイティブ、スタックポインタ、クラスタリング方式、オブジェクトストレージ、CDN(Contents Delivery network)、量子コンピュータ、ストアドプロシージャ、ラウンドロビン方式、処理時間順方式、ターンアラウンドタイム、パワーゲーティング、ページフォールト、ページイン、ページアウト、クロスコンパイラ、プロファイラ、RFID、ページング、フリップフロップ回路、OSSにおけるディストリビュータ、ガベージコレクション、FIFO/LIFO/LFU/LRU、プリエンプション方式/ノンプリエンプション方式、CS信号(チップセレクト信号)、コンバータ/インバータ、アクチュエーター、LiDAR(Light Detection And Ranging)、EJB(Enterprise JavaBeans)、セマフォ、デッドロック、アサーションチェッカ、テストカバレージ分析ツール、GPLライセンス、ウォッチドックタイマ、DSP(Digital Signal Processor)、Hadoop、デマンドページング/プリページング、フラグメンテーション、FPGA(Field Programmable Gate Array)、PWM/PAM、ビッグエンディアン/リトルエンディアン、MOSトランジスタ、スラッシング、アクセシビリティ、SMIL、レンダリング、インデックスカラー、オーバーレイ、カーニング、ディザリング、JIS X 8341-1、アンチエイリアシング、メタボール、ラジオシティ、レイトレーシング、ニモニックコード、パンくずリスト、サーフェスモデル、H.264、階層型/網型/関係データベース、ANSI/SPARC3層スキーマ(外部/概念/内部)、キー(スーパキー/候補キー/主キー)と外部キー、関数従属(部分/完全/推移的)、正規化(第一/第二/第三正規形)、差集合演算、共有ロック/専有ロック、べき等、ロールフォワード/ロールバック、分散データベースシステムにおける透過性、グラフ指向DB、CURSOR、B+木インデックス、権限付与/はく奪SQL,NoSQL、検査制約、更新可能なビュー、E-R図、データレイク、undo/redo方式、2相コミットプロトコル、データディクショナリ、ACID、CAP定理、スタースキーマ、デッドロック、CASCADE
ネットワーク部分のまとめ教材
今回は、いったん参考書と以下の記事を読んでから過去問を解き始めています。
- TCP/IP(参考)
- TCP(Transmission Control Protocol):データを確実に相手に届けるためのプトロコル
- IP(Internet Protocol):データを宛先まで届けるためのプロトコル
- TCP/IPの4階層モデル(参考)
- アプリケーション層:アプリケーションがネットワークを利用するための層(HTTPなど)
- トランスポート層:データを確実に相手に届けるための層(TCP/UDP)
- インターネット層:データを宛先まで届けるための層(IP)
- ネットワークインターフェース層:物理的なネットワークにアクセスするための層(MACアドレス)
出てきた単語集(今回分)
SDN、ホストアドレス/ネットワークアドレス/ブロードキャストアドレス/サブネットマスク、フォワード/リバースプロキシ、CSMA/CD、レイヤー2スイッチ、ブリッジ、SNMP、ARP/RARP、ルート集約、ルーター、WebSocket、NAPT(IPマスカレード)、ルーティングテーブル、TCP/UDPヘッダー、PPPoE、DHCPクライアント/サーバー、DNS、IPv4におけるクラスA/B/C/D/E、IPパケット、イーサネットフレーム(MACフレーム)、SOAP(Simple Object Access protocol)、REST(Representational state transfer)、IPv6拡張ヘッダー、SSID(Service Set Identifier)、IEEE802.11gにおける2.4GHz帯の干渉、モバイル通信サービスにおけるハンドオフ、IPsec、LPWA(low power wide area)、VRRP(virtual router redundancy protocol)、ICMP(Internet Control Message Protocol)、PLC(Power Line Communication)、BLE(Bluetooth Low Energy)、NFV(Network functions virtualisation)、MIME(Multipurpose Internet mail extension)、マルチホーミング、RIP-2プロトコル、RSS、NTP(Network Time Protocol)
今回分について、それぞれの用語解説
SDN(Software Defined Network):
SDNではルーターやスイッチといったネットワークを構成する機器をソフトウェアで仮想化、一括して制御します。これによりネットワークの構成やルーター、スイッチの設定を柔軟に変更できるようになります。
SDNを実現するプロトコルの1つとして「OpenFlow※」が挙げられます。OpenFlowに準じたSDNでは、ネットワークの道筋の1本1本を自由に最適化できるメリットがあります。具体的にはネットワーク機器を1つの制御装置で集中管理して複雑な転送制御、ネットワーク構成を柔軟に変更できるようになります。
※OpenFlow:ネットワークにおけるハードウェアの機能をソフトウェアで制御可能にする技術
(参考)
ホストアドレス/ネットワークアドレス/ブロードキャストアドレス/サブネットマスク(参考1、参考2)
- プロトコル階層:インターネット層
- 内容:IPアドレスは、ネットワーク部とホスト部で構成されている。ルーターがネットワーク部を見て、ネットワーク外に送るべきかネットワーク内に送るべきか判断する。その際、どこまでがネットワークアドレスかを指すのがサブネットマスクであり、例えば10.1.1.1/24となっていたら、10.1.1.1を8bit*4に直した際の、前24bitがネットワーク部、後ろ8bitがホスト部であり、それぞれそれ以外の部分を全て0にしたものがネットワークアドレス、ホストアドレスとなる。
ブロードキャストアドレスは、ホスト部のビットが全て1になったもので、そのネットワーク内の全てのホストにデータを送信するために使われるアドレスのこと。
フォワード/リバースプロキシ(参考)
- 内容:高速なアクセスや安全な通信を確立するための中継サーバーのこと。フォワードプロキシは、クライアントの代わりにサーバーへリクエストを送信するサーバー、リバースプロキシはクライアントからのリクエストを受け取り、適切なサーバーに転送するプロキシサーバーのこと
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)(搬送波感知多重アクセス/衝突検出))(参考)
- プロトコル階層:ネットワークインターフェース層
- 内容:データの伝送経路が共通の際に、まずケーブル上で信号が流れていないことを確認してからデータを流す方法。もし他のデータと衝突が起きたら、ランダムな時間だけ待機して再度データ送信する方法
レイヤー2スイッチ(参考)
- プロトコル階層:ネットワークインターフェース層(OSIにおけるデータリンク層(2層目))
- 内容:MACアドレス(データリンク層?)を参照してデータ転送を行う機器。(スイッチングハブと同等)
ブリッジ(参考)
- プロトコル階層:ネットワークインターフェース層(データリンク層)
- 内容:MACアドレスを参照してデータ転送を行う機器。ブリッジにハブの機能を追加したものがスイッチングハブ(L2スイッチ)
SNMP(Simple Network Management Protocol)(参考)
- プロトコル階層:アプリケーション層
- 内容:ネットワーク上に存在するサーバーやルーターなどの機器の状態や動作状況をチェックするために使われるプロトコル。監視対象機器に対してリクエストを送り、その機器が応答してくれることで現在の状況を把握することが出来る。通信には、トランスポート層のUDPを使用する
ARP/RARP(Address Resolution Protocol/Reverse Address Resolution Protocol)(参考)
- プロトコル階層:インターネット層
- 内容:ARPはIPアドレスからMACアドレスの情報を得るプロトコル。RARPはその逆で、MACアドレスからIPアドレスを得るプロトコル。
ARPは、送り先IPアドレスのMACアドレスを求めるARPリクエストパケットをブロードキャストし、該当のIPアドレスを持つ端末はARPリプライパケットを送り、MACアドレスを返すことで、LAN上での通信が可能となる。
RARPは、MACアドレスのみ持っている機器が、RARPリクエストをRARPサーバーに送り、RARPレスポンスとしてIPアドレスを取得する。(現在はあまり使われていないプロトコル?)
ルート集約(参考)
- プロトコル階層:インターネット層?()
- 内容:ルーティングテーブル上の複数のエントリーから、共通部分のネットワークアドレスを取り出して集約すること。この反対がサブネット化
ルーター(参考)
- プロトコル階層:ネットワークインターフェース層
- 内容:宛先IPアドレスをもとにパケットの送り先を制御する装置。どのルーターへ送れば宛先のネットワークへの通信が早く行えるかを判断することを経路制御(ルーティング)といい、ルータはそのための経路(ルーティングテーブル)を備えている
WebSocket(参考)
- プロトコル階層:アプリケーション層
- 内容:クライアントとWebサーバ間で双方向通信を行うための技術。クライアントからサーバーへ、HTTPのGETメソッドで「Upgrade WebSocketリクエスト」を送信し、サーバー側がそれに答えて、サーバーとクライアント間でハンドシェイクを行うことで、HTTPとは異なる恒常的なコネクションが確立され、その後はHTTPの手順に縛られずに1つのTCPコネクション上でデータをやり取りできるようになる
NAPT(IPマスカレード)(参考)
- プロトコル階層:インターネット層?
- 内容:ポート番号を利用することで、一つのグローバルIPアドレスと複数のプライベートIPアドレスを紐づけて変換する技術
ルーティングテーブル(参考)
- プロトコル階層:ネットワークインターフェース層
- 内容:どのルーターへ送れば宛先のネットワークへの通信が早く行えるかを判断することを経路制御(ルーティング)といい、ルータの備えている経路(ルーティングテーブル)のこと
TCP/UDPヘッダー(参考)
- プロトコル階層:トランスポート層
- 内容:共通点としては、どちらも送信元ポート、宛先ポート、チェックサム情報を持つが、TCPには3wayハンドシェイクのコントロールフラグとシーケンス番号、応答確認番号を持ち、UDPにはデータサイズを示すセグメント長を持つ(TCPではシーケンス番号と応答確認番号の差からデータサイズを算出できる)
PPPoE(Point to Point Protocol over Ethernet)(参考)
- プロトコル階層:ネットワークインターフェース層(データリンク層)
- 内容:PPPをイーサネット上で実現するプロトコルのこと。PPPは、WANを介して二つのノードをダイアルアップ接続するときに使用されており、ネットワーク層(TCP/IPでのインターネット層)とのネゴシエーションを行うNCPとリンクネゴシエーションを行うLCPから構成されている。これをイーサネットフレームでカプセル化することで実現している
DHCPクライアント/サーバー(参考)
- プロトコル階層:アプリケーション層
- 内容:DHCP(Dynamic Host Configuration Protocol)は、ネットワーク接続に必要なIPアドレスなどの情報を自動的に割り当てるプロトコル。
- DHCPクライアントはIPアドレスを持たないので、0.0.0.0として、255.255.255.255に対してDHCP Dicsoverメッセージを送る。
- DHCPサーバーからDHCPクライアントに対して、割り当てるIPアドレス設定をアドレスプールから選択して、DHCP Offerメッセージを送信
- DHCPクライアントは提案IPを使用することを通知するため、DHCP Requestをブロードキャスト(送信元、宛先IPはDiscoverと同じ)
- 最後に、DHCPサーバーはDHCPクライアントが使用するIPアドレスなどの設定情報をDHCP Ackで送信
DNS(Domain Name System)(参考)
- プロトコル階層:アプリケーション層
- 内容:IPアドレスとドメイン名を紐づける仕組みのこと
IPv4におけるクラスA/B/C/D/E(参考)
- プロトコル階層:インターネット層
- 内容:IPv4において、先頭が0/10/110/1110/1111となっているアドレスをそれぞれクラスA/B/C/D/Eとして分類するもの
IPパケット(参考)
- プロトコル階層:インターネット層
- 内容:IPに基づいてデータ転送する際にやり取りされるデータのこと。実際には、細切れになったデータにIPヘッダがついてIPパケットの形をとっている
イーサネットフレーム(MACフレーム)(参考)
- プロトコル階層:ネットワークインターフェース層
- 内容:イーサネットにおいて、端末間でやり取りされるデータに送信先アドレスなどの制御情報を付加したデータの送受信単位
SOAP(Simple Object Access protocol)(参考)
- プロトコル階層:アプリケーション層
- 内容:ソフトウェア同士でメッセージ交換を行うためのプロトコルであり、データ構造の記述にXMLを利用する。伝送にはHTTPなどを使用
REST(Representational state transfer)(参考)
REST(REpresentational State Transfer)はWebサービスの設計モデルです。RESTなWebサービスは、そのサービスのURIにHTTPメソッドでアクセスすることでデータの送受信を行います。
IPv6拡張ヘッダー(参考)
- プロトコル階層:インターネット層
- 内容:IPv6拡張ヘッダは、IPv6パケットに追加の情報を含めるための仕組み。主に、Hop-by-Hopオプションヘッダ、宛先オプションヘッダ、ルーティングヘッダ、フラグメントヘッダ、認証ヘッダ、Encrypted Security Payloadヘッダが存在
SSID(Service Set Identifier)(参考)
- 内容:無線LANにおけるアクセスポイントの識別名であり、最大32文字までの英数字を任意に設定可能
IEEE802.11gにおける2.4GHz帯の干渉(参考)
- 内容:一つのチャネル幅が22MHzであり、1つのチャネル幅の間隔は5MHzなので、電波干渉を起こさないためには5チャネル以上離す必要がある
モバイル通信サービスにおけるハンドオフ(参考)
- 内容:交信する基地局を切り替える動作のこと
IPsec(参考)
- プロトコル階層:インターネット層
- 内容:IPv6が標準で対応しているセキュリティ機能。IPレベルで暗号化や認証、改ざんの検出を行う。IPヘッダに収まりきらないものについては、別フィールドで情報交換を行うが、その際は、認証専用の認証ヘッダ、認証と暗号化を行う暗号ペイロードを使用
LPWA(low power wide area)(参考)
- 内容:省電力と長距離通信を兼ね備えた通信技術のこと
VRRP(virtual router redundancy protocol)(参考)
- プロトコル階層:インターネット層
- 内容:同一のLANに接続された複数のルーターを、仮想的に1台のルーターとして見えるようにして冗長構成を実現するプロトコル
ICMP(Internet Control Message Protocol)(参考)
- プロトコル階層:インターネット層
- 内容:IPパケットの送信処理におけるエラーの通知や制御メッセージを転送するためのプロトコル。おもにpingコマンドによる接続確認に使用
PLC(Power Line Communication)(参考)
- 内容:コンセントからつながる電力線を通信回線として使用することで、ネットワーク通信を行える技術
BLE(Bluetooth Low Energy)(参考)
- 内容:Bluetoothの拡張仕様の一つで、極低電力で通信が可能なもの
NFV(Network functions virtualisation)(参考)
- 内容:スイッチやルータ、ファイアウォールといったネットワーク専用機器ごと仮想化する考え方
MIME(Multipurpose Internet mail extension)(参考)
- プロトコル階層:アプリケーション層
- 内容:メールでUTF-8やバイナリに対応するためのプロトコル
マルチホーミング(参考)
- 内容:複数のインターネットサービスプロバイダを契約し、1台のコンピュータから複数のインターネット回線が使えるよう設定する方法
RIP-2プロトコル(参考)
- 内容:ルーターにおけるルーティングプロトコルの一つ。ルーティングテーブルの情報を一定時間間隔で交換しあい、宛先ネットワークに至るまでに経由するルーター数(ホップ数)が最小となる経路を選択する。RIPでの最大ホップ数は15
RSS(Really Simple SYndication)(参考)
- 内容:Webサイトの更新情報を配布するためのデータ形式の一つ。XMLベースのマークアップ言語
NTP(Network Time Protocol)(参考)
- プロトコル階層:アプリケーション層
- 内容:ネットワーク上の各ノードが持つ時刻の同期を図るためのプロトコル。使用するポートはUDP123番。現在はNTP3とNTP4が用いられており、NTP4では認証機能が導入されている。簡易版はSNTP
まとめ
今回は、ネットワークの過去問を一通り解きました。
TCP/IPがプロトコルであり、ネットワーク階層ごとにプロトコルが分離されていることを把握できたので、かなり理解しやすくなりました。(プロトコル覚えるのは大変ですが・・・)