인터넷은 어떻게 동작할까: 엔드 시스템·라우터·링크·프로토콜

반응형

컴퓨터 네트워크를 처음 공부할 때 인터넷을 한 문장으로 설명하기는 의외로 어렵다. 웹, Wi-Fi, 라우터, 통신사 망이 모두 인터넷처럼 보이기 때문이다. 2023년 네트워크 수업을 들으며 적어 둔 메모를 다시 읽어 보니, 핵심은 속도 수치를 외우는 데 있지 않았다.

인터넷은 서로 다른 네트워크가 공통 프로토콜로 연결된 네트워크들의 네트워크다.

사용자의 노트북과 서버 같은 엔드 시스템, 데이터를 다음 구간으로 넘기는 라우터, 비트를 운반하는 링크, 통신 규칙인 프로토콜을 한 흐름으로 보면 인터넷의 구조가 선명해진다.

인터넷을 이루는 네 가지 요소

요소 하는 일 익숙한 예
엔드 시스템 애플리케이션을 실행하고 데이터를 만들거나 소비한다 노트북, 스마트폰, 웹 서버
패킷 스위치 패킷 헤더를 보고 다음 링크로 전달한다 라우터, 링크 계층 스위치
통신 링크 두 지점 사이에서 비트나 신호를 운반한다 광섬유, 구리선, Wi-Fi, 이동통신
프로토콜 메시지 형식과 순서, 송수신자의 행동을 정한다 IP, TCP, UDP, HTTP, DNS

이 네 가지를 택배에 비유하면 엔드 시스템은 보내는 사람과 받는 사람, 링크는 도로, 라우터는 갈림길의 분류 지점이다. 프로토콜은 주소를 쓰는 형식과 인수인계 규칙에 가깝다. 비유는 입문에 도움이 되지만, 실제 인터넷에서는 데이터를 작은 패킷으로 나누고 각 장비가 계층별 헤더를 해석한다는 차이가 있다.

엔드 시스템과 호스트는 무엇인가

인터넷 가장자리에 붙어 통신하는 장치를 엔드 시스템(end system) 또는 **호스트(host)**라고 부른다. 브라우저를 실행하는 노트북도 호스트이고, 요청에 응답하는 웹 서버도 호스트다.

여기서 client와 server는 장치의 영구적인 종류가 아니라 통신에서 맡는 역할이다.

브라우저(client) ── HTTP 요청 ──> 웹 서버(server)
브라우저(client) <── HTTP 응답 ── 웹 서버(server)

한 프로그램이 어떤 연결에서는 client이고 다른 연결에서는 server일 수도 있다. P2P 애플리케이션처럼 두 역할을 함께 수행하는 구조도 있다. 따라서 인터넷 구조를 이해할 때는 “어떤 컴퓨터인가”보다 “누가 연결을 시작하고 어떤 데이터를 주고받는가”를 보는 편이 정확하다.

라우터와 스위치는 어디에서 일할까

엔드 시스템이 만든 데이터는 보통 한 번에 목적지까지 가지 않는다. 여러 장비와 링크를 차례로 거친다.

노트북
  ↓ Wi-Fi
공유기
  ↓ 통신사 접속망
통신사 라우터들
  ↓ 인터넷 교환·상호 연결
목적지 네트워크
  ↓
서버

라우터는 IP 패킷의 목적지 주소와 자신의 포워딩 정보를 바탕으로 다음 홉을 고른다. 이더넷 스위치는 같은 링크 계층 네트워크 안에서 MAC 주소를 기준으로 프레임을 전달한다. 가정용 공유기는 한 상자 안에서 라우팅, 스위칭, Wi-Fi AP, NAT, DHCP 같은 여러 기능을 함께 제공하므로 겉모습만 보고 역할을 구분하기 어렵다.

관련 개념을 더 구체적으로 비교하려면 라우터와 스위치의 차이를 함께 보면 좋다.

링크는 속도보다 구간을 먼저 본다

원래 학습 노트에는 DSL, cable, HFC, Ethernet, Wi-Fi와 당시의 전송 속도가 나열돼 있었다. 하지만 접속 상품과 표준의 속도는 계속 바뀐다. 오래 남는 이해는 숫자보다 어떤 구간에서 어떤 매체와 기술을 쓰는가다.

구간 확인할 질문
단말과 AP·스위치 사이 Wi-Fi인가 Ethernet인가, 신호와 링크 상태는 정상인가
집·사무실과 통신사 사이 광, 케이블, 이동통신 중 무엇인가
통신사와 다른 네트워크 사이 어떤 경로와 상호 연결을 거치는가
데이터센터 내부 어느 스위치·라우터·방화벽·로드 밸런서를 통과하는가

표시된 링크 속도는 실제 애플리케이션 처리량과 같지 않다. 프로토콜 오버헤드, 공유 매체의 경쟁, 큐잉, 손실과 재전송, 서버 처리 시간도 결과에 영향을 준다. 그래서 “1Gbps 링크인데 왜 다운로드가 1Gbps가 아닌가”라는 질문은 링크 하나의 숫자만으로 답할 수 없다.

인터넷은 하나의 회사가 운영하는 망이 아니다

인터넷은 단일 조직의 거대한 사설망이 아니다. 가정과 회사의 네트워크, 인터넷 서비스 제공자(ISP), 클라우드와 콘텐츠 사업자의 네트워크가 서로 연결돼 있다. 각 네트워크는 자체 정책과 장비를 운영하면서도 IP 같은 공통 규칙을 사용해 패킷을 교환한다.

가정·회사 네트워크
        │
      접속 ISP
        │
  ┌─────┴────────┐
상위 ISP     콘텐츠·클라우드 망
  └─────┬────────┘
      목적지 ISP
        │
     목적지 서버

실제 경로는 계약, 피어링, 트랜짓, 라우팅 정책과 장애 상황에 따라 달라진다. traceroute로 보이는 홉은 경로를 이해하는 단서이지 모든 패킷이 언제나 같은 길을 간다는 보장은 아니다.

프로토콜은 무엇을 정하는가

프로토콜은 단순히 포트 번호 목록이 아니다. 통신 참여자가 같은 의미로 메시지를 해석할 수 있도록 다음을 정한다.

  • 메시지의 형식과 필드
  • 메시지를 보내고 받는 순서
  • 특정 메시지를 받았을 때 수행할 행동
  • 오류, 손실, 시간 초과를 다루는 방식

예를 들어 HTTP는 웹 요청과 응답의 의미를 정하고, TCP는 신뢰적인 바이트 스트림을 제공한다. IP는 패킷을 네트워크 사이로 전달한다. Ethernet과 Wi-Fi는 인접한 링크에서 프레임을 전달한다. 각 계층이 다른 문제를 맡기 때문에 한 요청에도 여러 프로토콜이 함께 사용된다.

HTTP 메시지
  ↓ TCP 세그먼트
    ↓ IP 패킷
      ↓ Ethernet·Wi-Fi 프레임

인터넷 기술의 많은 규격은 IETF에서 논의되고 RFC로 공개된다. RFC라고 해서 모두 같은 상태의 표준은 아니므로 문서를 읽을 때는 제목뿐 아니라 상태와 갱신 관계도 확인해야 한다.

웹 주소를 입력했을 때의 전체 흐름

브라우저에 URL을 입력하는 상황에 앞의 요소를 대입해 보자.

  1. 브라우저가 URL에서 호스트 이름을 읽는다.
  2. DNS로 호스트 이름에 대응하는 주소를 찾는다.
  3. 목적지와 전송 연결을 준비한다. HTTPS라면 TLS 절차도 수행한다.
  4. HTTP 요청 데이터가 전송 계층과 인터넷 계층의 헤더로 감싸진다.
  5. 단말은 프레임을 첫 번째 홉으로 보내고, 중간 라우터들은 패킷을 다음 네트워크로 전달한다.
  6. 서버가 요청을 처리해 응답을 보내고, 브라우저가 받은 데이터를 화면으로 구성한다.

DNS 조회 과정을 더 자세히 보고 싶다면 DNS 질의가 해석되는 순서를 참고할 수 있다.

장애를 만났을 때 계층별로 질문하기

인터넷의 구성요소를 아는 목적은 용어 암기에 그치지 않는다. 문제가 생겼을 때 질문 범위를 좁힐 수 있다.

증상 먼저 확인할 영역
Wi-Fi 자체가 연결되지 않는다 단말, AP, 링크 상태
IP 주소를 받지 못한다 DHCP와 로컬 네트워크 설정
주소로는 접속되지만 이름으로는 안 된다 DNS
일부 목적지만 도달하지 못한다 라우팅, 방화벽, 경로 MTU
연결은 되지만 응답이 느리다 큐잉·손실·재전송, 서버 처리 시간
HTTP 상태 코드가 오류다 애플리케이션과 upstream 구성

같은 “인터넷이 안 된다”는 표현 안에도 서로 다른 문제가 섞여 있다. 엔드 시스템, 링크, 패킷 전달, 이름 해석, 전송 연결, 애플리케이션 순으로 경계를 나누면 무작정 설정을 바꾸는 일을 줄일 수 있다.

다시 정리하면

인터넷은 서로 다른 네트워크를 공통 프로토콜로 연결한 시스템이다. 엔드 시스템이 데이터를 만들고 소비하며, 링크가 비트를 운반하고, 라우터와 스위치가 다음 구간으로 전달한다. 프로토콜은 이 과정에서 메시지의 형식과 행동을 맞춘다.

처음 공부할 때는 접속 기술별 속도표보다 다음 세 질문을 붙잡는 편이 오래 간다.

  1. 데이터는 어느 엔드 시스템에서 어느 엔드 시스템으로 가는가?
  2. 중간에 어떤 링크와 전달 장비를 거치는가?
  3. 각 구간에서 어떤 프로토콜이 어떤 책임을 맡는가?

이 틀을 익히면 DNS, TCP, 라우팅, HTTP 같은 후속 주제도 서로 떨어진 용어가 아니라 하나의 통신 흐름으로 연결된다.

참고 자료

반응형
KEEP READING
카테고리 전체 보기 →

댓글