이 포스트는 널널한 개발자님 강의를 참조하여 작성한 포스트입니다.
IP주소중에 아주 특별한 주소가 있다. 브로드캐스트만큼이나 아주 특별한데 바로 127.0.0.1
이다. 인터넷이라는것은 다른 컴퓨터와 통신하기 위한것인데 예를 들어 어떤 PC가 있다면 이 PC IP주소가 있을것이고 그리고나서 인터넷 저 너머 어딘가에 또 다른 서버가 있다고 하면 이 서버의 IP주소를 알아가지고 통신을 하는 것이 일반적이다. 이 IP주소 자체는 기본적으로 Remote 주소인데 즉, 원격지 주소이다. 그런데 이 관리적인 측면에서 브로드캐스트 주소를 애기했는데 이거 말고 내가 나 자신한테 접속할때도 있다. 이게 무슨소리냐면 다음과 같다.
host가 내가 나한테 접속해야만 할때 여기서 접속하는 주체는 프로세스이다. 즉, 인터넷을 사용하는거는 PC가 아니고 정확히는 이 PC에서 실행중인 프로세스가 인터넷을 쓰는 것이다. 즉, 프로세스들이 내 프로세스들간에 통신을 해야할때 나한테 접속한다고 표현하고 그래서 그 때 쓸 수 있는 주소가 127.0.0.1이고 이것은 Loopback Address라고 한다.
이것을 좀 더 구체적으로 보면 위 그림과 같다. 예를 들어 어떤 PC가 있는데 PC IP주소가 192.169.0.10라고 했다면 어떤 프로세스1(Client)가 동작중인데 이 클라이언트가 어떤 소켓을 열어서 TCP 통신을 하겠다고 하고 프로세스2(Server)도 소켓을 열어서 연결을 받기위해 수신대기를 하고 있다 해보자. 그럼 기본적으로 서버는 이 PC 밖에서 연결이 와서 그 연결을 받아주려는 서버일텐데 이렇게만 연결을 하는게 아니라 클라이언트가 서버와 연결을 할 수 있는 것이다. 여기서 봐야할께 클라이언트가 서버에 접속할때 IP주소를 자기 자신 IP로 할 수 있지만 IP주소를 특정하지 말고 127.0.0.1
로 연결을 할 수 있다. 이렇게 하면 장점이 IP주소가 변경이 되고 연결이 항상 유지될 수 있어서 좋다. 또한 이런 것을 IPC통신이라 하는데 이것은 패킷이 아래로 내려가지 않고 프로세스간 정보를 주거니 받거니 한다.