백엔드/네트워크

[네트워크기초이론]#29. IP주소의 종류와 특징

묘걍 2023. 10. 4. 17:45

IP 주소의 종류 (v4)

  • Global IP
  • Private IP
  • Loopback
  • (Broadcast)

IPv4

- 전체 주소의 길이는 32bit

- 8bit에서 나올 수 있는 경우의 수는 2⁸ = 0 ~ 255

 

Global IP

- Internet은 Public network이자 Global network이다.

- Internet은 Router의 거대한 집합체 (+DNS)

 

- Router가 하는 일이 Routing

     - 패킷이 오면 어디로 보낼지 정하고 스위칭해서 전달해줌

- 대전제가 목적지 주소를 보고 Global IP일 때만 Routing을 한다

- Private는? 기본적으로 안 해줌

     - 강제로 하도록 설정할 수는 있음

 

-인터넷에서 Global IP가 같은 애는 없음

     - 다른 방법이 있긴 하지만 기본적으로는 없음

 

 

Private IP

- 사설

- 작은 소규모 인터넷을 구축

- Global IP로 이루어진 진짜 인터넷, Private IP를 쓰는 작은 인터넷 둘 다 원리적으로 다를 건 없음

- Private은 쓰는 놈이 여러개

- 전세계에 쓰고 있는 애들이 많음

Network class

- Network 가 A class다? 그 안에 컴퓨터가 2²⁴개 정도 있을 수 있는 초 거대 네트워크

- B class는 2¹⁶개 정도 - 큰 대학교 정도

- C class는 일반 기업

- 각각의 class 별로 사설 IP 주소가 정해져 있다

- 공유기에서 많이 쓴다

     - 사설 IP로는 인터넷을 못 쓰는데 공유기가 Global IP를 공유해준다.

     - 내가 인터넷 서비스를 돈 주고 사면 Global IP 하나를 줌

     - 이 주소 하나를 가지고 연결할 수 있는 HOST는 하나 밖에 없는데 그걸 동시에 share 해서 나눠 쓰는 것

     - IP 주소를 공유하는 것

 

Loopback

- 127.0.0.1을 가장 많이 씀, Host 자신을 의미

- Process가 실행중, 실행될 때 각자의 고유한 가상 메모리 영역을 가짐

- Socket - 인터페이스를 개방

- TCP 소켓(TCP 스택을 추상화)

- A를 Client, B를 Server라 한다면

- Server가 9000번을 개방 ← Client가 아무 소켓이나 열어서 연결함

- 목적지 서버 주소를 127.0.0.1(나 자신)

- 127.0.0.1은 라우팅이 바깥으로 나가지 않는 것으로 설정되어 있음

- 인터페이스 선택해서 밖으로 나가지 않도록

- Process A와 B가 통신하는데 출발지도 127.0.0.1 목적지도 127.0.0.1 (내가 나에게 보내는 형세)

- Host 관점에서 Packet이라는게 만들어지기는 하지만 밑으로 내려가지 않고 Process B로 감

가상메모리

- IPC (Inter Process Communication): 가상 메모리 영역을 서로 침범하지 못함

더보기

IPC는 "Inter-Process Communication"의 약자로, 번역하면 '프로세스 간 통신'이라는 뜻이 됩니다. 프로세스는 운영 체제에서 실행 중인 프로그램의 인스턴스를 의미합니다. 간단하게 말하면, 컴퓨터에서 동시에 여러 프로그램을 실행하면 각 프로그램은 자신만의 '작업 공간'에서 동작하는데, 이들 프로그램 간에 정보를 주고받을 때 IPC 기술이 사용됩니다.

비유:

상상해보세요, 여러분이 큰 사무실에서 여러 개의 개인 칸막이 안에서 일하고 있다고 생각해봅시다. 각 칸막이는 서로 다른 프로젝트에 대한 일을 진행하고 있습니다. 하지만 때로는 한 칸막이에서 다른 칸막이로 메모나 문서를 전달해야 할 필요가 있을 수 있습니다. 여기서 각 칸막이는 프로세스를, 메모나 문서 전달은 IPC를 상징합니다.

실제 IPC 방법:

  1. 파이프 (Pipe): 한 프로세스에서 다른 프로세스로 데이터를 '파이프'를 통해 전달하는 방법입니다. 보통 한쪽 프로세스는 데이터를 쓰고, 다른 한쪽은 그 데이터를 읽습니다.
  2. 메시지 큐 (Message Queues): 프로세스 간에 메시지를 보내고 받을 수 있는 '우편함'과 같습니다. 하나의 프로세스가 메시지를 보내면, 다른 프로세스가 그것을 받아 읽을 수 있습니다.
  3. 공유 메모리 (Shared Memory): 여러 프로세스가 동시에 접근할 수 있는 메모리 영역입니다. 마치 여러 사람이 동시에 같은 게시판을 볼 수 있는 것과 같습니다.
  4. 소켓 (Sockets): 네트워크 통신을 활용하여 다른 컴퓨터에 있는 프로세스와도 통신할 수 있는 방법입니다.

이러한 IPC 방법들을 통해 프로세스는 서로 정보를 주고받거나 협력하여 작업을 수행할 수 있습니다.

- 로컬에서 서로 정보를 주고 받아야할 경우, 이런걸 운영하는 기법이 있다 (Shared memory)

- IPC기법을 쓸 때 Socket-Loopback하면 소켓통신이면서 자동으로 IPC가 끝나는 일이 벌어짐

- 만약 목적지를 8.8.8.8로 정한다면, Host는 192.168.0.10라면 NIC로 내려 보냄

 

 

출처: https://youtu.be/W0x88b_dYhw?si=vUuBuBZxnOkfu_g_