2부 집 안의 네트워크
5장 요청 한 번이 지나가는 층
브라우저 주소창에 주소를 입력하는 동작은 짧다. 그 뒤에서는 이름을 찾고, 연결을 준비하고, 상대를 확인하고, 데이터를 요청하는 여러 일이 진행된다. 브라우저가 이미 알고 있는 정보가 있으면 일부 과정은 생략되거나 재사용된다. 그래서 모든 방문이 같은 순서와 같은 비용을 갖는 것은 아니다. 처음 접속할 때 느린 이유를 이해하려면 이 준비 작업을 살펴봐야 한다.
네트워크를 계층으로 나누는 까닭은 사람을 시험하려고 번호를 붙이기 위해서가 아니다. 각 단계가 맡은 책임을 분리하기 위해서다. 물리적인 신호 전달, 같은 연결망 안의 전달, 여러 연결망 사이의 경로 선택, 프로세스 사이의 전송, 응용 프로그램의 의미를 나누면 문제가 생겼을 때 질문을 좁힐 수 있다. 실제 구현이 교과서 그림처럼 완전히 분리되어 있지는 않지만 지도 역할은 충분히 한다.
내용과 봉투
응용 프로그램의 데이터는 전송을 위해 필요한 정보를 덧붙인다. TCP를 사용한다면 포트와 순서 정보를 포함한 TCP 세그먼트가 되고, IP 주소와 관련 정보를 갖는 패킷에 담기며, 로컬 연결에서 사용할 프레임으로 전달된다. 책마다 패킷이라는 말을 넓게 쓰기도 한다. 용어의 범위를 확인하되 이름 자체보다 어떤 헤더가 어디에서 처리되는지에 집중하자.
라우터를 지날 때마다 모든 정보가 그대로 복사되는 것은 아니다. 다음 구간에서 쓰는 링크 계층의 주소와 프레임이 달라질 수 있다. IP의 홉 제한도 줄어든다. NAT 같은 기능이 있으면 주소나 포트 일부가 바뀐다. 반면 암호화된 응용 데이터의 내용은 중간 장비가 보통 읽을 수 없다. 누가 어느 부분을 볼 수 있는지 따지는 일이 네트워크와 보안을 연결한다.
한 요청에 여러 패킷이 필요할 수 있고 한 패킷이 응용 프로그램의 문장 하나와 정확히 대응하지 않을 수도 있다. TCP는 바이트 스트림을 제공하므로 송신 프로그램이 두 번 나누어 보낸 데이터가 수신 쪽에서도 똑같이 두 번 나누어 읽히리라고 기대하면 안 된다. 메시지의 길이와 경계를 알아내는 규칙은 응용 프로토콜이 정해야 한다.
크기에도 경계가 있다
한 링크에서 실어 나를 수 있는 네트워크 계층 패킷의 최대 크기를 MTU라고 부른다. 경로의 어느 구간이 더 작은 크기만 허용하면 문제가 생길 수 있다. 작은 응답은 되는데 큰 파일 전송만 멈추는 현상은 단순한 속도 부족과 다르다. 터널을 추가하면서 헤더가 늘었거나, 필요한 제어 메시지가 막혀 경로 MTU를 제대로 알아내지 못하는 상황을 고려해야 한다.
그렇다고 문제가 있을 때마다 MTU를 임의의 숫자로 줄이면 안 된다. 통신이 잠깐 나아져도 원인을 숨길 수 있고 다른 경로의 효율을 떨어뜨릴 수 있다. 변경 전 값과 증상을 기록하고, 같은 조건에서 확인하며, 되돌릴 방법을 준비해야 한다. 네트워크 설정에는 인터넷에서 찾은 만능 숫자가 거의 없다. 어떤 조건을 해결하는 숫자인지 알아야 한다.
다음 그림은 개념적인 단방향 경로다. 실제 서비스에서는 응답이 다른 경로를 택하거나 CDN에서 끝날 수 있다. 이름 확인과 인증을 위한 별도 연결도 생긴다. 이 그림은 모든 동작의 목록이 아니라 관찰 지점을 구분하기 위한 최소 지도다.
Browser
| application request
v
Operating system / transport
| local interface
v
Home router ---- ISP ---- Internet routers
|
v
Service entry point
|
v
Application
층마다 성공의 뜻이 다르다
케이블에 연결 표시가 켜졌다는 것은 물리적인 연결이 감지됐다는 단서다. 올바른 IP 주소를 받았거나 인터넷에 나갈 수 있다는 보장은 아니다. IP 통신이 가능해도 DNS가 실패할 수 있고, TCP 연결이 열려도 인증서 검증이 실패할 수 있다. 웹 서버가 응답해도 사용자의 주문이 저장되지 않았을 수 있다. 아래층의 성공이 위층의 성공을 자동으로 보장하지 않는다.
반대로 위층에서 하나의 성공을 확인하면 아래층에 관해 일정한 추론을 할 수 있다. 새 연결을 통해 HTTPS 문서를 정상적으로 받았다면 그 요청에 필요한 경로와 암호화 통신이 작동했다는 뜻이다. 다만 캐시나 기존 연결을 사용했는지 확인해야 한다. 한 번의 성공을 전체 네트워크가 항상 정상이라는 결론으로 넓히지 않는 것이 중요하다.
문제를 설명할 때 “몇 계층 장애”라고 단정하는 말보다 확인한 사실이 더 유용하다. 예를 들어 “같은 컴퓨터에서 IP 주소로 연결은 되지만 이름 조회가 시간 초과된다”는 문장은 다음 조치를 고르게 한다. 계층 모델의 가치는 번호를 맞히는 데 있지 않다. 서로 다른 종류의 성공과 실패를 한 문장에 뒤섞지 않도록 도와주는 데 있다.
표준과 공식 참고 자료
관련 기술의 원문 표준과 제작자 문서입니다. 번역 인용문이 아닌 새로 작성한 해설과 실습을 수록했습니다. 자료 확인: 2026-09-05.