응용 계층(Application Layer)은 OSI 7계층 중 가장 상위 계층으로, 사용자가 네트워크 서비스를 사용할 수 있도록 인터페이스를 제공하고, 데이터를 주고받는 데 필요한 규칙과 프로토콜을 정의하는 등, 사용자가 직접 상호작용하는 프로그램과 네트워크 간의 연결을 관리한다. 이를 통해 파일 전송, 이메일, 원격 로그인, 웹 브라우징 등의 서비스를 지원한다.
주요 프로토콜
프로토콜은 컴퓨터 내부, 또는 컴퓨터 사이에서 데이터 교환 방식을 정의하는 규칙 체계이다. 응용 계층의 주요 프로토콜은 다음과 같다.
- HTTP(Hypertext Transfer Protocol)
월드 와이드 웹(WWW)에서 브라우저와 웹 서버 간에 데이터를 주고받기 위한 프로토콜이다. 주로 웹 페이지, 이미지, 비디오 등의 리소스를 요청하고 응답하는 데 사용되며, 비연결형(Stateless) 프로토콜로 상태 비저장성을 바탕으로 하며, 각 요청과 응답이 독립적으로 처리된다.
HTTP는 매우 유연하여, 기본적인 텍스트뿐만 아니라 다양한 종류의 미디어 파일과 애플리케이션 데이터를 전송하는 데 사용됩니다. 또한, REST API와 같은 웹 기반 애플리케이션 통신에서 중요한 역할을 한다. 주요 특징은 다음과 같다.- 클라이언트 - 서버 모델
웹 브라우저(클라이언트)가 웹 서버에 요청을 보내고, 서버가 해당 요청에 응답하여 데이터를 전송한다. - 요청과 응답
클라이언트는 서버에 특정 리소스를 요청하는 메시지를 보내고, 서버는 해당 요청에 따라 데이터를 응답한다. - 비연결형(Connectionless)
HTTP는 요청과 응답 후 네트워크 연결을 끊는다. 즉, 한 번의 요청에 응답이 끝나면 연결이 종료되고, 다음 요청이 있을 때 다시 새로운 연결이 생성된다.
이 방식은 서버 자원을 절약한다는 장점이 있지만, 요청마다 새로운 연결을 만들어야 하므로 성능 상의 부담이 있을 수 있다. 이를 보완하기 위해 HTTP/1.1 이후 버전에서는 keep - alive를 통해 한번의 연결로 여러 요청을 처리할 수 있는 기능을 지원한다. - 상태 비저장성(Stateless)
서버가 클라이언트의 이전 요청에 대한 상태를 저장하지 않는다. 따라서 각 요청은 독립적이다.
이를 보완하기 위해 웹에서는 쿠키(Cookie), 세션(Session), 토큰(Token) 등을 활용해 클라이언트의 상태를 추적하고 인증 정보를 관리한다. - HTTP/HTTPS
HTTP는 데이터를 암호화하지 않은 상태로 전송하기 때문에 보안에 취약할 수 있다. 이를 개선한 것이 HTTPS( Hypertext Transfer Protocol Secure)로, SSL/TLS 프로토콜을 통해 데이터를 암호화하여 안전한 통신을 제공한다.
- 클라이언트 - 서버 모델
- DNS(Domain Name System)
사람이 쉽게 읽을 수 있는 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 시스템이다. 주요 기능은 다음과 같다.- 도메인 이름 해석
도메인 이름을 IP 주소로 변환한다. 컴퓨터는 IP 주소를 사용해 통신하지만, 사용자는 기억하기 쉬운 도메인 이름을 사용한다.
예를 들어, 우리는 웹 사이트를 방문할 때 "www.naver.com"과 같은 도메인 이름을 입력하지만, 컴퓨터는 이를 이해하지 못하기 때문에 해당 도메인 이름을 IP 주소(예: 192.0.2.1)로 변환해야 한다. - 계층적 구조
DNS는 트리 구조를 기반으로 하며, 도메인 이름은 여러 단계로 나누어 진다. 예를 들어 "www.naver.com"의 경우, 아래처럼 나뉘어지는데, 필요한 IP 주소를 찾기 위해 상위 레벨에서 하위 레벨로 이동한다.- .com: 최상위 도메인(TLD, Top Level Domain)
- naver: 2차 도메인
- www: 하위 도메인(subdomain)
- 캐싱
자주 사용되는 DNS 결과는 캐싱되어 네트워크 성능을 향상시킨다. 해당 IP 주소를 로컬 시스템이나 네트워크에 저장하여, 불필요한 DNS 질의를 줄이고 빠른 응답을 제공한다. 이렇게 캐시된 정보는 일정 시간이 지나면 갱신된다. - 부하 분산(Load Balancing)
DNS는 여러 서버 중에서 부하가 적은 서버로 요청을 분산시키는 역할도 할 수 있다.
- 도메인 이름 해석
DNS 서버
DNS 서버에는 여러 종류가 있다. 이들은 서로 협력하여 이름 해석을 빠르게 처리한다.
1. 순환 DNS 서버(DNS Recursive Server/ DNS resolver)
요청 받은 도메인에 매치되는 IP 주소를 찾기 위해 계층적으로 DNS 쿼리를 수행한다. DNS 캐시를 저장하는 곳이기도 하다.
2. 루트 네임 서버(Root Name Server)
인터넷의 최상위에 있는 DNS 서버로, 각 도메인의 최상위 도메인(TLD)에 대한 정보를 제공한다.
3. TLD 네임 서버(TLD Name Server)
각 최상위 도메인의 정보를 관리하는 서버이다.
4. 권한 있는 네임 서버(Authoritative Name Server)
실제 도메인의 IP 주소 정보를 가지고 있는 서버이다. 여기서 얻은 IP 주소가 순환 DNS 서버를 거쳐 브라우저까지 전달된다.
'부트캠프' 카테고리의 다른 글
24/10/17 - 중앙 처리 장치(CPU) (0) | 2024.10.17 |
---|---|
24/09/24 - OSI 7계층: 전송 계층(Transport Layer) (0) | 2024.09.24 |
24/09/09 - OSI 7계층: 네트워크 계층(Network Layer) (0) | 2024.09.09 |
24/09/04 - OSI 7계층: 데이터 링크 계층(Data Link Layer) (0) | 2024.09.04 |
24/09/02 - OSI 7계층: 물리 계층(Physical Layer) (0) | 2024.09.02 |