※ IPv4 vs IPv6 간단 비교
항목 | IPv4 | IPv6 |
정식 명칭 | Internet Protocol version 4 | Internet Protocol version 6 |
주소 길이 | 32비트 | 128비트 |
주소 수 | 약 42억 개 | 무한에 가까움 (3.4 x 10³⁸ 개) |
형식 예시 | 192.168.0.1 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
도입 시기 | 1981년 | 1998년 |
사용 현황 | 아직 가장 널리 사용됨 | 점점 더 많이 도입 중 |
> 왜 IPv6가 나왔을까?
IPv4는 주소 수가 약 42억 개뿐이라서, 전 세계적으로 IP가 부족해진 상황, 그래서 더 많은 IP를 만들 수 있도록 나온 게 IPv6
상황 | 필요한 버전 |
일반 웹 개발 / API 통신 | 대부분 IPv4 기반 |
글로벌 서비스를 만들거나, IoT 등 수십억 개 장비 연결 | IPv6 고려 필요 |
방화벽, 서버 보안 설정 시 | IPv4, IPv6 모두 고려해야 할 수도 있음 |
※ 서브넷 마스크 (Subnet Mask)
서브넷 마스크는 IP 주소를 네트워크 부분과 호스트 부분으로 나누는 기준
즉, 내가 속한 네트워크의 범위가 어디까지인지 알려주는 값
> 예시
· IP 주소 : 192.168.1.10
· 서브넷 마스크 : 255.255.255.0
이 설정은 192.168.1.0 ~ 192.168.1.255 범위의 IP끼리 같은 네트워크로 간주된다는 뜻
> 잠깐 ! 왜 192.168.1.10 / 255.255.255.0이면, 192.168.1.0 ~ 192.168.1.255끼리 같은 네트워크로 간주되는지 알아보자
> IP 주소와 서브넷 마스크는 비트 단위 연산으로 비교
항목 | 10진수 | 2진수 |
IP | 192.168.1.10 | 11000000.10101000.00000001.00001010 |
서브넷 마스크 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
> IP 주소 & 서브넷 마스크를 AND 연산 (AND 연산 : 둘 다 1일 때만 1)
즉, 이 IP(192.168.1.10)는 192.168.1.0 네트워크에 속해 있다는 뜻
그래서 이 범위 안의 IP (192.168.1.1 ~ 192.168.1.254)는 같은 서브넷에 속한 컴퓨터들이라고 간주되는 것
쉽게 비유하면,
IP 주소 : 내가 사는 집 주소 (예 : 서울시 강남구 101동 201호)
서브넷 마스크 : 어느 동네까지가 우리 '이웃'인지 정하는 기준 (예 : 강남구까지만 이웃)
그래서 서브넷 마스크는 내부 통신 가능한 컴퓨터들의 범위를 정의
(내부 통신이 가능하다 : 같은 네트워크에 속한 컴퓨터끼리는 '라우터나 게이트웨이 없이도' 바로 데이터를 주고받을 수 있다는 뜻)
같은 사무실의 개발자 두 명
개발자 A의 PC IP : 192.168.1.10
개발자 B의 PC IP : 192.168.1.20
서브넷 마스크 : 255.255.255.0
이 둘은 같은 네트워크 (192.168.1.0)에 속하므로 파일 공유, 서버 접속, 핑(Ping) 테스트가 라우터 없이도 바로 가능
상황 | 설명 |
A가 B의 로컬 개발 서버 접속 (http://192.168.1.20:3000) | 개발 중 실시간 결과 공유 |
A가 B 컴퓨터로 파일 공유 | 윈도우 공유 폴더, FTP 등 |
ping 192.168.1.20 | A가 B가 살아있는지 확인 가능 |
서로 다른 네트워크일 경우 | 라우터가 필요 (라우터로 나가기 위한 출입구가 기본 게이트웨이) |
> 서브넷 마스크 예시
서브넷 마스크 | CIDR 표기 | 가능한 호스트 수 | 의미 |
255.0.0.0 | /8 | 약 1,670만 개 | 굉장히 큰 네트워크 |
255.255.0.0 | /16 | 약 6.5만 개 | 중간 규모 네트워크 |
255.255.255.0 | /24 | 254개 | 가장 흔한, 소규모 LAN |
255.255.255.128 | /25 | 126개 | 절반으로 쪼갬 |
255.255.255.192 | /26 | 62개 | 더 쪼갬 |
255.255.255.252 | /30 | 2개 | 거의 포인트투포인트 통신용 |
정리 : 서브넷 마스크는 IP 주소와 비트 AND 연산을 통해 "너와 나는, 같은 동네야"를 판단하는 기준
※ 기본 게이트웨이 (Default Gateway)
기본 게이트웨이는 내부 네트워크에서 외부 네트워크로 나갈 때 통로 역할을 하는 장치
용어 | 비유 | 설명 |
게이트웨이 | 출입구라는 개념 전체 | 아파트 단지의 모든 정문, 후문 포함 |
기본 게이트웨이 | 내가 늘 사용하는 정문 | 내비게이션에 기본 설정된 출구처럼, 내가 외부로 나갈 때 항상 쓰는 정문 |
(보통은 라우터의 IP 주소가 기본 게이트웨이가 됨)
참고 : 모든 라우터는 게이트웨이 역할을 할 수 있지만, 모든 게이트웨이가 꼭 라우터는 아니다.
> 예시
기본 게이트웨이 : 192.168.1.1 (이 주소는 내가 인터넷에 접속하려 할 때 패킷을 먼저 전달하는 대상)
> 비유
내가 집(내부 네트워크)에 있고, 택배를 외국(인터넷)에 보내고 싶다고 해보자, 이때 기본 게이트웨이는 우체국 역할을 한다.
집 밖으로 나가는 건 무조건 우체국(게이트웨이)을 거쳐야 한다.
> 게이트웨이를 통한 통신 절차 (요약) - A의 서브넷 : 192.168.1.0/24, B의 서브넷 : 192.168.2.0/24
1. A(192.168.1.10)는 B(192.168.2.20)가 '다른 네트워크'라는 걸 서브넷 마스크로 판단
2. A는 기본 게이트웨이의 IP로 데이터를 보냄 (A 컴퓨터는 기본 게이트웨이 주소(192.168.1.1)를 알고 있음)
3. 게이트웨이(라우터)가 B의 위치를 확인하고, 패킷을 전달 (게이트웨이는 192.168.2.0/24 네트워크에 접근할 수 있는 경로를 알거나 외부 네트워크로 NAT를 통해 전송할 수도 있음)
4. B가 응답을 보내면, 그 응답도 게이트웨이를 거쳐 A에게 도착
> 게이트웨이 / 라우터 / 패킷
구분 | 개념 설명 | 우편 시스템 비유 | 네트워크 상의 역할 |
게이트웨이 | 다른 네트워크와 내부 네트워크를 연결하는 입구/출구 |
아파트 관리실/정문 (택배/우편이 들어오고 나가는 곳) |
외부로 나갈 때는 출구, 외부에서 들어올 땐 입구 역할 (내부와 외부를 잇는 관문) |
라우터 | 여러 네트워크 사이에서 데이터가 갈 방향을 결정 |
우체국 분류기 (어느 동, 호수로 보낼지 판단) |
네트워크 경로를 계산하고, 데이터가 어느 방향으로 가야 하는지 결정 |
패킷 | 전송되는 데이터의 최소 단위 (쪼개진 데이터 덩어리) |
실제 편지 봉투 (주소와 내용물이 있음) |
컴퓨터 간 전송되는 실제 정보로, 게이트웨이/라우터를 거쳐 이동 |
현실에서 게이트웨이로 설정된 주소가 바로 라우터의 IP 주소인 경우가 많아서, '라우터가 게이트웨이 역할을 한다'고 말하는 것
정리 : 게이트웨이는 내 컴퓨터(내부 네트워크)가 외부(외부 네트워크)와 통신할 때 반드시 거쳐야 하는 관문
※ NAT (Network Address Translation)
사설 IP를 공인 IP로 바꿔주는 기술
즉, 집 안의 여러 기기가 하나의 공인 IP를 공유해 외부와 통신할 수 있게 해주는 것
> 왜 NAT가 필요한지?
우리 집에 노트북, 스마트폰, TV 등 여러 기기가 있다고 했을 때, 이들은 각각 192.168.x.x 같은 사설 IP를 사용한다.
하지만 인터넷은 공인 IP만 알기 때문이다. (사설 IP는 인터넷에서 직접 쓸 수 없음)
> 개발자에게 NAT가 중요한 이유?
집이나 회사에서 서버를 열었는데 외부에서 접속 안 되는 경우 : NAT를 거쳐야 하므로 포트포워딩 필요
Docker, 가상머신 등의 통신 문제 : Docker가 자체 NAT 네트워크를 사용함
사설망끼리 VPN 연결 : NAT 트래버설, 터널링 같은 기술이 필요
정리 : NAT는 사설 네트워크와 외부 네트워크 간의 통역사 역할
· 외부로 나갈 때는 사설 IP -> 공인 IP
· 내부로 들어올 때는 공인 IP -> 사설 IP
※ 포트포워딩 (Port Forwarding)
외부에서 공유기(공인 IP)로 들어온 요청을, 내부 네트워크의 특정 컴퓨터와 포트로 전달해주는 기능
즉, 공유기는 어느 기기로 데이터를 보내야 할지 모르니까 ' 이 포트로 들어오면 이 내부 IP로 보내줘' 하고 길을 지정해주는 설정
'Network > 참고자료' 카테고리의 다른 글
[Network] 개발자를 위한 ping 명령어 (0) | 2025.06.15 |
---|---|
[Network] 운영체제 & 버전별 hosts 파일 위치 (0) | 2025.06.15 |