네트워크 / / 2025. 8. 12. 14:04

내 검색어는 어떻게 구글 서버에 도달할까? 인터넷 경로와 라우팅 이해하기

1. 검색어는 어떻게 서버까지 전달될까?

우리는 매일 인터넷을 통해 다양한 정보를 손쉽게 얻는다. 검색창에 단어를 입력하거나 즐겨 찾는 웹사이트에 접속하는 일은 너무나 자연스러운 행동이다. 그러나 이 단순해 보이는 행동 뒤에는 복잡하고 정교한 기술적 과정이 숨어있다.

 

아마 누구나 한 번쯤 이런 궁금증을 가져봤을 것이다.

 

"내가 검색창에 글자를 입력하고 엔터를 누르면, 그 검색어는 어떻게 구글 서버까지 도달할까?"

 

이를 풀어보기 위해 하나의 상황을 떠올려 보자.

하루 일정을 마치고 집으로 돌아온 카리나는 자신의 활동이 뉴스에 올라왔는지 궁금해 스마트폰으로 구글 검색을 한다. 불과 1초도 되지 않아 화면에는 수많은 검색 결과가 나타난다.

 

< 검색 서버가 처리한 결과를 확인하고 있는 카리나 >

 

겉보기에는 단순한 과정 같지만, 그 짧은 순간에도 수백, 수천 개의 네트워크 장비가 동작하고 수많은 경로 선택 과정이 눈에 보이지 않게 진행된다. 마치 편지를 우체통에 넣으면 집배원이 수거하여 물류센터 → 국제 배송 허브 등을 거쳐 최종 목적지로 전달하는 것처럼, 인터넷에서도 데이터는 정해진 길을 따라가며 필요할 때는 다른 길로 우회하여 목적지에 도달한다.

 

그렇다면 데이터의 네트워크 경로는 어떻게 결정되는 것일까?

 

  • 누가 패킷의 경로를 정하는가?
  • 왜 어떤 경로는 빠르고, 어떤 경로는 느릴까?
  • 중간에 문제가 생기면 어떻게 우회할까?

 

이 질문에 답하기 위해 이 글에서는 네트워크의 기본 개념부터 인터넷 서비스 제공자가 어떤 장비를 사용하는지, 경로를 어떻게 선택하는지, 그리고 최종적으로 클라이언트의 요청이 서버까지 어떤 과정을 거쳐 전달되는지를 단계별로 살펴본다.

 

이 글의 목표는 4장에서 다룰 "클라이언트의 요청이 서버까지 도달하는 흐름"을 직관적으로 이해할 수 있도록 돕는 것이다. 4장을 이해하기 위해 필요한 개념과 원리는 2, 3장에서 설명하며, 클라이언트와 서버 사이에 전송되는 데이터의 구조 및 어떤 정보가 담겨 있는지에 대한 별도의 글(#링크)도 함께 작성되어 있다. ‼️ 두 글은 서로를 보완하므로, 함께 읽어야 전체 흐름을 온전히 이해할 수 있다. ‼️

 

2. 네트워크 기본 개념 이해하기

네트워크를 이해하기 위해서는 기본 개념을 알아야 한다. 우리가 흔히 "인터넷을 사용한다."라고 말할 때, 사실 그 안에는 클라이언트와 서버라는 개체가 각자의 역할을 맡아 대화를 나누고 있다고 볼 수 있다. 이 두 개체는 주소와 포트라는 표지판을 따라가며 서로를 찾아갈 수 있고 TCP/IP라는 규칙을 지켜 메시지를 주고받는다. 아래의 내용에 대해 알고 있는 경우 생략해도 좋다.

 

2-1. 클라이언트와 서버의 역할

더보기

네트워크 통신에서 가장 먼저 이해해야 할 것은 "누가 요청을 보내고, 누가 응답을 하느냐"는 것이다. 여기서 요청을 보내는 쪽을 클라이언트, 요청을 받아 처리하고 응답을 보내는 쪽을 서버라고 부른다.

 

  • 클라이언트(Client)
클라이언트는 서비스를 요청하는 역할을 맡는다.
웹 브라우저, 스마트폰 앱, 게임 프로그램 등 사용자의 명령을 네트워크로 전달하는 프로그램이 모두 클라이언트에 해당한다. 예를 들어, 카리나가 사용하는 스마트폰의 웹 브라우저는 검색어를 구글 서버로 전달하는 클라이언트에 해당한다.

클라이언트의 목적은 다음과 같다.
* 사용자의 입력을 받아 요청을 생성한다.
* 서버의 응답을 받아 사용자에게 출력한다.

 

  • 서버(Server)
서버는 요청을 받아 처리한 뒤 응답을 돌려주는 역할을 맡는다. 예를 들어, 구글 검색서버는 카리나로부터 받은 검색어를 기반으로 방대한 데이터베이스를 검색하고, 그 결과를 HTML 문서 형태로 만들어 응답한다. 서버는 동시에 수많은 클라이언트 요청을 처리할 수 있도록 설계되므로 일반 PC보다 더 강력한 하드웨어와 네트워크 환경에서 동작한다.

서버의 목적은 다음과 같다.
* 클라이언트의 요청을 수신하고 처리한다.
* 처리된 결과를 응답으로 반환한다.

 

이와 같이 인터넷의 대부분 서비스는 클라이언트-서버 모델 구조를 따른다. 이 구조에서는 항상 요청과 응답이 한 쌍으로 움직인다.

< 클라이언트와 서버가 주고 받는 요청과 응답의 흐름 >

 

클라이언트와 서버의 역할을 이해하면 이후 단계에서 "데이터가 어느 방향으로 흐르는지"를 파악할 수 있다. 서울에서 출발한 카리나의 요청이 캘리포니아 검색서버까지 이동하는 과정도 결국 클라이언트에서 서버로 가는 흐름이며, 그 반대 방향으로 응답이 돌아온다.

 

2-2. IP 주소와 포트 번호

더보기

클라이언트와 서버가 서로 통신하려면 서로의 위치를 정확히 알아야 한다. 현실 세계에서 우편을 보낼 때 주소가 필요하듯, 네트워크  상의 모든 장치도 자신의 위치를 구분할 수 있는 주소값을 가져야 한다. 이 역할을 담당하는 것이 IP 주소이고 그 장치 안에서 특정 프로그램이나 서비스를 구분하는 것이 포트 번호이다. 이러한 주소 체계는 OSI 7 계층 모델 중 네트워크 계층과 전송 계층에서 각각 사용된다.

 

  • IP 주소 (Internet Protocol Address)
IP 주소는 네트워크 상에서 통신하는 장치를 식별하기 위한 논리적 주소이다. 논리적이라는 말은, 하드웨어에 새겨진 값이 아니라 네트워크 환경과 연결 위치에 따라 변경될 수 있는 주소라는 뜻이다. 예를 들어, 집의 와이파이를 쓰다가 카페에 가면 노트북의 IP 주소가 달라지는 이유가 여기에 있다.

IP 주소는 두 가지 주요 버전이 있다.
* IPv4 : 인터넷 초창기부터 지금까지 널리 쓰이고 있는 주소 체계로, 네 개의 숫자를 점으로 구분하는 형태( 142.250.206.206)를 가지고 있다. 다만 IPv4로 40년 넘게 쓰다 보니, 주소 개수가 거의 다 사용되었다. 그래서 이 문제를 해결하기 위해 만들어진 것이 IPv6이다.
* IPv6: IPv4보다 더 길고 복잡한 형태를 가지며, 숫자와 알파벳을 함께 쓰고 콜론으로 구분하는 형태(2001:db8::1)를 가지고 있다. IPv6는 주소의 개수가 사실상 무한에 가까워서, 앞으로 인터넷에서 표준이 될 방식이지만, 현재는 IPv4와 함께 병행해서 사용되고 있다.

IP 주소는 쓰임새에 따라 종류가 달라진다.
* 공인 IP : 전 세계 인터넷에서 직접 연결이 가능한 주소이다. 누군가 이 주소로 요청을 보내면, 그 장치까지 곧바로 도달할 수 있다는 뜻이다.
* 사설 IP : 가정이나 회사 내부에서만 사용할 수 있는 주소이다. 외부 인터넷에서는 이 주소로 직접 접근할 수 없다.

즉, IP 주소라 함은 외부 인터넷망에 연결된 공인 IP를 뜻하는 것이고 이는 네트워크 상에서 목적지를 찾기 위한 좌표 역할을 한다. 추후 설명할 라우터라는 네트워크 장비는 IP 주소를 보고 요청을 어느 방향으로 보낼지 결정한다.

 

  • 포트 번호 (Port Number)
IP 주소가 어느 장치와 통신할 것인가를 구분해 주는 역할이라면, 포트는 그 장치 안에서 어느 애플리케이션과 통신할 것인가를 구분해 주는 역할을 한다. 같은 컴퓨터 안에서도 여러 가지 프로그램이 동시에 동작할 수 있기 때문에, IP 주소만으로는 정확한 목적지를 특정할 수 없다.

하나의 장치에서 사용할 수 있는 포트 번호는 0부터 65535까지이며, 다음과 같이 범위 별로 분류된다.

* 잘 알려진 포트 (0 ~ 1023) : 해당 포트들은 사용목적이 국제적으로 정해져 있다. 이렇게 정해진 특정 서비스는 항상 동일한 포트 번호를 사용하기 때문에, 클라이언트는 별도의 설정 없이 해당 서비스에 접근할 수 있다. 예를 들어, 카리나의 검색 요청은 HTTPS에 해당하기 때문에 목적지 포트를 '443'로 설정한다.

* 등록된 포트 (1024 ~ 49151) : 해당 포트들은 특정 애플리케이션이나 서비스가 사용하도록 IANA에 등록된 포트이다. 예를 들어, MySQL(3306), PostgreSQL(5432) 등의 데이터베이스나 기타 서버 애플리케이션들이 이 범위의 포트를 사용한다.

* 동적/사설 포트 (49152 ~ 65535) : 해당 포트들은 일반적으로 클라이언트 애플리케이션이 서버와 통신할 때 임시로 이 범위의 포트를 할당받아 사용한다. 운영체제마다 사용하는 포트가 다를 수 있다.

 

정리하면, IP주소는 "어느 장치인가"를, 포트 번호는"해당 장치 안의 어느 애플리케이션인가"를 구분하는 정보라고 말할 수 있다. 클라이언트와 서버의 IP주소 및 포트가 제공되어야 서로 간에 정확한 통신이 이루어진다. 

< 요청과 응답에 각각 포함된 출발지 및 목적지의 IP주소와 포트번호 >

 

2-3.  DNS - 도메인을 IP로 바꾸는 원리

더보기

IP 주소를 알게 되니 자연스럽게 의문이 생긴다. 우리는 구글링 할 때 보통 'https://google.com'같은 문자 형태의 주소를 입력한다. 그런데 실제 컴퓨터가 통신할 때는 IP 주소가 필요로 한다고 한다. 그렇다면, 사람이 인식할 수 있는 문자 기반의 도메인 이름은 어떻게 기계가 이해할 수 있는 숫자 주소로 바뀌는 걸까? 이 과정을 담당하는 것이 바로 DNS이다.

 

  • DNS (Domain Name System)
DNS는 도메인 이름에 대응하는 IP 주소를 알려주는 시스템이다. 쉽게 말해, www.google.com의 실제 IP 주소는  142.250.206.206 임을 알려주는 역할을 한다. 만약 DNS가 없다면, 우리는 구글에 접속하기 위해 매번 복잡한 숫자 IP를 외워야 할 것이다. 하지만 DNS가 존재함으로써 이러한 불편함으로 해결해 주며, 인터넷 주소를 사람이 이해하기 쉬운 문자 기반으로 표현할 수 있도록 해준다.

DNS가 동작하는 메커니즘은 다음과 같다.
1️⃣ 단계 : 사용자가 www.google.com을 입력
2️⃣ 단계 : 도메인 이름을 모르는 브라우저는 내부 DNS 캐시를 확인한다.
3️⃣ 단계 : 확인 후에도 IP 주소를 알 수 없다면, OS의 로컬 DNS 캐시를 확인한다.
4️⃣ 단계 : 확인 후에도 IP 주소를 알 수 없다면, OS가 설정한 DNS 서버에 질의하여 해당 도메인의 IP 주소를 받아온다.
5️⃣ 단계 : 브라우저가 IP 주소를 사용해 서버에 연결한다.

 

정리하면, DNS는 전화번호부와 같다. 전화번호부 상에서 이름으로 연락처를 찾듯, 네트워크 장치는 DNS 상에서 도메인 주소로 IP 주소를 확인한다.

 

2-4. MAC 주소와 네트워크 장치 식별

더보기

클라이언트와 서버가 통신하려면 IP 주소만으로는 충분하지 않다. IP 주소가 목적지의 방향을 알려주는 '좌표'라면, 같은 네트워크 안에서 실제로 그 장치를 찾아가기 위해서는 MAC 주소가 필요하다.

 

  • MAC 주소 (Media Access Control Address)
네트워크 카드(NIC, Network Interface Card)는 인터넷이나 와이파이를 담당하는 하드웨어를 말하는데 MAC 주소는 NIC 제조 단계에서 부여되는 고유한 식별 번호이다. 한 장치에 하나씩 존재하며, 보통 𝟎𝟎:𝟏𝗔:𝟐𝗕:𝟑𝗖:𝟒𝗗:𝟓𝗘 처럼 16진수와 콜론을 이용해 표기된다. 이 주소는 하드웨어에 새겨져 있기 때문에 기본적으로 변하지 않고, 같은 네트워크 안에서 장치를 구분하는 데 사용된다.

MAC 주소는 OSI 7 계층 중 데이터 링크 계층에서 사용되며, 그 중요한 특징은, 동일한 네트워크 안에서만 유효하다는 점이다. 예를 들어, 집안의 PC와 와이파이 공유기는 같은 네트워크 안에 존재하기 때문에 서로의 MAC 주소를 이용해 데이터를 주고받지만, 집 밖의 인터넷 망으로 나가면 MAC 주소는 의미가 없다. 다른 네트워크로 넘어갈 때마다, 그 구간에 맞는 새로운 MAC 주소가 사용되기 때문이다.

 

정리하면, IP 주소는 어느 쪽으로 가야 하는지를 알려주어 라우터가 다음 목적지를 결정하게 하고, MAC 주소는 같은 네트워크 안에서 정확히 어디로 가야 하는지를 알려준다. 결국 클라이언트의 요청은 IP 주소로 큰 방향을 잡고, MAC 주소로 세부 위치를 찾아가며 전달되는 것이다.

 

2-5. TCP/IP와 패킷 구조

더보기

클라이언트와 서버가 요청과 응답을 주고받기 위해서는 일정한 규칙에 맞춰 포장하고 전달하는 방법이 필요하다. 이 역할을 하는 것이 TCP/IP 통신이며, 데이터의 전송 단위를 패킷(Packet)이라고 부른다.

 

TCP/IP는 인터넷에서 데이터를 안정적으로 전송하기 위해 만들어진 통신 규칙의 집합이다. 데이터를 작은 조각(패킷)으로 나누어 보내고, 각 패킷에는 목적지 IP, 출발지 IP, 포트 번호, 순서 정보 등이 담긴 헤더와 실제 내용이 담긴 데이터가 들어 있다.

해당 패킷이 클라이언트로부터 출발하여 목적지에 도달하게 된다. 목적지에 도달한 패킷들은 서버가 모두 모아서 원래의 데이터로 복원하여 클라이언트의 요청을 확인한다.

 

이 글에서는 TCP/IP의 동작 원리나 패킷 구조를 깊게 다루지 않는다. 이미 별도의 글에서 이를 자세히 설명했으니, 더 알고 싶은 분은 아래 글을 참고한다.

 

📎 패킷과 PDU로 풀어보는 OSI 7 계층과 TCP/IP 통신 이야기

(데이터가 어떻게 구조화되고, 각 계층에서 어떤 정보가 포함되는지 상세히 다룬 글)

 

3. 네트워크 경로 선택(라우팅)의 원리

지금까지 클라이언트와 서버가 통신하는 데 필요한 기본 개념을 살펴보았다. 간단하게 요약하면 다음과 같다.

 

  • 클라이언트는 서버를 찾아가기 위해 IP 주소라는 좌표를 사용
  • 같은 네트워크 안에서는 MAC 주소를 이용해 네트워크 장비를 하나씩 찾아감
  • 포트 번호를 통해 서비스 종류를 구분
  • DNS로 사람이 기억하기 쉬운 도메인 이름을 숫자 주소로 변경
  • TCP/IP 규칙을 따라 데이터를 패킷이라는 작은 조각으로 나누어 보냄

 

그렇다면 이제 이런 질문이 생길 수 있다.

 

패킷이 목적지 IP 주소 정보를 가지고 있다면, 그다음에는 어떻게 길을 찾아가는 걸까?

 

바로 이 지점에서 네트워크 경로 선택, 즉 라우팅(Routing) 개념이 등장한다.

라우팅은 내비게이션과 유사하다. 지도상에서 목적지 좌표를 알고 있다고 해도, 어떤 도로를 타고, 어떤 톨게이트를 지나 어디로 빠져나갈지는 상황에 따라 정해야 한다.  마찬가지로, 인터넷에서는 패킷이 목적지까지 가는 동안 앞으로 설명하게 될 여러 네트워크 구간과 장비를 거치게 되는데, 이때 어떤 장비를 거쳐 가는 것이 최적인지를 결정하는 과정이 필요하다.

 

이 장에서는 네트워크 경로 선택에 관련된 동작 원리를 살펴본다. 먼저 인터넷 서비스 제공자(ISP)가 운영하는 주요 네트워크 장비를 알아보고, 그 장비들이 패킷을 어떻게 전달하는지, 라우팅이 어떤 방식으로 다음 길을 선택하는지, 그리고 전 세계 인터넷 경로를 연결하는 BGP(Border Gateway Protocol)가 어떻게 동작하는지도 함께 다룰 것이다.

 

3-1. ISP가 사용하는 주요 네트워크 장비

우리나라의 인터넷 서비스 제공자는 SK브로드밴드, KT, LG U+ 가 있다. 카리나의 브라우저가 검색 요청을 보내면 그에 따라 생성된 패킷이 ISP가 제공하는 네트워크 장비를 따라 목적지에 도착하는 것이다. 이 과정에서 ISP는 다양한 네트워크 장비를 사용한다. 이 장비들은 각각 다른 위치에서, 다른 역할을 맡아 데이터를 안전하고 빠르게 전달한다.

 

  • 라우터(Router)
라우터는 IP 주소를 보고 패킷이 가야 할 다음 경로를 결정하는 장비이다. 여기서 말하는 다음 경로는 다음 차례의 라우터를 뜻하며, 이를 다음 홉(Next Hop)이라고 표현한다. 즉, 최종 목적지 서버까지 가는 도중에 거쳐야 하는 다음 단계의 라우터를 말하는 것이다.

이해를 돕기 현실적인 비유를 들자면, 서울에서 부산까지 가기 위해 꼭 거쳐야 하는 포인트들이 있을 것이다. 내비게이션을 이용한다면, 해당 포인트에 도착할 때마다 자신의 목적지 좌표를 보며, 최적 경로를 선택하는 내비게이션의 행동이 라우터가 담당하는 역할과 일치한다고 말할 수 있다.

ISP에서 사용되는 라우터는 여러 가지 종류로 나눌 수 있다. 다만 이러한 분류는 ISP의 네트워크 구조에 따라 다르게 정의될 수 있기 때문에 참고만 한다.

* 액세스 라우터 : 가입자의 네트워크와 ISP 네트워크의 경계에 위치하며, 가입자의 인터넷 접속을 관리하고 패킷을 ISP 내부망으로 전달한다.
* 집선 라우터 : 액세스 라우터와 코어 라우터 사이의 네트워크 경계에 위치하며, 여러 액세스 라우터에서 올라온 패킷을 모아 코어망으로 전달한다.
* 코어 라우터 : ISP 내부의 고속도로로 불리는 백본망의 중심부에 위치하며, 대규모 트래픽을 고속으로 전달하고 ISP의 각 지역망과 외부 연결 지점을 잇는 허브 역할을 한다.
* 엣지 라우터 : ISP 네트워크의 가장 바깥 경계에 위치하며, 외부 네트워크와의 연결을 전담한다.
* 분배 라우터 : ISP 내부 특정 구역에 위치하며, 로드 밸런서나 스위치와 함께 트래픽을 처리하는 역할을 한다.

즉, 라우터는 각 구간마다 다음 목적지가 어디인지 판단하고, 그 구간에 맞는 MAC 주소에 맞게 이더넷 프레임을 새로 캡슐화하여 패킷을 전송한다.

 

  • 스위치(Switch)
스위치는 라우터와 달리 같은 네트워크 구역 안에서 데이터를 전달하는 역할을 한다. 라우터가 어느 길로 갈지 결정했다면, 스위치는 그 구역 안에서 누가 받는지를 정한다. 스위치는 MAC 주소를 기반으로 장치 간 연결을 빠르고 효율적으로 처리하기 때문에 ISP 내부나 데이터센터의 장비 간 연결에 필수적이다.

 

  • 방화벽(Firewall)
방화벽은 들어오고 나가는 데이터를 검사해, ISP의 보안 정책에 맞지 않으면 차단하는 역할을 맡는다. 예를 들어, 악성 코드가 포함된 트래픽이나 허용되지 않은 접근은 방화벽 단계에서 걸러진다. ISP는 네트워크를 보호하기 위해 방화벽을 외부망 연결 지점이나 중요한 내부망 앞에 배치한다.

 

  • 로드 밸런서(Load Balancer)
로드 밸런서는 트래픽이 하나의 서버에 몰리지 않도록 균형 있게 나누어 주는 장비이다. ISP가 운영하는 웹 서비스, DNS 서버 등에서 부하를 분산해 성능과 안정성을 유지한다.

 

이외에도 ISP가 운영하는 장비와 시스템은 다양하지만, 이번 글과 관련된 것은 아니기 때문에 생략한다.

 

3-2. 라우팅 동작 방식과 경로 결정 요소

라우팅(Routing)은 네트워크에서 데이터가 목적지까지 도달하기 위해 어떤 경로를 선택할지 결정하는 과정을 말한다. 여러 갈래의 도로 중 목적지까지 가장 알맞은 길을 찾는 내비게이션과 비슷하다. 이 과정에서 핵심적인 역할을 하는 네트워크 장비가 바로 라우터이며, 라우터는 '패킷의 목적지 IP 주소'를 기반으로 다음 경로, 즉 다음 홉(Next Hop)을 결정한다.

 

여기서 말하는 홉(Hop)은 패킷이 네트워크를 통해 이동하면서 거치는 각각의 중간 장치(주로 라우터)를 의미한다. 출발지에서 목적지까지 가는 경로에서 패킷이 한 장치를 거칠 때마다 홉 수가 1씩 증가한다.

 

※ 라우팅 동작 원리

각 라우터는 라우팅 테이블(Routing Table)이라는 일종의 경로 지도를 가지고 있다. 이 테이블에는 특정 네트워크 대역에 도달하려면 어떤 방향으로 패킷을 보내야 하는지가 기록되어 있다. 라우터가 라우팅 테이블을 활용하는 예시는 다음과 같다.

 

< 라우터의 패킷 전달 과정에서의 이더넷 프레임 처리와 다음 홉의 결정 >

 

  • 1️⃣ 단계 : A 라우터는 자신의 MAC 주소가 적힌 이더넷 프레임을 수신한다.
  • 2️⃣ 단계 : A는 FCS 검사 후 이더넷 프레임을 한꺼풀만 벗겨내어 IP 데이터그램 헤더의 목적지 IP를 확인한다.
  • 3️⃣ 단계 : A는 목적지 IP를 기반으로 라우팅 테이블을 조회한다.
  • 4️⃣ 단계 : A는 B 라우터가 다음 홉임을 판단하고, 관련된 MAC 주소를 ARP 등을 통해 획득한다.
  • 5️⃣ 단계 : A는 기존의 IP 데이터그램을 새로운 이더넷 프레임으로 캡슐화한다. 이때 새롭게 획득한 목적지 MAC 주소를 포함한다.
  • 6️⃣ 단계 : A는 캡슐화한 이더넷 프레임을 다음 홉(B) 방향으로 전송한다.

 

※ 라우팅 방식

라우팅 경로를 라우팅 테이블에 어떻게 기록하느냐에 따라 다음과 같이 나뉜다.

 

  • 정적 라우팅(Static Routing)
라우팅 관리자가 직접 경로를 설정한다. 소규모 네트워크나 경로가 거의 변하지 않는 환경에서 사용된다. 설정이 단순하지만, 경로 변경 시 수동으로 수정해야 하는 번거로움이 있다.

 

  • 동적 라우팅(Dynamic Routing)
라우터들이 서로 네트워크 정보를 주고받으며 자동으로 경로를 업데이트하는 방식을 말한다. 이렇게 하면 관리자가 매번 수동으로 경로를 입력하지 않아도 되고, 어떤 구간에서 장애가 생기거나 특정 경로가 너무 혼잡해지면 라우터들이 스스로 더 좋은 길을 찾아서 경로를 다시 계산한다. 결과적으로, 네트워크는 상황 변화에 맞춰 자동으로 우회 경로를 선택하여 안정적으로 통신을 이어갈 수 있다.

 

※ 홉과 IP 주소의 지속성

라우팅 과정에서 중요한 점은 IP 주소는 클라이언트에서 설정된 순간부터 서버에 도달할 때까지 변하지 않는다는 것이다. 반면, MAC 주소는 네트워크 경계를 넘어갈 때마다 해당 구간의 '다음 홉' 장비 MAC 주소로 변경된다.

 

즉, 라우터는 IP 데이터그램의 헤더는 그대로 유지하면서, 이를 감싸는 이더넷 프레임의 헤더를 매 홉마다 새로 작성하여 다음 네트워크 구간에 맞는 MAC 주소를 적용한다. 이러한 구조 덕분에 IP 주소만으로 전 세계 어느 곳에 있든 목적지를 식별할 수 있으며, MAC 주소는 각 네트워크 구간 내에서만 유효하게 쓰일 수 있다.

 

※ 라우팅 경로 선택의 기준과 ISP 정책의 영향

라우팅의 본질은 데이터가 가장 효율적이고 안정적으로 목적지에 도달하도록 길을 안내하는 것이다. 이때 경로를 선택하는 기준은 단순히 '가장 짧은 거리'만이 아니다. 지연 시간, 대역폭, 경로의 안정성, 회선 비용, 사업 정책까지 다양한 요소가 함께 고려된다.

 

이 기준들이 어떻게 우선시 되는지는 ISP의 선택과 전략에 따라 달라진다. 예를 들어, 어떤 ISP는 품질과 속도를 최우선으로 하여 지연이 적은 경로를 선택할 수 있지만, 다른 ISP는 비용 절감을 위해 자기 망을 최대한 활용하거나 특정 파트너망을 우선적으로 거치는 경로를 택할 수도 있다.

 

결국, 표준 라우팅 프로토콜이 제공하는 기본 계산 규칙은 동일하지만, 실제 어떤 경로가 선택될지는 각 ISP가 어떤 요소에 가중치를 두느냐에 따라 달리진다. 그래서 서울에서 캘리포니아로 가는 같은 요청일지라도, ISP가 다르면 실제 데이터가 지나가는 길도 달라질 수 있다.

 

3-2의 내용을 정리하자면, 라우팅라우터의 테이블 기반 경로 탐색 + ISP가 세운 내부 정책 + 네트워크 상황을 반영한 경로 선택의 결합으로 이루어지며, 이는 네트워크 안정성과 효율성을 좌우하는 메커니즘이다.

 

3-3. BGP와 해외 경로 선택

인터넷은 하나의 거대한 네트워크처럼 보이지만, 사실은 수많은 작은 네트워크들이 모여서 만들어진 구조이다. 이런 작은 네트워크들을 자율 시스템(AS, Autonomous System)이라고 부르는데, 각각의 AS는 하나의 조직이나 회사가 독립적으로 운영한다. 예를 들어, KT나 SK 브로드밴드 같은 국내 인터넷 서비스 제공업체(ISP)도 하나의 AS이고, 구글이나 아마존 같은 글로벌 기업들도 자신만의 AS를 가지고 있다.

 

이렇게 각자 따로 운영되는 AS들이 전 세계적으로 연결되어 있어야 인터넷이 완성된다. 그런데, 서로 다른 AS 사이에서 "어떤 길로 가야 목적지에 도착하는지" 알려주는 방법이 필요하다. 그 역할을 하는 것이 바로 BGP(Border Gateway Protocol)이다.

 

BGP는 쉽게 말해, 인터넷 세계에서 "🗺️ 길 안내 지도" 역할을 한다.

예를 들어, 한국에서 미국에 있는 구글 서버로 데이터를 보내야 한다면, 이때 데이터는 반드시 여러 AS를 거쳐서 가야 한다. 그런데 어떤 AS를 거쳐 가는 것이 좋은지, 그리고  그 경로가 어떤 특성을 가지는지 알려주는 규칙이 BGP라는 뜻이다.

 

BGP는 각 AS가 "내가 이 IP 주소 대역을 가지고 있고, 이 경로로 오면 목적지에 도착할 수 있어"라는 정보를 서로 주고받게 한다. 이를 경로 광고(Route Advertisement)라고 부른다. 이렇게 광고된 경로들을 모아서, 각 ISP는 자신에게 가장 알맞은 길을 선택한다.

 

※ BGP의 동작 원리

BGP(Border Gateway Protocol)는 인터넷에서 서로 다른 네트워크(AS) 간에 경로 정보를 주고받는 프로토콜이다. BGP의 동작 원리를 살펴보면 다음과 같다.

 

  • 1️⃣ 단계 : 서로 다른 AS의 두 엣지 라우터가 TCP(포트 번호 179)를 이용해 서로 연결을 맺어 세션을 만든다.
  • 2️⃣ 단계 : 각 라우터는 정기적으로 Keepalive 메시지를 주고받으며 세션을 유지한다.
  • 3️⃣ 단계 : 새로운 경로가 생기거나 변화가 발생한 A 라우터는 세션을 통해 해당 경로의 목적지 주소와 속성을 통해 광고한다.
  • 4️⃣ 단계 : 새로운 정보를 수신한 B 라우터는 BGP 규칙과 자신의 내부 정책을 기준으로 목적지로 향하는 가장 적합한 경로를 미리 계산한다.
  • 5️⃣ 단계 : B 라우터는 미리 계산한 최적 경로를 라우팅 테이블에 등록한다. 이후 실제 데이터가 해당 경로를 통해 목적지로 전달된다.

 

※ BGP 경로 광고에 포함되어 전송되는 속성

BGP를 사용하는 라우터는 경로를 광고할 때, 단순히 도착할 수 있는 목적지 주소만 보내지 않고 경로의 특성도 함께 전송한다. 이것을 속성값이라고 부르는데, 이 속성들은 수신 라우터가 최적 경로를 결정하는데 중요한 판단 근거가 된다.

 

  • 1️⃣ 순위 : Local Preference
같은 AS 내부에서 여러 경로가 있을 때, 트래픽을 어떤 경로로 먼저 보낼지 결정하는 값이다. 해당 값은 광고를 하는 AS 내부에서 설정하는 값으로 같은 AS의 모든 라우터에 공유되기 때문에, 내부 라우터들이 동일한 경로 선택 기준을 가지게 된다. 또한 BGP 경로 선택 규칙에서 해당 값은 가장 먼저 비교되는 속성 중 하나로 높은 값이 설정된 경로는 다른 조건보다 먼저 선택된다.

예를 들어, 해외망 A 경로는 200, 해외망 B 경로는 100이라면, 같은 목적지라도 A를 우선 선택한다는 뜻이다.

 

  • 2️⃣ 순위 : AS Path
이 경로를 거쳐 목적지에 도달하기 위해 거쳐야 하는 AS 번호의 목록이다. 경유하는 AS가 적을수록 보통은 더 선호되지만, 반드시 짧다고 선택되는 것은 아니다. 또한 트래픽이 길을 잃은 경우, 해당 값으로 경로를 무한히 도는 루프 방지에도 사용된다.

 

  • 3️⃣ 순위 : Origin
해당 경로 광고가 어디서 비롯되었는지를 나타내는 속성이다. 해당 값은 IGP, EGP, Incomplete 세 가지로 구분한다.

* IGP - 현재 사용 중인 프로토콜을 통해 알게 된 경로임을 뜻함
* EGP - 현재는 사용하지 않는 오래된 프로토콜을 통해 배운 경로임을 뜻함
* Incomplete - BGP 이외의 다른 방법으로 들어온 경로임을 뜻함 (예시 : 관리자가 직접 추가한 경로 등)

 

  • 4️⃣ 순위 : MED(Multi-Exit Discriminator)
MED는 특정 경로를 통해 들어오면 좋다는 힌트를 주기 위해 사용된다. 값이 낮을수록 선호되지만, 이는 어디까지나 송신자의 제안일 뿐 강제력은 없다. 따라서 수신자는 송신자의 의도와 다른 판단을 내릴 수도 있으며, 자신의 정책에 따라 이 값을 무시하거나 변경할 수 있다. 또한 MED는 경로 비교에서 우선순위가 낮은 속성이므로, 효과를 발휘하려면 비교 대상 경로들의 Local Preference, AS Path, Origin 값이 동일해야 한다.

예를 들어, 다음과 같은 두 경로가 있다고 하자.
* A 경로 : Local Pref=100, MED=200
* B 경로 : Local Pref=100, MED=100

이 경우 두 경로의 Local Preference가 동일하므로, 수신자 라우터는 MED 값이 더 낮은 B 경로를 선택하는 것이 더 유리하다고 판단할 수 있다. 혹은 수신자 라우터의 내부 정책에 따라 A 경로를 선택할 수도 있다.

 

※ 경로 광고를 수신한 ISP 내부 정책에 따라 추가로 고려하는 요소들

BGP 경로 광고를 받았지만 최적 경로를 선정하기 위해서는 각 ISP나 네트워크 운영자는 자사 고유의 내부 정책을 추가로 적용해야 한다. 이러한 정책은 주로 비즈니스나 기술적 목적을 달성하기 위해 사용되며, 다음과 같은 요소가 대표적이다.

 

  • 회선 비용 : 트래픽 전송에 드는 금전적 비용을 고려하여, 고비용 경로는 우선순위를 낮추거나 필요한 경우에만 사용
  • 회선 품질 및 안정성 : 지연 시간 및 패킷 손실률 등 지표를 기반으로 안정적인 경로를 선호
  • 트래픽 부하 분산 : 특정 경로의 과부하를 방지하기 위해, 트래픽을 여러 경로로 분산시키는 정책을 선호
  • 보안 정책 : 악성 트래픽 유입이 빈번한 경로나 신뢰도가 낮은 경로는 우선순위를 낮추거나 차단
  • 특정 사업자와의 계약 조건 : 제휴, 할인, 품질 보장 등 계약에 따라 특정 경로를 우선 사용

 

3-3을 요약하면, BGP자율 시스템(AS) 간의 경로 정보를 교환해 인터넷 전체의 연결성을 보장하고, 속성값과 ISP 내부 정책을 바탕으로 최적 경로를 선택한다. 따라서 동일한 목적지라도 ISP에 따라 실제 해외 경로가 달라질 수 있으며, 이는 곧 서비스 품질과 비용에도 직접적인 영향을 미친다.

 

4. 클라이언트에서 서버까지 : 전체 데이터 살펴보기

서울에서 카리나가 구글에 검색어를 입력하면, 이 요청은 여러 장비와 네트워크를 거쳐 태평양을 건너 캘리포니아의 구글 서버로 전달될 것이다. 이 과정을 지금까지의 내용을 전부 종합하여 단계 별로 살펴본다. 해당 흐름은 네트워크를 단순화해서 표현한 것이기 때문에 실제로는 더 복잡하고 설명하지 않은 기술들도 다수 생략됨을 인지해야 한다.

 

  • 1️⃣ 단계 : 데이터 생성과 캡슐화
  • 2️⃣ 단계 : 클라이언트에서 ISP망까지 전송
    • 완성된 이더넷 프레임은 집의 와이파이를 통해 국내의 ISP 라우터로 향한다.
    • 이 과정은 같은 네트워크 구간에서 이루어지므로, 스위치들은 이더넷 프레임에 기록된 목적지 MAC 주소를 보고 해당 라우터까지 정확히 전달된다.
  • 3️⃣ 단계 : 국내 ISP 라우터의 라우팅 경로 선택과 전송
    • 국내 ISP 라우터는 도착한 이더넷 프레임을 한꺼풀 해체하여 IP 데이터그램을 추출한다.
    • 라우터는 IP 데이터그램 헤더의 목적지 IP 주소를 확인한다.
    • 라우터는 자신의 라우팅 테이블을 참조해 다음 홉(다른 네트워크로 연결해 주는 라우터)을 결정한다. 이때 경로 선택은 거리뿐 아니라 지연 시간, 대역폭, 비용 등 다양한 요소를 고려한다.
    • 라우터는 IP 데이터그램을 변경하지 않고, 다음 홉의 MAC 주소 정보 등을 덧대어 이더넷 프레임으로 캡슐화 후 전송한다.
    • 경로 상의 스위치들이 이더넷 프레임의 MAC 주소에 따라 이를 전달한다.
    • 이 과정은 다음 라우터에 도착할 때까지 반복된다.
  • 4️⃣ 단계 : 해외 전송을 위한 엣지 라우터의 처리
    • 해외로 이더넷 프레임을 보내기 위해, 국내 ISP의 엣지 라우터가 관문 역할을 한다.
    • 엣지 라우터는 도착한 이더넷 프레임을 한꺼풀 해체하여 IP 데이터그램을 추출한다.
    • 엣지 라우터는 IP 데이터그램 헤더의 목적지 IP 주소를 확인한다.
    • 엣지 라우터는 BGP를 통해 해외 ISP로부터 받은 광고 정보를 참고한다. 이때 BGP 광고에는 다양한 속성이 포함되어 있으며, 이를 통해 여러 해외 경로 중 가장 적합한 길을 선택한다. 선택에는 국내 ISP 내부 정책이 함께 반영된다.
    • 엣지 라우터는 IP 데이터그램을 변경하지 않고, 해외 다음 홉의 MAC 주소 정보 등을 덧대어 이더넷 프레임으로 캡슐화 후 전송한다.
  • 5️⃣ 단계 : 해외 ISP를 통한 목적지 도착
    • 해외 ISP의 라우터들은 4️⃣ 단계에서 결정된 경로를 따라 패킷을 전달한다. 거치는 AS마다 BGP로 공유된 정보에 따라 최적 경로가 유지되며, 최종적으로 캘리포니아에 위치한 구글 서버에 도착한다.
  • 6️⃣ 단계 : 서버의 수신과 응답 생성
    • 서버의 네트워크 카드는 이더넷 프레임을 수신하고, 이를 역캡슐화하여 IP 데이터그램 → TCP 세그먼트 → HTTP 요청 메시지로 순으로 분석한다.
    • 역캡슐화 시, 네트워크 계층은 IP 데이터그램의 헤더에 기재된 목적지 IP 주소가 자신인지 확인한다.
    • 역캡슐화 시, 전송 계층은 TCP 세그먼트의 포트를 확인하여 해당 서비스로 데이터를 전달한다.
    • 역캡슐화 시, 전송 계층은 누락된 세그먼트가 있다면 재요청하고, 이상이 없으면 재조립하여 원래의 HTTP 요청 메시지를 복원한다.
    • 서버는 요청 내용을 처리해 HTTP 응답 메시지를 만들고, 이를 클라이언트에게 보내기 위해 동일한 경로의 반대 방향으로 캡슐화 및 전송 과정을 반복한다.

 

이렇게 해서, 단순히 검색어를 입력한 행동이 수많은 네트워크 장비, 경로 선택, 그리고 프로토콜 협력을 거쳐 수천 킬로미터 떨어진 서버까지 안전하고 효율적으로 도달하게 된다.

 

5. 마무리

이번 글은 "내 검색어는 어떻게 구글 서버에 도달할까?"라는 질문에서 출발하여 데이터가 이동하는 전 과정을 살펴보았다.

 

먼저 네트워크에서 장치를 구분하는 IP 주소와 MAC 주소의 역할을 정리했다. IP 주소는 네트워크 상의 위치를 나타내는 논리적 주소를 말하며, MAC 주소는 같은 네트워크 내에서 장치를 식별하는 물리적 주소를 뜻한다. 이 두 주소는 서로 다른 범위와 목적을 가지며, 데이터가 정확히 도착하도록 하는데 함께 사용된다.

 

다음으로, 라우팅의 개념과 경로 선택 과정을 살펴보았다. 라우터는 목적지 IP를 확인하여 다음 홉을 결정하고, 이 과정에서 지연 시간, 대역폭, 경로 안정성, 비용 등 다양한 요소를 고려한다. 이러한 기준은 표준 규칙을 기반으로 하지만, 실제 적용 방식은 ISP의 정책과 전략에 따라 달라질 수 있다.

 

또한, 인터넷이 하나의 거대한 네트워크가 아니라 다수의 자율 시스템(AS)으로 구성된 구조라는 점도 강조했다. 각 AS 내부에서는 다양한 라우팅 프로토콜이 사용되지만, 서로 다른 AS 간에는 BGP(Border Gateway Protocol)가 활용된다. BGP는 경로 광고를 통해 AS 간 연결 정보를 교환하며, 다양한 속성값을 함께 전달한다. ISP는 이를 기반으로 정책과 기술 조건에 맞는 경로를 선택한다.

 

마지막으로, 실제 데이터 전송 과정을 따라가며 클라이언트에서 서버까지의 전체 흐름을 확인했다. 클라이언트의 요청은 캡슐화를 거쳐 전송되고, 국내 ISP 라우팅과 BGP 기반 해외 경로 선택을 통해 목적지 서버에 도달한다.

 

이번 글을 통해 데이터의 전송 과정이 단순하지 않으며 주소 체계, 라우팅 원리, 프로토콜, 사업적 정책이 복합적으로 작동하는 결과임을 확인할 수 있었다. 이러한 구조와 원리를 이해하면 인터넷이 어떻게 동작하는지, 그리고 각 단계에서 어떤 선택과 결정이 이루어지는지를 보다 명확히 파악할 수 있다. 본 글이 네트워크 작동 원리에 대한 기초 이해를 넓히고 앞으로 더 깊이 있는 학습을 위한 발판이 되기를 바란다.

 

6. 참고 자료 및 표준 문서

  • RFC 1812 - Requirements for IP Version 4 Routers
    • §5.2 "Forwarding Walk-Through" - 라우터가 IP 데이터그램을 전달하는 표준 절차에 대한 규정
  • RFC 4271 - Border Gateway Protocol 4
    • §3 "Summary of Operation" - BGP가 왜 만들어지고 어떤 원리로 작동하는지에 대해 설명
    • §5 "Path Attributes" - BGP 경로 광고 시 속성들에 대해 설명
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유