- 웹 페이지가 열리기까지의 네트워크 통신 과정
- 웹 브라우저에 www.yahoo.co.kr을 입력하면 화면에 웹 페이지가 나타나기까지 여러 단계의 네트워크 통신이 이루어집니다.
- 이 과정에서 중요한 개념은 ARP(Address Resolution Protocol), DNS(Domain Name System), TCP(Transmission Control Protocol), HTTP(Hypertext Transfer Protocol) 입니다.
- 각각의 역할을 쉽게 설명하면 다음과 같습니다.
- ARP: 같은 네트워크에서 통신할 장비의 MAC(Media Access Control) 주소를 찾습니다.
- DNS: 도메인 이름을 IP(Internet Protocol) 주소로 변환합니다.
- TCP: 데이터를 주고받기 전에 연결을 설정합니다.
- HTTP: 웹 페이지를 요청하고 응답을 받습니다.
참고: 아래 설명은 PC의 DNS 캐시에 해당 도메인의 기록이 없고, 외부 웹 서버와 TCP 연결을 새로 설정하는 일반적인 IPv4 환경을 기준으로 합니다. 실제 환경에서는 캐시, 프록시, 보안 연결 등의 조건에 따라 과정이 달라질 수 있습니다.
1. 전체 동작 과정

- 전체적인 흐름은 다음과 같습니다.
| 단계 | 동작 | 목적 |
| 1~2 | ARP Request / ARP Reply | 게이트웨이의 MAC 주소 확인 |
| 3~4 | DNS Query / DNS Response | 도메인의 IP 주소 확인 |
| 5~7 | TCP 3-Way Handshake | 서버와 TCP 연결 설정 |
| 8~9 | HTTP Request / HTTP Response | 웹 페이지 요청 및 응답 |
- 여기서 꼭 기억해야 할 점이 있습니다. PC가 외부 서버와 통신할 때는 목적지 서버의 MAC 주소가 아니라, 일반적으로 게이트웨이의 MAC 주소를 사용해 첫 번째 이더넷 프레임을 전송합니다. IP 패킷의 목적지 IP 주소는 외부 서버의 주소로 유지됩니다.
2. ARP — 게이트웨이의 MAC 주소 찾기
2-1. PC가 ARP Request를 전송합니다
- PC가 외부 네트워크와 통신하려면 먼저 자신의 기본 게이트웨이(Default Gateway)로 데이터를 전달해야 합니다.
- 예를 들어 PC의 네트워크 정보가 다음과 같다고 가정하겠습니다.
| 항목 | 값 |
| PC IP 주소 | 192.168.10.159 |
| 게이트웨이 IP 주소 | 192.168.10.1 |
| DNS 서버 IP 주소 | 203.255.112.34 |
| 웹 서버 IP 주소 | 203.212.171.217 |
- PC는 게이트웨이의 IP 주소는 알고 있지만, MAC 주소는 모르는 상태입니다. 따라서 ARP Request를 전송하여 게이트웨이의 MAC 주소를 확인합니다.

- 브로드캐스트(Broadcast) 는 같은 브로드캐스트 도메인에 있는 장비들에게 패킷을 전달하는 방식입니다. 따라서 PC와 게이트웨이 사이에 있는 스위치는 해당 프레임을 다른 포트로 전달합니다.
- 단, Target MAC이 항상 0으로 표시되는 것은 아닙니다. 일반적인 ARP Request에서 아직 알아내지 못한 대상 MAC 주소를 0으로 채우는 것입니다.
질문 1. DNS 쿼리가 ARP보다 먼저 전송되는 것 아닌가요?
- 일반적인 상황에서는 게이트웨이의 MAC 주소를 먼저 확인해야 합니다.
- PC가 DNS 서버 203.255.112.34와 통신하려면 해당 서버로 향하는 IP 패킷을 이더넷 프레임에 담아 전송해야 합니다. DNS 서버가 다른 네트워크에 있다면 PC는 프레임의 목적지 MAC 주소로 기본 게이트웨이의 MAC 주소를 사용합니다.
- 따라서 게이트웨이 MAC 주소가 ARP 캐시에 없다면, DNS 쿼리를 실제 네트워크로 전송하기 전에 ARP 절차가 필요합니다.
- 다만 ARP와 DNS 중 무엇이 무조건 먼저 실행되는 것은 아닙니다. PC에 게이트웨이 MAC 주소가 이미 캐시되어 있다면 ARP를 다시 실행하지 않고 DNS 쿼리를 바로 보낼 수 있습니다.
질문 2. 웹 페이지를 열 때마다 ARP Request를 보내나요?
- 아닙니다. PC의 ARP 캐시(ARP Cache)에 게이트웨이의 IP 주소와 MAC 주소가 저장되어 있다면 해당 정보를 재사용합니다.
- Windows 명령 프롬프트에서 다음 명령어로 확인할 수 있습니다.
arp -a
- ARP 캐시는 영구적으로 유지되는 것이 아니라 운영체제의 정책에 따라 일정 시간이 지나거나 조건이 바뀌면 항목이 만료될 수 있습니다.
2-2. 게이트웨이가 ARP Response를 전송합니다
- 게이트웨이는 ARP Request의 Target IP가 자신의 IP 주소와 일치하는 것을 확인하고, 자신의 MAC 주소를 담은 ARP Response를 PC에 전송합니다.

- MAC 주소는 이해를 돕기 위한 예시입니다.
질문 1. 왜 응답은 유니캐스트인가요?
- ARP Request에는 요청한 PC의 MAC 주소가 포함되어 있습니다. 게이트웨이는 이 주소를 이용해 해당 PC로 응답할 수 있으므로, 일반적인 ARP 응답은 유니캐스트로 전송됩니다.
- 또한 PC와 게이트웨이 사이에 있는 스위치의 MAC 주소 테이블(MAC Address Table)은 ARP 자체가 아니라, 스위치가 프레임을 수신할 때 프레임의 출발지 MAC 주소를 학습하여 만들어집니다.
- 1~2단계 정리: PC는 게이트웨이의 MAC 주소를 확인하여 외부 네트워크로 데이터를 전달할 준비를 합니다.
3. DNS — 도메인 이름으로 IP 주소 찾기
3-1. PC가 DNS Query를 전송합니다
- ARP를 통해 게이트웨이의 MAC 주소를 확인했다면, 이제 PC는 DNS 서버에 도메인의 IP 주소를 물어볼 수 있습니다.
- 사람은 www.yahoo.co.kr처럼 도메인 이름을 사용하지만, 네트워크 통신에서는 목적지 IP 주소를 알아야 합니다.

- 여기서 알아둘 점은 DNS 서버가 외부 네트워크에 있다면 DNS 쿼리도 게이트웨이를 거쳐 전달된다는 것입니다. PC에서 DNS 서버까지 가는 길은 게이트웨이가 연결해 주고, DNS 서버는 도메인에 대응하는 IP 주소를 알려줍니다.
3-2. DNS 서버가 DNS Response를 전송합니다
- DNS 서버가 해당 도메인의 IP 주소를 확인하면 PC에 응답합니다.

- 위 IP 주소는 기존 설명에 사용된 예시이며, 실제 DNS 조회 결과는 시점과 DNS 서버, 네트워크 환경에 따라 달라질 수 있습니다.
질문 1. 웹 페이지에 접속할 때마다 DNS Query를 전송하나요?
- 아닙니다. PC나 운영체제에 DNS 캐시(DNS Cache)가 남아 있다면 저장된 정보를 재사용할 수 있습니다. DNS 서버나 중간의 DNS 캐시에 기록이 남아 있는 경우에도 매번 처음부터 조회할 필요가 없을 수 있습니다.
- Windows에서는 다음 명령어를 사용합니다.
| 목적 | 명령어 |
| DNS 캐시 확인 | ipconfig /displaydns |
| DNS 캐시 삭제 | ipconfig /flushdns |
- DNS 캐시를 삭제하면 이후 이름 조회에서 다시 DNS 쿼리가 발생할 수 있습니다. 다만 브라우저 자체의 DNS 캐시나 다른 캐시까지 모두 삭제되는 것은 아닙니다.
- 3~4단계 정리: PC는 DNS 서버에 도메인의 IP 주소를 물어보고, 응답받은 IP 주소를 이용해 웹 서버와 통신할 준비를 합니다.
4. TCP — 서버와 연결 설정하기
4-1. TCP 3-Way Handshake
- PC가 웹 서버의 IP 주소를 알게 되었다고 해서 바로 데이터를 주고받는 것은 아닙니다. TCP(Transmission Control Protocol)를 사용하는 경우, 먼저 통신 연결을 설정합니다.
- 이 과정을 TCP 3-Way Handshake(3단계 연결 설정) 라고 합니다.

세 단계가 완료되면 TCP 연결이 설정되고, 양쪽은 해당 연결을 통해 데이터를 주고받을 수 있습니다.
- SYN (Synchronize): 연결을 시작하고 통신에 필요한 초기 순서 번호를 맞추기 위한 플래그입니다.
- ACK (Acknowledgment): 상대방이 보낸 데이터를 확인했다는 의미의 플래그입니다.
쉽게 비유하면 전화 통화와 같습니다.
- PC: “전화 연결할게요.”
- 서버: “네, 연결할 수 있어요.”
- PC: “확인했습니다. 이제 이야기하죠.”
이 과정은 데이터를 주고받기 위한 준비 단계이며, 웹 페이지 자체를 전송하는 과정은 아닙니다.
5. HTTP — 웹 페이지 요청 및 응답
5-1. PC가 HTTP Request를 전송합니다
- TCP 연결이 설정되면 PC는 웹 서버에 웹 페이지를 요청합니다.
- HTTP(Hypertext Transfer Protocol)는 웹 브라우저와 웹 서버가 요청과 응답을 주고받는 데 사용하는 프로토콜입니다.
예를 들어 PC가 다음과 같은 요청을 보낼 수 있습니다.
GET / HTTP/1.1
Host: www.yahoo.co.kr
- GET: 서버에 특정 리소스를 요청하는 HTTP 메서드입니다.
- /: 웹 사이트의 기본 경로를 의미합니다.
- Host: 요청하려는 웹 사이트의 도메인을 지정합니다.
실제 요청에는 브라우저와 서버의 상황에 따라 다양한 헤더가 추가될 수 있습니다.
5-2. 웹 서버가 HTTP Response를 전송합니다
- 서버는 요청을 처리한 뒤 응답을 돌려줍니다. 응답에는 상태 코드와 HTML(Hypertext Markup Language), 이미지, 스타일시트 등의 콘텐츠가 포함될 수 있습니다.
예를 들면 다음과 같습니다.
HTTP/1.1 200 OK
Content-Type: text/html
- 200 OK: 요청이 정상적으로 처리되었다는 의미입니다.
- Content-Type: 응답 데이터의 종류를 나타냅니다.
브라우저는 받은 HTML을 해석하고, 필요한 이미지와 기타 리소스를 추가로 요청하여 웹 페이지를 화면에 표시합니다.
8~9단계 정리: PC가 웹 서버에 페이지를 요청하면, 웹 서버는 해당 요청에 대한 응답 데이터를 전송합니다. 브라우저는 응답 데이터를 처리하여 웹 페이지를 표시합니다.
6. 핵심 내용 요약

- 가장 중요한 것은 ARP는 MAC 주소, DNS는 IP 주소, TCP는 연결 설정, HTTP는 웹 콘텐츠 요청과 응답을 담당한다는 점입니다.
- 이 네 가지 역할을 구분할 수 있으면 웹 페이지가 열리는 과정을 이해하기 훨씬 쉬워집니다.
'Network > 네트워크 이론' 카테고리의 다른 글
| Bandwidth(대역폭)와 Throughput(처리량) (0) | 2026.10.20 |
|---|---|
| Bit(비트), Byte(바이트), 네트워크 속도 단위 정리 (0) | 2026.10.13 |








