Tanenbaumのコンピュータネットワーク理論
IPアドレス0.0.0.0(最下位アドレス)はホストの起動時に使用されます。。その意味は「このネットワーク」または「このホスト」。
[::]
IPv4のIPv6バージョン0.0.0.0
。
質問:
1) いつこのネットワークを[::]
意味し0.0.0.0
、いつこのホストを意味しますか?
2)ホストに言及するときは、ホストのすべてのネットワークインターフェイスを意味しますか、それともホストの特定のネットワークインターフェイスを1つだけ意味しますか?
3)[::]
同じLAN内の他のホストからmysqlサーバーにアクセスできるのはなぜですか?これがこのネットワークを指すか、またはこのホストを指すか。[::]
ホストが「起動時に」存在しなくてもmysqlサーバーで使用されるのはなぜですか?
$ sudo netstat -ap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 23683/mysqld
tcp6 0 0 [::]:33060 [::]:* LISTEN 23683/mysqld
unix 2 [ ACC ] STREAM LISTENING 1169294 23683/mysqld /var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 1169513 23683/mysqld /var/run/mysqld/mysqlx.sock
unix 2 [ ] DGRAM 1169211 23683/mysqld
ありがとうございます。
答え1
netstat
提供された出力では、「0.0.0.0」と「[::]」は「このホスト」を意味するのではなく、問題のサービスが「このホストのすべてのインタフェース」を受信していることを意味します。したがって、これらのポートはlocalhostを含むすべてのホストで開かれています。
答え2
RFC 1122の公式IP定義はですthis host on this network
。これこれ正式な定義。ただし、オペレーティングシステム固有の用途は依然として存在します。
Linuxで内部的に使用され、[::]
他の0.0.0.0
コンピューティング領域では「Null」と考えられています。状況によっては、「null」は「何もなし」、「不明」、「無関係」、または時々「エラー」を意味する場合があります。その意味は実際には状況によって異なります。
IPアドレスは、ネットワークまたはホストを表すために使用できます。例えば192.168.1.1ホストです192.168.1.0/二十四。それが示すことは、完全にソフトウェアが受け取ることを期待することに依存します。
そのホストを意味する場合は、そのホストのすべてのネットワークインターフェイスを意味しますか、それともそのホストの特定のネットワークインターフェイスを1つだけ意味しますか?
ソケットバインディング(受信)を参照するとき、これはどのIPが「関係ありません」を意味します。ただし、これは現在のホストのIPに制限されるため、実際には現在のホストのすべてのIPにアドレス指定されたすべてのインターフェイスで接続が許可されることを意味します。