computer_science/network

[컴퓨터네트워크] 07. 응용 계층

렁치 2026. 8. 19. 17:20

지금까지의 계층들이 "데이터를 어떻게 전달하는가"였다면, 응용 계층(7계층)은 우리가 실제로 쓰는 서비스 그 자체다.
웹·메일·파일 전송 같은 것이 여기서 동작한다.
오늘은 주요 응용 계층 프로토콜과, 데이터가 전 계층을 거치는 전체 흐름을 정리했다.


1. 응용 계층의 역할

응용 계층은 사용자(애플리케이션)가 네트워크에 접근하는 창구다. 대개 클라이언트(요청)와 서버(제공)의 관계로 동작한다. TCP/IP 모델에서는 OSI의 세션·표현·응용 세 계층이 여기에 합쳐져 있다.

  • 세션: 연결 설정·유지·종료
  • 표현: 암호화·압축·코드 변환
  • 응용: 실제 서비스(파일·메일·웹) 제공

2. 주요 응용 계층 프로토콜

프로토콜 전송 포트 기능
HTTP / HTTPS TCP 80 / 443 웹 송수신
FTP TCP 21, 20 파일 전송
SMTP TCP 25 메일 송신
POP3 / IMAP TCP 110 / 143 메일 수신
DNS UDP 53 도메인 ↔ IP 변환
DHCP UDP 67/68 IP 자동 할당

각 프로토콜이 TCP를 쓰는지 UDP를 쓰는지에 주목했다. 정확성이 중요한 웹·메일·파일은 TCP를, 빠른 응답이 중요한 DNS·DHCP는 UDP를 쓴다. 앞 글에서 본 TCP/UDP의 성격이 프로토콜 선택에 그대로 반영된 것이라, 이론이 실제 설계로 이어지는 게 보였다.


3. WWW와 HTTP

웹(WWW)은 세 기술의 조합이다. 내용을 기술하는 HTML, 자원의 위치를 가리키는 URL, 그것을 주고받는 HTTP다.

HTTP는 "클라이언트가 요청(request)하면 서버가 응답(response)"하는 단순한 구조다. 버전이 거듭되며 빨라졌다.

버전 특징
HTTP/1.0 요청마다 새 연결을 맺음(비효율)
HTTP/1.1 연결을 재사용(Keep-Alive)해 효율 개선
HTTP/2 여러 요청을 동시에 처리해 더 빠름
DNS: 도메인을 IP로 바꾼다
우리는 www.example.com 같은 도메인을 입력하지만, 실제 통신은 IP 주소로 한다. DNS가 이 도메인 이름을 IP 주소로 바꿔주는(이름 해석) 역할을 한다. 전화번호부에서 이름으로 번호를 찾는 것과 같다. DNS가 없으면 우리는 사이트마다 숫자 IP를 외워야 할 것이다.

4. 이메일 프로토콜

메일은 보낼 때와 받을 때 쓰는 프로토콜이 다르다.

  • 보낼 때(SMTP): 클라이언트 → 메일 서버, 서버 → 서버 모두 SMTP.
  • 받을 때(POP3 또는 IMAP): 메일 서버 → 클라이언트.
POP3 vs IMAP
  • POP3: 메일을 내 기기로 다운로드하고 서버에서는 보통 삭제한다. 한 기기 중심.
  • IMAP: 원본을 서버에 보관하고 복사본만 보여준다. 여러 기기에서 같은 메일함을 볼 수 있다.
폰·노트북·PC에서 같은 메일이 똑같이 보이는 건 IMAP 덕분이다.

폰과 PC에서 같은 메일이 똑같이 보이던 게 IMAP 덕분이었다는 걸 알고, 평소 쓰던 메일이 이 프로토콜 위에서 돌아간다는 게 와닿았다.


5. 전체 흐름: 웹 접속의 캡슐화

응용 계층을 다 배웠으니, 웹페이지 하나를 여는 동안 데이터가 모든 계층을 어떻게 거치는지 정리해봤다.

응용 계층    : HTTP 요청 데이터
   ↓
전송 계층    : TCP 헤더(+포트) 추가 → 세그먼트
   ↓
네트워크 계층 : IP 헤더(+IP 주소) 추가 → 패킷
   ↓
데이터 링크   : MAC 헤더 추가 → 프레임
   ↓
물리 계층    : 전기 신호로 전송

보낼 때는 각 계층이 헤더를 덧붙이며 내려가고(캡슐화), 받는 쪽은 헤더를 떼며 올라간다(역캡슐화). 라우터는 중간에서 네트워크·데이터 링크 계층까지 풀었다 다시 싸며 다음 홉으로 중계한다. 우리가 무심코 누른 링크 하나가, 사실 이 모든 계층의 협력으로 이뤄진다. 그동안 단원별로 배운 계층들이 이 한 그림으로 모이니, 네트워크 시리즈 전체가 정리되는 느낌이었다.


오늘 느낀 점

  • 프로토콜마다 TCP/UDP를 골라 쓰는 게 앞 단원의 "정확함 vs 제때" 성격을 그대로 반영한 거라, 이론이 실제 설계 결정으로 이어지는 걸 확인했다.
  • 폰·PC에서 같은 메일이 보이는 IMAP처럼, 평소 무심코 쓰던 서비스가 특정 프로토콜 위에서 돈다는 걸 알게 되니 일상과 이론이 붙었다.
  • 링크 클릭 하나가 7계층의 캡슐화 협력으로 이뤄진다는 마지막 그림에서, 네트워크 시리즈 전체가 한 줄기로 모였다.

한 걸음 더

  • HTTP는 본래 "상태가 없는(stateless)" 프로토콜이다. 요청 하나하나가 서로를 모른다. 그런데 로그인 상태가 유지되는 건 쿠키·세션이라는 별도 장치로 상태를 흉내 내기 때문이다. "단순하게 설계하고 필요한 건 위에 얹는다"는 인터넷 설계 철학이 여기서도 보인다.
  • DNS는 전 세계가 쓰는 거대한 분산 시스템이다. 한 서버가 모든 도메인을 알 수 없으니, 최상위(.com 등)부터 단계적으로 위임된 계층 구조로 나뉘어 있고, 결과를 캐싱해 부담을 줄인다. "이름을 주소로 바꾼다"는 단순한 일이, 인터넷 규모에선 정교한 분산 설계를 요구한다.
  • 응용 계층 프로토콜이 대부분 사람이 읽을 수 있는 텍스트 기반(HTTP, SMTP 등)이라는 점이 흥미롭다. 그래서 와이어샤크로 잡으면 요청·응답 내용이 그대로 보인다. 바로 이 때문에 평문 HTTP는 도청에 취약하고, 암호화한 HTTPS가 표준이 된 것이다.