2026. 6. 24. 16:18ㆍComputer Science/네트워크
신호로 흘러가기만 하면 되는 걸까?
지금까지 데이터가 흘러가는 것에 대해 배웠다.
전기신호로 변환되어 케이블을 타고, 라우터를 거치고, 내부망을 지나 목적지 기기까지 도달하는 여정.
이 흐름은 이제 머릿속에 그림이 그려진다.
근데 여기서 한 가지 의문이 생긴다.
데이터가 그냥 전기신호로 흘러가기만 하면 되는 걸까?
라우터는 이 신호를 받았을 때 "이걸 어디로 보내야 하지?"를 어떻게 알까?
목적지 컴퓨터는 신호를 받았을 때 "이게 브라우저로 가야 하는 데이터인지, 다른 프로그램으로 가야 하는 데이터인지"를 어떻게 알까?
신호만으로는 부족하다. 데이터가 멀리 가려면 장비 간의 약속이 필요하다.
데이터는 어떤 약속을 통해, 어떤 형태로 쌓여 이동하게 되는 걸까?
프로토콜 — 약속
프로토콜은 코드도 아니고, 장비도 아니다.
"이런 형식으로 포장하자"는 약속이다.
택배로 비유하면 이렇다.
택배 회사의 규칙:
"박스 겉면에 반드시 이걸 써야 해"
- 왼쪽 위: 보내는 사람 주소
- 오른쪽 위: 받는 사람 주소
- 중앙: 운송장 번호
이 규칙을 택배를 포장하는 사람들이 따르기 때문에
어떤 배달부든 박스를 받았을 때 주소를 읽고 배달할 수 있다.
프로토콜이 딱 이러한 것이다.
모두가 같은 약속으로 데이터를 포장하기 때문에, 서로 다른 컴퓨터끼리도 데이터를 주고받을 수 있다.
패킷 — 약속대로 포장된 결과물
패킷은 프로토콜(약속)대로 포장된 데이터 덩어리다.
"안녕하세요"라는 메시지를 보낸다고 하면,
그냥 "안녕하세요"를 날리는 게 아니라, 아래와 같이 약속된 형식대로 포장해서 보낸다.
┌─────────────────────────────┐
│ 출발지 IP: 123.45.67.89 │ ← IP 프로토콜 약속
│ 목적지 IP: 142.250.74.206 │
├─────────────────────────────┤
│ 출발지 PORT: 52341 │ ← TCP 프로토콜 약속
│ 목적지 PORT: 443 │
│ 순서 번호: 1 │
├─────────────────────────────┤
│ 안녕하세요 │ ← 실제 데이터
└─────────────────────────────┘
이처럼 약속대로 포장된 데이터가 패킷이다.
전기신호는 그냥 흘러가는 게 아니라, 약속대로 포장된 패킷이 전기신호로 변환되어 흘러가는 것이다.
누가 포장하는가
그러면 이 패킷은 누가 만드는 걸까?
브라우저 → "안녕하세요" + HTTP 메시지 만들기까지
운영체제 → TCP, IP로 포장하기
네트워크 카드 → 전기신호로 변환
브라우저는 OS에게 "이 데이터를 저기로 보내줘"만 요청한다.
실제로 TCP/IP 약속대로 포장하는 건 운영체제가 한다.
브라우저는 TCP가 뭔지, IP가 뭔지 몰라도 된다. 운영체제가 다 알아서 해주기 때문이다.
각 장비는 자기 담당만 열어본다
패킷이 네트워크를 이동하는 동안, 중간에 만나는 장비들이 패킷을 전부 열어보는 게 아니다.
각 장비는 자기 담당 부분만 열어본다.
라우터 → IP 주소만 확인
"목적지가 어디지? 저쪽으로 보내자"
TCP 내용? 안 봄. HTTP 내용? 절대 안 봄.
스위치 → MAC 주소만 확인
"이 기기로 보내자"
IP 주소? 안 봄.
운영체제 → PORT 확인
"52341번이네, 브라우저로 보내자"
브라우저 → HTTP 내용 해석
"안녕하세요 받았다!"
택배 배달부가 운송장(주소)만 보고 박스 안을 열어보지 않는 것처럼,
각 장비는 자기 역할에 필요한 정보만 확인하고 다음으로 넘긴다.
이 구조 덕분에 브라우저가 업데이트돼도 라우터는 신경 안 써도 되고,
라우터가 바뀌어도 브라우저는 신경 안 써도 된다.
각자 자기 약속만 지키면 되기 때문이다.
전체 그림
이제 데이터가 이동하는 전체 그림을 다시 보면 이렇다.
[브라우저]
"안녕하세요" 입력 + HTTP 메시지 만들기까지
↓
[운영체제]
TCP/IP 약속대로 패킷으로 포장
↓
[네트워크 카드]
패킷을 전기신호로 변환 → 전송
↓
~~~전기신호~~~
↓
[라우터]
패킷 내 IP 주소만 확인 → "저쪽으로 보내자"
↓
~~~전기신호~~~
↓
[서버 - 운영체제]
PORT 확인 → 어느 프로그램으로 줄지 결정
↓
[서버 - 애플리케이션]
HTTP 내용 해석 → "안녕하세요 받았다!"
전기신호로 이동하는 건 맞는데,
그 신호 안에 약속대로 포장된 패킷이 있고,
각 장비와 소프트웨어가 자기 담당 부분만 열어보면 목적지로 이동하는 구조다.
프로토콜 = 약속 ("이렇게 포장하자")
패킷 = 그 약속대로 포장된 결과물
프로토콜이 없으면 패킷을 만들 수 없고, 패킷이 없으면 데이터를 전달할 수 없다.
그리고 이 약속 덕분에 서로 다른 제조사의 컴퓨터, 서로 다른 운영체제가 아무 문제 없이 통신할 수 있다.
같은 약속(TCP/IP)을 따르고 있기 때문이다.
다음 글에서는 이 약속들이 역할별로 어떻게 나뉘는지, OSI 7계층을 통해 살펴본다.