28. 응용 계층의 역할
- 응용 계층 : OSI 모델의 최상위 계층으로 다양하게 존재하는 응용 환경에서 공통적으로 필요한 기능을 다룬다. 이메일, 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공하는 계층이다.
응용 계층의 역할
- 여기서는 편의상 5계층의 세션 계층과 6계층의 표현 계층을 포함한다.
- 응용 계층에서는 사용자 측(클라이언트)의 요청을 전달하기 위해 통신 대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다.
- 클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 게층의 프로토콜을 사용해야 한다.
- 주요 프로토콜
- HTTP : 하이퍼텍스트 전송 프로토콜. 웹 서비스에서 클라이언트(웹 브라우저)와 웹 서버 간에 정보를 주고받기 위해 사용되는 네트워크 프로토콜이다.
- DNS : 도메인 이름 시스템. 네트워크에서 호스트 이름을 IP 주소로 변환하는 데 사용하는 시스템(서비스)다. DNS 서비스가 동작하는 컴퓨터를 DNS 서버라고 한다.
- FTP : 파일 전송 프로토콜. 서버와 클라이언트 간에 파일을 전송하기 위한 프로토콜이다. 일반적으롵 통신 포트는 제어 용도로는 21번을 사용하고 데이터 전송 용도로는 20번 포트를 사용한다.
- SMTP : 전자 우편 전송 프로토콜. 인터넷에서 메일을 송신하는 데 사용하는 프로토콜이다. 통신 포트는 일반적으로 25번을 사용한다.
- POP3 : 포스트 오피스 프로토콜. 인터넷에서 메일을 수신하는 데 사용하는 프로토콜이다. 통신 포트는 일반적으로 110번을 사용한다. POP3를 지원해주는 서버를 POP3 서버라고 한다.
29. 웹 서버의 구조(웹 사이트 접속)
WWW란?
- WWW : Word Wide Web, 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. 간단히 웹(the Web)이라 부르는 경우가 많다. 웹은 전자 메일과 같이 인터넷 상에서 동작하는 하나의 서비스다.
- WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다.
- HTML : HyperText Markup Language, 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어이다. 하이퍼텍스트를 작성하기 위해 개발되었으며, WWW를 통해 볼 수 있는 문서를 만들 때 사용하는 프로그래밍 언어이다.
- URL : 인터넷에서 파일 위치를 지정하기 위해 기술된 주소다. 웹 사이트 주소를 지정하기 위해 사용한다.
HTTP란?
- HTTP : 웹 서비스에서 클라이언트(웹 브라우저)와 웹 서버 간에 정보를 주고받기 위해 사용되는 네트워크 프로토콜이다.
- 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 한다.
- HTTP/1.0 vs HTTP/1.1 vs HTTP 2.0
- HTTP/1.0 버전에서는 요청을 보낼 때마다 연결했다가 끊는 작업을 반복했다.
- HTTP/1.1 버전에서는 keepalive 기능이 추가되었다. keepalive는 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조이다.
- HTTP/1.1 버전은 요청을 보낸 순서대로 응답을 반환하기 때문에 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어진다. HTTP/2.0 버전은 요청을 보낸 순서대로 응답을 반환하지 않기 때문에 콘텐츠를 빠르게 표시할 수 있다.
30. DNS 서버의 구조(이름 해석)
도메인 이름이란?
- 기본적으로 컴퓨터(서버)에는 IP 주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다. IP 주소는 기억하기 어렵기 때문에 도메인 이름을 사용한다.
- DNS : 도메인 이름 시스템. 네트워크에서 호스트 이름을 IP 주소로 변환하는 데 사용하는 시스템(서비스)다. DNS 서비스가 동작하는 컴퓨터를 DNS 서버라고 한다.
- DNS 서버가 도메인 주소에 해당되는 IP 주소를 알려준다. 이를 이름 해석이라고 한다.
- 요청받은 DNS 서버가 해당 도메인 이름의 IP 주소를 모르는 경우에는 다른 DNS 서버에 질의한다.
- DNS 서버는 전 세계에 흩어져 있으므로 연계하면서 동작한다.
31. 메일 서버의 구조(SMTP와 POP3)
메일의 송수신 구조
- SMTP : 전자 우편 전송 프로토콜. 인터넷에서 메일을 송신하는 데 사용하는 프로토콜이다. 통신 포트는 일반적으로 25번을 사용한다.
- POP3 : 포스트 오피스 프로토콜. 인터넷에서 메일을 수신하는 데 사용하는 프로토콜이다. 통신 포트는 일반적으로 110번을 사용한다. POP3를 지원해주는 서버를 POP3 서버라고 한다.
메일을 주고받는 흐름
![](https://velog.velcdn.com/images/doforme/post/877d957b-0dab-4acd-b428-1b3ed23f8393/image.png)
- SMTP를 사용해서 컴퓨터 1에서 메일 서버 1로 메일을 보낸다.
- 컴퓨터 1에서 사용하는 메일 프로그램에 메일 서비스를 제공하는 메일 서버의 호스트 이름(서버 이름)을 설정하면 메일 서버 1로 메일을 보낼 수 있다.
- SMTP를 사용해서 메일 서버 1에서 메일 서버 2로 메일을 보낸다.
- POP3를 사용해서 메일 서버 2에서 컴퓨터 2로 메일 데이터를 보낸다.
SMTP에 의한 메일 송신과 메일 전송
- 컴퓨터 1과 메일 서버 1간의 통신은 다음과 같다.
- 세신 시작을 통지한다.
- 송신자의 메일 주소를 통지한다.
- 목적지 메일 주소를 통지한다.
- 메일 본문 전송을 통지한다.
- 메일 본문을 송신한다.
- 세션 종료를 통지한다.
- 이후 SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 전송한다.
POP3에 의한 메일 수신
- 메일 서버 2는 POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와서 컴퓨터 2로 전송한다.
- 메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있다.
- 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다.
- 컴퓨터 2와 메일 서버 2 간의 통신은 다음과 같다.
- 세션을 시작한다.
- 컴퓨터 2에서 받는 사람의 사용자 이름을 통지하고 메일 서버 2에 OK라는 확인 응답을 반환한다.
- 컴퓨터 2에서 수신자의 비밀번호를 통지하고 메일 서버 2에 비밀번호 확인이라는 확인 응답을 반환한다.
- 컴퓨터 2에서 자신이 메일이 있는지 확인하고 메일 서버 2는 있음이라는 확인 응답을 반환한다.
- 컴퓨터 2에서 메일 박스에 보관된 이메일을 전송받는다.
- 세션을 종료한다.
보강 1. ping 명령
- 목적지 컴퓨터와의 통신을 확인하려면 ping 명령을 확인한다.
- ping 명령은 ICMP(Internet Contol Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령이다.