네트워크 통신 과정과 NAT 완벽 이해하기
네트워크에서 A→B 통신 과정, 포트번호의 역할, NAT와 포트포워딩, 그리고 공인IP와 사설IP의 차이점을 종합적으로 설명하는 가이드다.
A→B 통신 과정: 라우팅테이블+이더넷+IP+ICMP+ARP
네트워크 통신은 여러 프로토콜이 계층적으로 작동하여 이루어진다. A에서 B로 통신할 때 라우팅 테이블을 확인하고 적절한 경로를 통해 패킷을 전송한다.
라우팅 테이블의 역할
라우팅 테이블은 네트워크에서 목적지까지의 경로를 알려주는 지도 역할을 한다. 장치는 통신하기 전에 반드시 자신의 라우팅 테이블을 확인하여 해당 주소로 이동할 수 있는지 확인한다.
라우팅 테이블 예시:
목적지 네트워크 | 넥스트 홉(다음 라우터) | 인터페이스
10.0.0.0/24 | 직접 연결됨 | eth0
20.0.0.0/24 | 10.0.0.254 | eth0
0.0.0.0/0 | 10.0.0.254 | eth0 (기본 게이트웨이)
💡 라우팅 테이블은 네트워크 엔지니어가 설정하며, B 관련 주소가 있어야만 통신이 가능하다.
통신 과정 단계별 설명
1. 패킷 생성 및 라우팅 테이블 확인
A는 B와 통신하기 위해 패킷을 생성한다. ICMP 요청(타입 8)이 생성되고, 이더넷 헤더에는 목적지 MAC 주소가 포함된다.
이더넷은 가까운 곳을 가는 특징이 있어 MAC 주소 CC…로 패킷을 전송한다. A의 라우팅 테이블을 확인하면 IP가 …10.1이 였다.
2. 라우터에서의 처리
패킷이 라우터에 도착하면 라우터는 자신의 라우팅 테이블을 확인한다. 라우팅 테이블에서 30.2 IP 쪽으로 가라고 지시하면, 라우터는 이더넷 헤더를 새로 22222…로 작성하여 패킷을 전송한다.
이 과정은 B까지 계속 반복되며, 각 라우터는 자신의 라우팅 테이블을 확인하고 적절한 다음 홉으로 패킷을 전달한다.
3. 목적지에서의 응답
B는 패킷을 받으면 ICMP 응답(타입 0)으로 새로운 패킷을 작성하여 응답한다. 이 응답 패킷도 동일한 과정을 거쳐 A에게 돌아간다.
ARP 프로토콜의 역할
통신 과정에서 핵심적인 문제는 “MAC 주소를 모를 때 어떻게 할 것인가?”다. 이때 ARP(Address Resolution Protocol) 프로토콜을 사용한다.
ARP 요청 메시지 구조:
- Source Hardware Address: 요청자의 MAC 주소
- Source Protocol Address: 요청자의 IP 주소
- Destination Hardware Address: 모름(FF:FF:FF:FF:FF:FF 브로드캐스트)
- Destination Protocol Address: 알고자 하는 대상의 IP 주소
ARP 프로토콜은 IP 주소를 알고 있을 때 해당 IP의 MAC 주소를 찾아주는 역할을 한다. 같은 LAN 대역(하나의 네트워크 대역)에서 통신할 때 특히 중요하다.
결론적으로 A→B 통신 과정에서는 ARP, IPv4, ICMP 등 다양한 프로토콜이 함께 사용된다.
A→B 통신 보충: 4계층 추가 - 포트번호
4계층(전송 계층)에서는 포트번호를 사용하여 어떤 애플리케이션이나 서비스가 데이터를 주고받을지 결정한다.
포트번호의 특징
- 하나의 포트는 하나의 프로세스만 사용 가능하다
- 하나의 프로세스는 여러 개의 포트를 사용할 수 있다
- 2계층 MAC주소, 3계층 IP주소, 4계층 포트번호는 모두 “주소”로 사용된다
4계층 프로토콜의 종류
- TCP(Transmission Control Protocol): 연결 지향적, 신뢰성 있는 통신
- UDP(User Datagram Protocol): 비연결성, 빠른 통신
Well-Known 포트
잘 알려진 포트들은 특정 서비스에 할당되어 있다:
- 웹 서버(HTTP): 80
- 보안 웹 서버(HTTPS): 443
- FTP: 21
- SSH: 22
- DNS: 53
⚡ 포트번호는 0~65535까지 사용 가능하며, 0~1023은 Well-Known 포트로 예약되어 있다.
NAT와 포트 포워딩
NAT(Network Address Translation)
NAT는 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위한 기술이다. 하지만 꼭 사설IP를 공인IP로 변환하는 데에만 사용하는 기술은 아니다.
NAT 동작 예시:
내부 IP:포트 192.168.1.10:3000 → NAT → 외부 IP:포트 203.0.113.5:5000
포트포워딩
포트포워딩은 IP와 포트를 특정 IP와 포트로 넘겨주는 NAT의 응용 기술이다. 주로 외부에서 내부 네트워크의 특정 서버에 접근할 수 있게 해준다.
예를 들어, 공인 IP 2의 특정 포트(예: 80)로 접속을 시도하면, 포트포워딩 설정에 따라 내부 네트워크의 특정 서버(예: 192.168.1.10:80)로 연결을 전달한다.
포트포워딩은 외부에서 내부 네트워크의 서비스에 접근할 수 있게 해주는 중요한 기술이다.
공인IP vs 사설IP
공인IP
- 인터넷 서비스 공급자(ISP)가 제공하는 전 세계에서 유일한 IP 주소
- 별도의 설정 없이 외부에서 접근 가능
- 인터넷 상에서 직접 라우팅 가능
사설IP
- IPv4 주소 부족으로 인해 네트워크 안에서 라우터를 통해 할당받은 가상의 주소
- 별도의 설정 없이 외부에서 접근 불가
- 사설IP 범위: 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255
사설IP는 NAT를 통해 공인IP로 변환되어야 인터넷 통신이 가능하다.
네트워크 통신은 여러 계층의 프로토콜이 협력하여 이루어지며, 각 계층은 고유한 주소 체계와 역할을 가지고 있다. 이러한 이해는 네트워크 문제 해결과 설계에 필수적이다.
댓글남기기