Lesson 28. 응용 계층의 역할
응용 계층의 역할
응용 계층에서는 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 데이터로 변환하고 전송 계층으로 전달하는 역할을 합니다. 여기서 설명하는 응용 계층은 OSI 7계층 모델에서 세션 계층과 표현 계층을 포함하는 것으로 설명합니다.
응용 계층에서는 애플리케이션이 동작하는 계층입니다. 애플리케이션은 서비스를 요청(사용자)하는 측인 클라이언트, 서비스를 제공하는 측인 서버로 나눌 수 있습니다.
클라이언트 측의 애플리케이션과 서버 측의 애플리케이션이 통신하기 위해서는 프로토콜이 필요한데, 여러가지 프로토콜이 있지만 주요한 프로토콜 몇가지만 짚고 넘어갑니다.
- HTTP : 웹 사이트를 볼 때 사용
- FTP : 파일을 전송할 때 사용
- SMTP : 메일을 전송할 때 사용
- POP3 : 메일을 받을 때 사용
- DNS : URL 주소를 기반으로 IP를 알아내는 name resolution을 진행할 때 사용
Lesson 29. 웹 서버의 구조(웹사이트 접속)
WWW란?
WWW란 줄여서 W3라고도 부르며 웹이라고도 불립니다. WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용됩니다.
여기서는 HTTP를 다뤄보겠습니다.
HTTP란?
클라이언트가 웹 사이트를 보기 위해서는 서버의 80번 포트를 사용하여 HTTP 통신을 합니다. 클라이언트가 HTTP 요청을 서버에게 보내고, 서버는 해당 HTTP 응답을 반환하게 되는 것이죠.
클라이언트가 데이터를 요청할 떄는 GET이라고 하는 요청 정보와 파일 이름, 버전 등을 서버에게 전송합니다. 그러면 서버는 이에 대한 응답으로 OK라는 정보를 반환하고 index.html을 클라이언트에게 보냄으로써, 클라이언트는 웹 사이트를 볼 수 있는 것입니다.
현재는 HTTP/2나 HTTP/1.1 버전을 사용하지만 과거 HTTP/1.0 버전에서는 한 번의 요청을 보낼 때마다 연결을 맺고 끊는 과정을 반복해야 했습니다.
그러나 HTTP/1.1 버전이 등장하면서 keepalive 기능이 추가되었습니다. keepalive 기능이란 연결을 한 번 수립하면 데이터 교환을 모두 마칠 때까지 연결을 유지하는 구조를 이용하는 기능을 말합니다.
HTTP/1.1에서도 단점은 존재합니다. 바로 데이터를 순서대로 보내야한다는 것이었습니다. 이에 이러한 단점을 보완한 HTTP/2가 나오게 되었습니다. 데이터 요청을 보낸 순서대로 응답을 하는 것이 아닌 무작위로 응답을 하여 콘텐츠를 보다 빠를 수 있게 하여 콘텐츠를 보다 빠르게 표시할 수 있게 되었습니다.
Lesson 30. DNS 서버의 구조(name resolution)
도메인 네임이란?
기본적으로 컴퓨터에는 IP 주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있습니다. 하지만 우리는 어떤 사이트를 접속하려고 할 때, IP가 아닌 www.tistory.com과 같이 URL을 입력하여 접근하였던 것을 알 수 있을 것입니다. 이것이 가능한 이유는 tistory.com과 같은 URL을 IP로 변환하여주는 기능을 하는 프로토콜이 존재했기 때문인데 그것이 바로 DNS입니다.
이렇게 URL을 사용하여 인터넷 웹 사이트를 볼 수 있도록 돕는 것을 name resolution이라고 합니다.
www.tistory.com과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 네임이라고 하고, 도메인 이름 앞에 있는 www를 호스트 이름(서버 이름)이라고 합니다.
아래는 클라이언트가 특정 URL에 접속하려고 할 때, 실제 IP를 얻어 웹 사이트에 접속하는 모습을 보여줍니다.
하지만 도메인 네임은 매우 많기 때문에, 하나의 DNS 서버가 이를 모두 수용할 수는 없습니다. 즉, 여러 DNS 서버가 존재한다는 뜻인데 이럴 경우 첫 번째 DNS 서버가 원하는 IP를 찾지 못할 수 있습니다. 이 때는 두 번째 DNS 서버에게 전달하여 결과값을 얻어오게 됩니다.
Lesson 31. 메일 서버의 구조(SMTP와 POP3)
메일의 송수신 구조
메일 송수신을 위해서는 두 가지 프로토콜을 사용합니다. 메일을 보내는데 사용되는 SMTP 프로토콜, 메일을 받는데 사용되는 POP3 프로토콜. 여기서 SMTP는 25번 포트를 사용하고 POP3는 110번 포트를 사용합니다.
메일의 송수신 구조를 간략하게 표현하면 아래와 같이 나타낼 수 있습니다.
여기서 메일 서버 1은 컴퓨터 1이 사용하는 메일 프로그램의 서버이고, 메일 서버 2는 컴퓨터 2가 사용하는 메일 프로그램의 서버입니다.
SMTP에 의한 메일 송신과 메일의 전송
컴퓨터 1에서 메일 서버 1로 보내는 통신을 조금 더 자세하게 살펴봅시다. 아래와 같은 방식으로 메일의 송신이 이루어집니다.
이렇게 메일 서버 1이 메일을 받았다면, 메일 서버 1이 메일 서버 2에게 다시 메일을 보내는 과정을 거칩니다.
POP3에 의한 메일 수신
이제 컴퓨터 2가 메일 서버 2에서 메일을 수신하는 부분을 살펴봅시다.
우선 메일 서버에는 메일 박스라고 하는 메일을 보관해주는 기능이 있습니다. 이를 통해 SMTP로 메일 서버 1에서 메일 서버 2로 메일을 보낼 때 메일 박스에 해당 메일이 저장되게 되고, 컴퓨터 2는 메일 서버 2의 메일 박스에서 메일을 가져오게 되는 것이죠.
그림으로 해당 과정을 확인해봅시다.
컴퓨터 2가 메일을 받는 사용자인지 인증하는 과정을 거친다는 점을 알아둡시다.
이제 마지막으로 메일 송수신의 전체 과정을 그림으로 확인해보고 마치겠습니다.
'CS > Network' 카테고리의 다른 글
[모두의 네트워크] 9장 무선 랜 이해하기 (0) | 2024.01.08 |
---|---|
[모두의 네트워크] 8장 네트워크의 전체 흐름 살펴보기 (0) | 2024.01.04 |
[모두의 네트워크] 6장 전송 계층 : 신뢰할 수 있는 데이터 전송하기 (0) | 2024.01.03 |
[모두의 네트워크] 5장 네트워크 계층 : 목적지에 데이터 전달하기 (1) | 2024.01.02 |
[모두의 네트워크] 4장 데이터 링크 계층 : 랜에서 데이터 전송하기 (0) | 2023.12.28 |