데이터는 한 덩어리로 가지 않는다
컴퓨터가 다른 컴퓨터로 데이터를 보낼 때, 보통 파일 전체를 한 번에 밀어 넣지 않는다. 큰 데이터를 작은 조각으로 나누어 보낸다. 이 작은 조각을 패킷이라고 한다.
패킷을 쓰는 이유는 단순하다. 네트워크는 여러 컴퓨터가 함께 쓰는 길이다. 한 사용자가 큰 데이터를 길게 독점하면 다른 통신이 막힌다. 그래서 데이터를 잘게 나누고, 여러 패킷이 차례로 길을 지나가게 한다. 중간에 일부 패킷이 사라져도 전체를 다시 보낼 필요 없이 잃어버린 조각만 다시 보내면 된다.
패킷에는 실제 데이터만 들어 있지 않다. 어디에서 왔는지, 어디로 가야 하는지, 어떤 순서인지 같은 정보도 함께 담긴다. 택배 상자에 물건뿐 아니라 주소와 송장 번호가 붙는 것과 비슷하다.

IP 주소와 포트 번호
네트워크에서 컴퓨터를 찾으려면 주소가 필요하다. 이때 쓰는 것이 IP 주소다. IP 주소는 인터넷이나 내부 네트워크에서 장치를 구분하는 번호다. 예를 들어 어떤 서버에 접속한다는 것은 결국 그 서버의 IP 주소를 찾아 패킷을 보내는 일이다.
하지만 컴퓨터 하나 안에서도 여러 프로그램이 동시에 통신한다. 웹 브라우저, 메신저, 게임, 업데이트 프로그램이 동시에 네트워크를 쓸 수 있다. 그래서 컴퓨터까지만 찾아가서는 부족하다. 어느 프로그램에게 데이터를 전달할지도 정해야 한다. 이 역할을 하는 번호가 포트 번호다.
IP 주소가 건물 주소라면, 포트 번호는 그 건물 안의 방 번호에 가깝다. 패킷은 IP 주소를 보고 목적지 컴퓨터로 가고, 포트 번호를 보고 그 안의 특정 프로그램으로 전달된다.
TCP는 믿을 수 있는 길을 만든다
인터넷의 길은 항상 완벽하지 않다. 패킷이 늦게 도착할 수도 있고, 순서가 바뀔 수도 있으며, 중간에 사라질 수도 있다. TCP는 이런 불안정한 환경 위에서 믿을 수 있는 통신처럼 보이게 만드는 규칙이다.
TCP는 먼저 패킷에 순서 번호를 붙인다. 받는 쪽은 이 번호를 보고 데이터를 원래 순서대로 맞춘다. 만약 빠진 번호가 있으면 해당 패킷이 도착하지 않았다는 뜻이므로 다시 보내 달라고 할 수 있다. 이것이 재전송이다.
또 TCP는 받는 쪽이 감당할 수 있는 만큼만 보내도록 조절한다. 받는 컴퓨터가 느린데 보내는 쪽이 너무 빠르게 밀어 넣으면 버퍼가 넘치고 데이터가 버려질 수 있다. TCP의 흐름 제어는 이런 상황을 줄인다. 덕분에 프로그램은 복잡한 네트워크 문제를 모두 직접 처리하지 않아도 비교적 안정적으로 데이터를 주고받을 수 있다.
DNS는 이름을 주소로 바꾼다
사람은 숫자로 된 IP 주소를 외우기 어렵다. 그래서 우리는 example.com 같은 도메인 이름을 사용한다. 하지만 네트워크 장비는 이름만 보고 목적지를 찾지 못한다. 결국 IP 주소가 필요하다.
DNS는 도메인 이름을 IP 주소로 바꿔 주는 시스템이다. 사용자가 브라우저에 웹사이트 주소를 입력하면, 컴퓨터는 먼저 DNS에 "이 이름의 IP 주소가 무엇인가?"라고 묻는다. 답을 받으면 그 IP 주소를 향해 패킷을 보낸다.
즉 DNS는 인터넷의 전화번호부와 비슷하다. 사람에게 편한 이름과 컴퓨터에게 필요한 주소를 연결해 준다.
HTTP와 HTTPS는 웹의 대화 규칙이다
웹 브라우저와 웹 서버는 정해진 방식으로 대화한다. 이때 쓰는 대표적인 규칙이 HTTP다. 브라우저는 서버에 요청을 보낸다. 예를 들어 "이 페이지를 주세요"라고 요청하면, 서버는 HTML, 이미지, 데이터 같은 응답을 돌려준다.
웹 페이지를 연다는 일은 사실 여러 번의 요청과 응답으로 이루어진다. 먼저 기본 문서를 받고, 그 안에 필요한 이미지, 글꼴, 스크립트 파일을 다시 요청한다. 브라우저는 이렇게 받은 조각들을 해석해 화면에 페이지를 그린다.
HTTPS는 HTTP에 암호화를 더한 방식이다. 중간에서 누군가 패킷을 엿보더라도 내용을 쉽게 읽지 못하게 한다. 또한 사용자가 접속한 서버가 믿을 수 있는 상대인지 확인하는 과정도 포함한다. 그래서 로그인, 결제, 개인정보 입력처럼 민감한 통신에는 HTTPS가 필수다.
인터넷은 거대한 하나의 기계처럼 보이지만, 실제로는 단순한 원리들이 층층이 쌓인 구조다. 데이터는 패킷으로 나뉘고, IP 주소와 포트 번호를 따라 이동하며, TCP가 순서와 신뢰성을 보완한다. DNS는 사람이 읽는 이름을 주소로 바꾸고, HTTP와 HTTPS는 웹에서 어떤 요청과 응답을 주고받을지 정한다. 이 계층들이 함께 작동할 때, 우리는 멀리 떨어진 컴퓨터를 마치 내 컴퓨터의 일부처럼 사용할 수 있다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
