애플리케이션 계층의 개요
애플리케이션 계층은 네트워크 응용 프로그램을 개발하고 배포할 수 있도록 지원하는 계층이다. 애플리케이션은 전송 계층을 통해 통신하며, 네트워크 코어 장치에 대한 별도의 소프트웨어를 개발할 필요가 없다. 이를 통해 애플리케이션 개발이 빠르고 효율적으로 이루어진다.
애플리케이션 구조
애플리케이션은 주로 두 가지 구조를 가진다:
- 클라이언트-서버 구조: 서버는 항상 켜져 있고 고정된 IP 주소를 가지고 있으며, 클라이언트는 서버와 통신한다. 클라이언트는 서버와 직접적으로 통신하지만, 클라이언트들끼리는 통신하지 않는다.
- P2P 구조: 항상 켜져 있는 서버가 없으며, 피어 간의 직접 통신이 이루어진다. 새로운 피어가 참여하면 새로운 서비스 용량이 추가되고, 관리가 복잡해진다.
프로세스 간 통신
프로세스는 호스트 내에서 실행되는 프로그램으로, 서로 다른 호스트에 있는 두 프로세스는 메시지를 교환하여 통신한다.
- 클라이언트 프로세스: 통신을 시작하는 프로세스.
- 서버 프로세스: 통신 요청을 기다리는 프로세스.
웹과 HTTP
웹 페이지는 여러 객체로 이루어져 있으며, 각 객체는 HTML 파일, 이미지 파일, 오디오 파일 등의 형태로 구성된다. HTTP(Hypertext Transfer Protocol)는 웹의 애플리케이션 계층 프로토콜로, 클라이언트-서버 모델을 기반으로 동작한다.
HTTP의 특징
- 비연결형: 서버는 과거의 클라이언트 요청에 대한 정보를 유지하지 않는다.
- TCP 기반: 클라이언트는 서버와 TCP 연결을 설정한 후 HTTP 요청을 보낸다. 서버는 요청을 처리하고 응답을 보내며, 연결이 종료된다.
HTTP 연결 방식
- 비영속성 HTTP(Non-persistent HTTP): 한 번에 하나의 객체만 TCP 연결을 통해 전송되며, 각 객체 전송 후 연결이 종료된다. 여러 객체를 다운로드하려면 매번 새로운 연결을 설정해야 한다.
- 영속성 HTTP(Persistent HTTP): 여러 객체가 하나의 TCP 연결을 통해 전송될 수 있으며, 연결을 유지한 상태로 추가 요청을 처리할 수 있다.
비영속성 HTTP의 응답 시간
- TCP 연결 설정에 한 RTT, 요청 및 응답에 한 RTT, 파일 전송 시간까지 총 2 RTT와 파일 전송 시간이 소요된다.
영속성 HTTP의 장점
- 여러 객체를 전송할 때 연결 설정이 반복되지 않으므로, 성능이 향상된다. 클라이언트는 객체를 요청할 때마다 새로 연결을 설정하지 않아도 된다.
HTTP/2와 HTTP/3
- HTTP/2: 여러 요청과 응답을 동시에 처리할 수 있는 멀티플렉싱 기능을 제공하며, 서버 푸시 기능을 지원한다.
- HTTP/3: UDP 기반의 QUIC(Quick UDP Internet Connections) 프로토콜을 사용하여 연결 설정 시간을 줄이고, 성능을 개선한다.
쿠키와 상태 유지
HTTP는 기본적으로 비연결형이므로, 쿠키를 사용하여 상태를 유지할 수 있다. 쿠키는 클라이언트와 서버 간의 여러 트랜잭션 동안 상태를 유지하는 데 사용되며, 인증, 장바구니, 사용자 세션 관리 등의 기능을 지원한다.
웹 캐시(프록시 서버)
웹 캐시는 클라이언트 요청을 원 서버로 전달하지 않고, 캐시된 객체를 반환함으로써 응답 시간을 줄이고 트래픽을 감소시킨다.
- 캐시가 없는 경우: 캐시는 원 서버로부터 객체를 요청하여 저장한 후, 클라이언트에게 객체를 반환한다.
- 캐시의 장점: 클라이언트 요청에 대한 응답 시간이 줄어들고, 네트워크 트래픽이 감소한다.
비디오 스트리밍과 콘텐츠 배포 네트워크(CDN)
비디오 트래픽은 인터넷 대역폭의 많은 부분을 차지하며, 대규모 사용자에게 효율적으로 콘텐츠를 전달하는 것이 중요하다. 이를 해결하기 위해 CDN(Content Delivery Network)은 지리적으로 분산된 여러 서버에 콘텐츠를 저장하고, 사용자에게 가까운 서버에서 콘텐츠를 제공함으로써 대역폭과 응답 시간을 최적화한다.
DASH: Dynamic Adaptive Streaming over HTTP
DASH는 비디오 파일을 여러 청크로 나누고, 각 청크를 서로 다른 비트레이트로 저장하여 클라이언트가 네트워크 상태에 맞는 비트레이트로 청크를 선택해 재생할 수 있게 한다. 클라이언트는 가용 대역폭을 측정하고, 적절한 비트레이트의 청크를 요청함으로써 버퍼 부족이나 과도한 대역폭 소모를 방지한다.
CDN의 동작 방식
CDN은 여러 지역에 분산된 서버에 콘텐츠를 저장하고, 사용자가 요청한 콘텐츠를 가장 가까운 서버에서 제공한다. 이를 통해 네트워크 트래픽을 효율적으로 관리하고, 사용자에게 빠른 응답을 제공한다.
OTT와 인터넷 혼잡
OTT(Over-The-Top) 서비스는 CDN을 통해 콘텐츠를 제공하며, 네트워크 혼잡을 완화하는 것이 중요한 과제이다. CDN은 사용자에게 가까운 서버에서 콘텐츠를 제공하여 혼잡을 줄이고, 원 서버에 대한 트래픽을 분산시킨다.
'통신 > 네트워크 프로토콜' 카테고리의 다른 글
네프 후기 (0) | 2024.09.29 |
---|---|
Congestion control (0) | 2024.09.29 |
TCP(2) - 연결과 해제 (0) | 2024.09.29 |
TCP(1) - 구조와 특징 (0) | 2024.09.29 |
UDP (0) | 2024.09.29 |