アドレスファミリ
通信プロトコルの詰め合わせだよ
その通信をするのに必要な お約束事を全部まとめたものだよ
通信の種類を示す情報だと思っても良いよ
簡単に書くよ
アドレスファミリ(英:address family)とは
「プロトコルファミリ」と同じようなもの。
用語の中身としては
通信するときに必要なお約束事のセットメニュー(マク○ナルドのバ○ューセットみたいなもの)
です。
もう少し具体的に書くと
目的の通信をするのに必要な複数のお約束事(通信プロトコル)をひとまとめにしたもの
です。
イメージしづらければ、単純に
通信の種類を示す情報
と捉えても かまいません。
詳しく書くよ
プロトコルファミリは「目的の通信をするために必要な通信プロトコル(通信する上での お約束事)をひとまとめにしたもの」ね。
何らかの通信をするときには、一種類の通信に対して複数のお約束事が登場します。
例えば、インターネットをするときには「TCP」「IP」「HTTP」など、複数のお約束事に従った通信をすることで、はじめてインターネットが使えます。
どれか1つだけを守ってもインターネットは使えません。
すべてのお約束事を守って、はじめてインターネットが使えます。
守るべきお約束事ひとつひとつが通信プロトコルです。
そして、これらのお約束事の集合体、その通信をするために必要な通信プロトコルをひとまとめにしたものがプロトコルファミリです。
よく分からなければ、ハンバーガーのセットメニューみたいなものだとお考えください。
チーズバーガーとポテトと飲み物の組み合わせでチーズバーガーセット、シェフの気まぐれバーガーとポテトと飲み物の組み合わせでぴよぴよバーガーセット、のように単品の商品の組み合わせで1つのセットメニューになりますよね。
単品の商品が通信プロトコル、セットメニューがプロトコルファミリのイメージです。
それを踏まえて
プロトコルファミリとほとんど同じ意味で使われる用語
が「アドレスファミリ」です。
違いは、調べてみたのですが、分かりませんでした。
実際には微妙な違いがあるはずですが、同じ物と考えても差し支えはないと思います。
アドレスファミリは、通信する上で必要なお約束事のセットメニューです。
使うアドレスファミリが変われば、それに伴い通信の種類も変わります。
アドレスファミリは「通信の種類を示す情報」とも言えるでしょう。
例えば、アドレスファミリを示す定数に「AF_INET」というのがあります。
この値を指定すると「IPv4という種類の通信をするために必要なお約束事たちを使ってやり取りしてくれたまえ」な指示になります。
あえて回りくどい書き方をしましたが、要するに「IPv4で通信しろ!」な指定です。
同じように「AF_INET6」という定数もあります。
この値を指定すると「IPv6という種類の通信をするために必要なお約束事たちを使ってやり取りしてくれたまえ」な指示になります。
要するに「IPv6で通信しろ!」な指定です。
これは「アドレスファミリがAF_INETだったらIPv4を使った通信、AF_INET6だったらIPv6を使った通信になる」と言い換えられます。
いかがでしょう。
アドレスファミリの値が通信の種類を示していますよね。
本来の意味は「通信プロトコルのセットメニュー」ですが、プログラミング関連、特にsocket関連のプログラミングで出てきた場合は「通信の種類を示す情報」もしくは「通信の種類を指定するための情報」と捉えた方が、イメージしやすいと思います。
例えば
アドレスファミリはプロトコルによってサポートされていません
のようなエラーが出た場合は
ごめん、指定された種類の通信はできないんだわ
と言われていると解釈してください。
一言でまとめるよ
まぁ「アドレスファミリ」って単語が出てきたら「通信の種類を示す情報なんだな~」と お考えください。
おまけ
■訳してみるよ
「address(アドレス)」の意味は「住所」とかです。
「family(ファミリー)」の意味は「家族」とか「家庭」とか「一家」とかです。
何となく くっつけると
住所の家族
となります。






