통신의 기본 요소 : IP, MAC, 포트
데이터 통신을 이해하기 위해서는 먼저 통신에 사용되는 3가지 핵심 주소 체계를 알아야 한다.
- IP 주소 (Internet Protocol Address)
인터넷에 연결된 장치를 식별하는 논리적인 주소이다. 네트워크 환경에 따라 변경될 수 있으며, 전체 인터넷을 통해 최종 목적지를 찾아가는 데 사용된다. 이사 가면 바뀔 수 있는 '집 주소'와 같다. - MAC 주소 (Media Access Control Address)
네트워크 카드(NIC)에 내장된 고유한 물리적 주소이다. 제조 단계에서부터 고정되며, 같은 로컬 네트워크(LAN) 내에서 바로 옆 장치를 찾아갈 때 사용된다. 평생 변하지 않는 '주민등록번호'에 비유할 수 있다. - 포트 (Port)
하나의 IP주소 내에서 실행되는 여러 통신 프로그램 중 특정 프로그램을 식별하는 논리적인 '창구번호'로 웹 서버(80, 443), FTP (21) 등 각 서비스는 정해진 포트를 사용한다.
통신 과정
1. 도메인과 IP 주소 변환 (DNS 조회)
컴퓨터는 `www.google.com`과 같은 문자 주소를 직접 이해하지 못한다. 통신을 시작하려면 해당 도메인에 매핑된 IP 주소를 알아내야 한다. 이 과정을 DNS(Domain Name System)가 담당한다.
- 사용자가 브라우저에 `www.google.com` 을 입력한다.
- PC는 설정된 DNS 서버(보통 통신사가 제공)에 `www.google.com`의 IP 주소를 질의한다.
- DNS 서버는 해당 도메인의 IP 주소를 찾아 PC에 응답한다.
이 단계는 실제 주소를 모를 경우, 상호 안내 서비스를 통해 주소를 알아내는 과정과 같다.
2. 데이터 캡슐화 (패킷 생성)
이제 목적지 IP 주소를 알았으므로, 보낼 데이터를 패킷(Packet) 형태로 만든다. 이 과정을 캡슐화라고 하며, 데이터에 통신이 필요한 정보(헤더)를 계층별로 덧붙인다.
- TCP 헤더 : 출발지 포트 번호와 목적지 포트 번호를 포함한다. 데이터가 목적지 컴퓨터의 어떤 프로그램으로 가야 하는지를 지정한다.
- IP 헤더 : 출발지 IP 주소와 목적지 IP 주소를 포함한다. 인터넷 전체에서 최종 목적지를 정한다.
3. 내부 통신을 위한 주소 결정 (ARP)
이 패킷을 바로 미국에 있는 구글로 던질 수는 없다. 먼저 동네에 인터넷 세상으로 나가는 관문인 '게이트웨이(공유기/라우터)'에 전달해야한다. 그래서 내 컴퓨터는 같은 내부 네트워크에 있는 공유기의 위치(MAC 주소)를 찾기 위해 ARP(Address Resolution Protocol, 주소 결정 프로토콜)을 사용한다.
- PC가 내부 네트워크에 '게이트웨이 IP 주소를 가진 장치의 MAC 주소는 무엇인가?' 라는 ARP 요청을 브로드캐스트한다.
- 게이트웨이는 자신의 MAC 주소를 담은 ARP 응답을 PC에 보낸다.
- PC는 이제 IP 패킷을 게이트웨이의 MAC 주소로 향하는 이더넷 프레임에 담아 전송한다.
4. 인터넷을 통한 패킷 전송
게이트웨이에 도착한 패킷은 드디어 인터넷으로의 여정이 시작된다. '라우터'라고 불리는 장비들이 이 과정을 담당한다. 각 라우터는 패킷의 목적지 IP 주소를 확인하고, 자신이 가진 라우팅 테이블 정보를 이용해 최적의 다음 경로(다음 라우터)로 패킷을 전달한다. 이 과정이 수없이 반복되어 패킷은 최종 목적지인 구글 서버가 있는 네트워크까지 도달한다. 이 과정에서 IP 주소를 변하지 않지만, 각 구간을 건널뛸 때마다 MAC 주소는 계속 바뀐다. 이 과정은 마치 릴레이 경주와 같아서, 각 라우터는 오직 다음 주자의 MAC 주소만 확인하며 패킷을 넘겨준다.
5. 서버의 요청 처리 및 응답
구글 서버는 도착한 패킷을 수신하여 분석한다. IP와 TCP 헤더 정보를 통해 이 패킷이 웹 서버로 온 요청임을 인지하고, 사용자가 요청한 웹 페이지 데이터를 준비한다.
그 후, 서버는 출발지와 목적지 정보를 반대로 설정한 새로운 응답 패킷들을 생성하여 사용자 PC로 다시 보낸다. 이 과정 역시 라우팅을 통해 동일하게 이루어진다.
6. 데이터 수신 및 웹 페이지 렌더링
사용자 PC는 구글 서버로부터 온 응답 패킷들을 수신한다. 웹 브라우저는 이 패킷들을 순서에 맞게 조립하고, HTML, CSS 등의 데이터를 해석하여 우리가 보는 웹 페이지 화면으로 그려준다.(렌더링)
'CS > 네트워크' 카테고리의 다른 글
| [네트워크] OSI 7계층 (0) | 2025.10.14 |
|---|---|
| [네트워크] TCP/IP 4계층 (1) | 2025.08.31 |
| [네트워크] HTTP와 HTTPS(SSL/TLS) 이해하기 (0) | 2025.08.31 |