2016-09-04 4 views
4

무엇이 들었는지 모르겠다.은에서 bind까지 127.0.0.1 (또는 :: 1 등)이 아닌 주소의 소켓을 의미한다.
저는 정의가 없습니다 - 에 있습니다. 에있는 포트에 소켓을 바인딩합니다. 내 기계는 localhost입니까?
기계 또는 IP 주소의 포트를 바인딩하거나 들으려면 어떤 감각이 있습니까?
개념적으로, 그것은 단지 나에게 이해가 가지 않는다!
소켓을 localhost가 아닌 다른 주소에 bind()하는 것은 무엇을 의미합니까?

(이 구글에 놀라 울 정도로 열심히 증명했다 ... 아마도 내가 올바른 용어를 인터넷 검색을하고 있지 않다 때문입니다.) 소켓의 바인딩

+0

내 자신의 독자 (나중에 독자들에게)는 나중에 [이 페이지] (https://technet.microsoft.com/en-us/magazine/ad9db381-1e1b-4077-be1c-bcefb11f1ea8)와 관련이 있습니다. – Mehrdad

+0

연결된 페이지의 관련성은 어떻게됩니까? 바인딩에 대해서는 전혀 언급하지 않습니다. – LarsH

+0

@LarsH : 정직하게 여기에 게시 한 구체적인 이유는 기억이 나지 않지만 그 이유는 귀하가 귀하의 컴퓨터가 아닌 귀하의 주소에 구속력을 가졌기 때문이라고 추측합니다. 페이지 회담. – Mehrdad

답변

11

가이 소켓으로 데이터를 수신하기 위해 주소와 포트하기위한 것입니다 (대부분의 경우) 데이터를 보낼 때이 주소/포트를 데이터 소스로 사용하십시오 (예 : FTP 서버에서 데이터 연결에 사용).

일반적으로 특정 시스템에는 여러 인터페이스가 있습니다. 즉, 시스템이 자체적으로 도달 할 수있는 가상 인터페이스 루프백, 이더넷, WLAN, VPN 등이 있습니다. 이 인터페이스에는 각각 여러 개의 IP 주소가 할당 될 수 있습니다. 예를 들어 루프백은 대개 127.0.0.1이며 IPv6도 :: 1이지만 다른 것들도 할당 할 수 있습니다. 이더넷 또는 WLAN은 로컬 네트워크의 IP 주소 (예 : 172.16.0.34)를 갖습니다.

특정 주소로 데이터를 수신하기 위해 소켓을 바인딩하면이 특정 IP 주소로 보낸 데이터 만받을 수 있습니다. 예를 들어 127.0.0.1에 바인드하면 자신의 시스템에서 데이터를받을 수 있지만 로컬 네트워크의 다른 시스템에서는 데이터를 수신 할 수 없습니다. 127.0.0.1 : 어떤 데이터에 대해서도 127.0 .0.1은 자신의 127.0.0.1로 보내지고 두 번째 127.0.0.1은 외부에서 연결할 수없는 내부 루프백 인터페이스의 주소입니다.

소켓을 0.0.0.0` (Ipv4) 및 :: (Ipv6)과 같은 포괄 주소로 바인딩 할 수도 있습니다. 이 경우 특정 IP 주소에 바인딩되지 않지만 머신의 모든 IP 주소로 데이터를 수신 할 수 있습니다.

+0

+1 답을 고맙다. 이것은 실제로 나에게 몇 가지 질문을 제기한다 : (1) 그래서 내가 바인딩하는 "주소"가 실제로 바인드 할 * 인터페이스 *를 지정하고 있다고 말하는 것이 맞습니까? (2) 첫 번째 부분에도 불구하고 두 인터페이스에서 동일한 주소를 사용하면 어떻게됩니까? 동시에 둘 모두에 바인딩됩니까? (3) 127.0.0.1 로의 바인딩이 다른 시스템이 보안 관점에서 나에게 패킷을 보내지 못하게한다는 것이 실제로 사실입니까? 목표에 대한 가짜 IP 주소를 지정하는 패킷을 수동으로 보낼 수 있습니까? (4) 가짜 주소에 100 % 도달 할 수없는 소켓이 있습니까? – Mehrdad

+0

@Mehrdad : 아니오, 인터페이스에 바인딩하는 것이 아니라 인터페이스의 주소에 바인딩합니다. Bindung을 127.0.0.1로 보내면 127.1.1에 대한 데이터를받지 못합니다.1이 인터페이스가 같을지라도. (2) 다른 인터페이스에서 동일한 IP를 사용할 수없고 혼돈이 발생하면 (즉, 정의되지 않음) 혼란이 발생합니다. (3) 예, 127.0.0.1에 바인딩하면 127.0.0.1에 도달 할 수있는 모든 시스템에 대한 액세스가 제한되며 이는 시스템에서만 사용해야합니다. 대부분의 시스템은 대상 주소가 구성되지 않은 인터페이스에 도착한 패킷을 거부하거나 삭제합니다. –

+0

(4) 아무도 가짜 주소로 데이터를 보낼 수 없으면 거기에서 데이터를받을 수 없습니다. 이렇게하면 대부분의 경우 소켓을 효과적으로 사용할 수 없게됩니다. –