네트워크 응용 계층

Yeji·2023년 10월 8일
0

네트워크

목록 보기
7/9

웹사이트를 보거나 메일을 보낼 때 우리는 웹브라우저, Gmail과 같이 애플리케이션을 사용한다.
애플리케이션은 서비스를 요청하는 클라이언트와, 클라이언트의 요청에 대한 응답을 반환하는 서버로 구성된다.
애플리케이션과 데이터를 주고 받기 위해 필요한 응용 계층에 대해 알아보자.

1. 응용 계층

이메일, 파일 전송, 웹사이트 조회 등 애플리케이션에 대한 서비스를 제공하는 역할을 한다.

클라이언트 측 애플리케이션이 서버 측 애플리케이션과 통신하려면 애플리케이션 특성에 맞는 프로토콜이 필요하다.
대표적은 프로토콜에는 HTTP, DNS< FTP, SMTP, POP3가 있다.

프로토콜내용
HTTP웹 사이트 접속
DNS이름 해석
FTP(File Transfer Protocol)파일 전송
SMTP메일 송신
POP3메일 수신

응용 계층은 프로토콜을 이용해 애플리케이션에 대응되는 데이터를 전송한다.

2. 웹서버

2-1. 웹, WWW(World Wide Web)

인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 공간을 말한다.

웹은 HTML, URL, HTTP로 구성된다.

1. HTML(HyperText Markup Language)
	- 태그를 사용해 웹 페이지를 만드는 마크업 언어
2. HTTP (HypterText Transfer Protocol)
	- 웹브라우저와 웹서버 통신에 사용되는 프로토콜
3. URL(Uniform Resource Locator)
	- 웹 상에 존재하는 자원에 접근하기 위해 사용하는 자원 식별자

웹은 HTML 문서 자원의 위치를 URL로 식별하고 해당 문서를 주고 받는 과정에 HTTP 프로토콜을 이용한다.

2-2. HTTP (HyperText Transfer Protocol)

웹브라우저와 웹서버 통신에 사용되는 프로토콜이다.

웹브라우저는 웹서버의 80번 포트를 사용해 HTTP 통신을 한다.

HTTP 1.0

클라이언트(웹브라우저)에서 HTTP 요청을 보내고 웹서버가 HTTP 응답을 반환하며 통신이 이루어진다.

1. 연결 수립
2. 클라이언트가 index.html을 GET 요청으로 보낸다.
3. 서버가 200 OK와 함께 index.html을 반환한다.
4. 연결을 끊는다.

HTTP/1.0 버전에서는 요청을 할 때마다 연결을 수립하고, 요청에 대한 응답이 오면 연결을 끊는 작업을 반복했고, 자연스럽게 웹사이트의 성능 및 속도 저하로 이어졌다. 이에 따라 HTTP/1.1 버전에서는 keepalive라는 기능이 추가되었다.

HTTP 1.1 - keepalive

연결을 한 번 수립하면 데이터 교환을 마치 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는다.

HTTP/1.0과 달리 HTTP/1.1은 매번 연결을 수립하지 않기 때문에 빠르게 콘텐츠를 표시할 수 있었다. 그러나 요청을 순서대로 처리하는 특징이 있어, 이전 요청에 대한 응답이 늦어졌을 경우 다음 요청에 대한 응답 또한 지연되는 문제가 발생해 사용자 경험을 개선시키기 쉽지 않았다.

HTTP 2

요청을 보낸 순서가 아닌, 빨리 처리되는 순서로 응답을 보낸다.

HTTP/1.1의 단점을 보완해 나온 것이 HTTP/2다. 요청을 처리하는 순서대로 응답을 반환하기 때문에 이전 요청에 대한 응답이 지연되어도 사용자는 비교적 빠르게 다른 콘텐츠를 먼저 확인할 수 있다.

3. DNS(Domain Name System)

도메인 이름을 IP 주소로 변환하는 역할을 한다.

웹사이트에 접속하려면 기본적으로 IP주소가 필요하다. 그런데 실제 웹사이트에 접속할 때 우리는 주소창에 IP 주소가 아닌 www.naver.com과 같은 도메인 주소를 입력한다. 이처럼 우리가 도메인 이름을 입력했을 때 해당 도메인에 매핑된 IP 주소로 변환해주는 서비스를 DNS라고 한다.

1. www.naver.com을 입력한다.
2. DNS 서버에 해당 도메인 이름의 IP 주소를 요청한다.
3. DNS 서버에서 IP 주소를 응답한다.
4. 응답받은 IP 주소로 접속한다.

요청한 DNS 서버가 해당 도메인의 IP 주소를 모르는 경우 다른 DNS 서버에 요청한다. DNS 서버는 전 세계적으로 흩어져 있으며 계층적으로 연결되어 있기 때문이다.

4. 메일 서버

4-1. SMTP와 POP3

기본적으로 SMTP는 메일 송신에 사용되는 프로토콜이며, POP3는 메일 수신에 사용되는 프로토콜이다. SMTP는 25번 포트를, POP3는 110번 포트를 사용한다.

4-2. 메일 송수신 과정

1️⃣ 컴퓨터A에 있는 메일 프로그램은 SMTP 프로토콜을 사용해 메일서버1로 메일을 보내며 그 과정은 다음과 같다.

1. 세션 시작
2. 송신자의 메일 주소 통지
3. 목적지 메일 주소 통지
4. 메일 본문 전송 통지
5. 메일 본문 송신
6. 세션 종료

2️⃣ 메일서버1에서 메일서버2로 메일을 전송한다. 이 때도 역시 SMTP 프로토콜을 사용한다.

3️⃣ 메일서버2POP3를 사용해 메일서버2dml 메일박스에서 메일을 가져와 컴퓨터B에 전송한다. 메일을 전송하기 전에 다음곽 같이 사용자 인증을 먼저 진행한다.

1. 세션 시작
2. 수신자 사용자 이름 통지 - OK 응답 반환
3. 수신자 비밀번호 통지 - 비밀번호 일치 응답 반환
4. 메일이 있는지 확인 - 메일이 있다고 응답
5. 메일 전송 요청 - 메일 전송
6. 세션 종료

참고

ping

ICMP 프로토콜을 사용해 목적지 컴퓨터와의 통신을 확인하는데 사용하는 명령어다.

목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령어다.
ping 명령어가 정상적으로 동작하면 네트워크 연결이 정상이라고 판단할 수 있기 때문에 문제를 확인하는 데 사용된다.

profile
채워나가는 과정

0개의 댓글