Tanenbaum의 컴퓨터 네트워크 이론
IP 주소 0.0.0.0(최하위 주소)은호스트가 시작될 때 사용됩니다.. 그 뜻은"이 네트워크" 또는 "이 호스트".
[::]
IPv4의 IPv6 버전입니다 0.0.0.0
.
질문:
1) 언제 이 네트워크를 [::]
의미하고 0.0.0.0
, 언제 이 호스트를 의미합니까?
2) 호스트를 언급할 때 호스트의 모든 네트워크 인터페이스를 의미합니까, 아니면 호스트의 특정 네트워크 인터페이스 하나만 의미합니까?
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/스물넷. 그것이 나타내는 것은 전적으로 소프트웨어가 수신할 것으로 기대하는 것에 달려 있습니다.
해당 호스트를 의미하는 경우 해당 호스트의 모든 네트워크 인터페이스를 의미합니까, 아니면 해당 호스트의 특정 네트워크 인터페이스 하나만을 의미합니까?
소켓 바인딩(수신)을 언급할 때 이는 어떤 IP가 "상관하지 않음"을 의미합니다. 그러나 이는 현재 호스트의 IP로 제한되므로 사실상 현재 호스트의 모든 IP로 주소가 지정된 모든 인터페이스에서 연결이 허용된다는 의미입니다.