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 방법:
- 파이프 (Pipe): 한 프로세스에서 다른 프로세스로 데이터를 '파이프'를 통해 전달하는 방법입니다. 보통 한쪽 프로세스는 데이터를 쓰고, 다른 한쪽은 그 데이터를 읽습니다.
- 메시지 큐 (Message Queues): 프로세스 간에 메시지를 보내고 받을 수 있는 '우편함'과 같습니다. 하나의 프로세스가 메시지를 보내면, 다른 프로세스가 그것을 받아 읽을 수 있습니다.
- 공유 메모리 (Shared Memory): 여러 프로세스가 동시에 접근할 수 있는 메모리 영역입니다. 마치 여러 사람이 동시에 같은 게시판을 볼 수 있는 것과 같습니다.
- 소켓 (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_
'백엔드 > 네트워크' 카테고리의 다른 글
[네트워크기초이론] #34. MTU와 Packet 단편화 (0) | 2023.10.10 |
---|---|
[네트워크기초이론]#30. 전세계 인터넷을 멈추는 방법과 DNS (1) | 2023.10.10 |
[네트워크기초이론]#28. Unicast, Broadcast, Multicast (1) | 2023.10.04 |
[네트워크기초이론]#25. 이해하면 인생이 바뀌는 TCP 송/수신 원리 (0) | 2023.10.04 |
[네트워크기초이론]#21. Proxy의 활용 첫 번째. '우회' (1) | 2023.10.03 |