ファイアウォールとは、PCへ流入してくるパケットが安全かどうかを確かめ、安全であれば受け入れ、そうでなければ破棄するシステムのことです。
パケット:転送されてくるデータのこと
ファイアウォールはPC毎に設定することもありますし、ルーターへその役割を担わせることもあります。個人で利用するPCであれば、PC毎に設定することが多いです。
6


通信を行うソフトウェアを作成する際には、そのソフトウェアがファイアウォールにブロックされないよう設定を行う必要があります。また、サーバーを構築する際には、予めファイアウォールに穴を空けておき、自分達のパケットはその穴を通すようにする必要があります。不要な穴を空けてはいけません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回、IPアドレスで相手方のコンピュータを識別することが可能とお話しました。
しかし、IPアドレスだけでは足りないのです。
IPアドレスで確かに相手方のコンピュータは分かるのですが、相手のコンピュータで稼働しているどのアプリケーションへ届ければよいかまでは分かりません。
例えば相手がオンラインゲームを起動しながらスカイプを使っていたらどうでしょう?
果たしてこのパケットはオンラインゲームのデータなのでしょうか? スカイプの音声なのでしょうか? それを判別する為に「ポート番号」を用います。

ポート番号とは、アプリケーション毎に設定されたデータサーキットの出入口です。
つまり、ポート番号1番をオンラインゲームが専有し、ポート番号2番をスカイプが専有するのです。
パケットが届いた暁には、パケットのヘッダー(内部情報)を参照し、ポート番号が1番なのか2番なのか確認します。1番であればオンラインゲームへ届け、2番であればスカイプへ届けるのです。
8

このように、IPアドレスでPCへ転送した後、ポート番号を使ってアプリケーションへ転送するのです。ここまでやって初めてデータが届けられるのです。

ちなみにポート番号の何番をアプリケーションで専有するかは、予めプログラミングしておきます。送出するパケットにはその情報を持たせ、受け取るアプリケーションではポート番号X番を専有する処理を書いておきます。

個人で制作するアプリケーションの場合、49152番~65535番を勝手に使用することができます。
どこかに届け出る必要はありません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
また、ファイアウォールにて空けておく穴も同じくポート番号です。
ファイアウォールへ予め「ポート番号55555番は使用するからパケットを捨てないで下さい」と命令しておきます。
7