- 여기서의 응용계층은 5 계층의 세션 계층과 6 계층의 표현 계층을 포함하는 것을 생각
응용 계층의 역할
- 애플리케이션(응용 계층에서 동작)은 클라이언트와 서버로 나눌 수 있음
클라이언트
: 서비스를 요청하는 측(사용자 측)서버
: 서비스를 제공하는 측
- 사용자 측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지로 변환하고
전송 계층에 전달하는 역할 - 클라이언트 애플리케이션과 서버 애플리케이션이 통신하기 위해선 응용 계층의 프로토콜이 필요
- 응용 계층에서 사용하는 대표적인 프로토콜
HTTP
- 웹사이트 접속FTP
- 파일 전송SMTP
- 메일 송신POP3
- 메일 수신DNS
- 이름 해석- 이름 해석 : 네트워크에서 컴퓨터나 네트워크 장비 이름으로 IP 주소를 알아내는 것
- 이름 해석 : 네트워크에서 컴퓨터나 네트워크 장비 이름으로 IP 주소를 알아내는 것
- 응용 계층에서 사용하는 대표적인 프로토콜
- 응용 계층은 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할
- 응용 계층에서 보내려는 데이터는 전송 → 네트워크 → 데이터 링크 → 물리 계층 순으로 처리
- 각 계층의 프로토콜과 기술
웹 서버의 구조(웹사이트 접속)
www란?
- www는 HTML, URL, HTTP 3가지 기술로 사용
HTML
: 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어- 하이퍼텍스트(hypertext)를 작성하는 마크업 언어라고도 불림
하이퍼 텍스트
: 문자와 이미지를 표시하거나 하이퍼링크를 사용할 수 있음- 링크를 통해 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 전송
- 문서와 이미지를 각각 별도로 요청
- 링크를 통해 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 전송
- 하이퍼텍스트(hypertext)를 작성하는 마크업 언어라고도 불림
HTTP란?
- 클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신을 함
- 클라이언트에서 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환
- 데이터를 요청할 때 “GET”이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송
- 서버는 응답으로 요청을 처리했다는 “OK”라는 정보를 반환하고 데이터를 보냄
예전 버전 - HTTP/1.0
- 해당 버전에는 요청을 보낼 때마다 연결했다 끊는 작업을 반복
→ 웹 페이지가 느려 보임
HTTP/1.1 버전
- HTTP/1.0의 단점을 보안하고자 HTTP/1.1 버전에서는 keepalive 기능 추가
keepalive
- 연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지
- 데이터 교환을 모두 끝내면 연결을 끊는 구조
- 요청을 순서대로 처리하는 특징이 있음
- 빠르게 콘텐츠를 표시할 수 있음
- 단점
- 순서대로 응답을 반환한다. → 이전 요청을 처리하는데 시간이 길어지면 지연된다.
HTTP/2 버전
- HTTP/1.1 버전의 단점을 보완한 버전 → 요청을 보낸 순서대로 응답을 반환하지 않아도 됨
- 1번 요청이 먼저 들어왔음에도 2번 응답이 먼저 도착했다.
→ 요청을 보낸 순서대로 응답하지 않는다.
→ 이전 처리에 대한 지연이 발생하지 않는다.
DNS 서버의 구조(이름 해석)
도메인 이름이란?
- 기본적으로 서버에는 IP 주소가 있어야 접속할 수 있다.
도메인 이름
: 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름- 예 : www.google.co.kr
- 여기서 www는 호스트 이름(서버 이름)
- 여기서 www는 호스트 이름(서버 이름)
- 예 : www.google.co.kr
- DNS는 URL을 IP로 변환하는 서비스(시스템)
- www.google.co.kr에 접속하면 DNS 서버가 해당 웹 사이트의 IP 주소를 알려줌
→ 이름 해석
- www.google.co.kr에 접속하면 DNS 서버가 해당 웹 사이트의 IP 주소를 알려줌
컴퓨터가 도메인 이름으로 웹 브라우저에 접속하는 과정
- 컴퓨터에서 www.google.co.kr을 입력하여 접속한다.
- DNS 서버에 www.google.co.kr의 주소를 요청한다.
- 해당 URL의 IP 주소를 컴퓨터에 반환한다.
- 전달받은 IP 주소로 웹 서버에 접속한다.
- DNS 서버가 요청받은 도메인의 IP 주소를 모를 수도 있다.
- 이럴 경우, 해당 DNS 서버가 다른 DNS 서버에 요청을 하여 IP주소를 받아,
이를 다시 컴퓨터에게 넘김
- 이럴 경우, 해당 DNS 서버가 다른 DNS 서버에 요청을 하여 IP주소를 받아,
메일 서버의 구조(SMTP와 POP3)
메일의 송수신 구조
- 메일을 송수신하기 위해선 클라이언트 측과 서버 측의 메일 서버 프로그램 간에 통신이 필요
→ 그때 2개의 프로토콜이 사용(SMTP, POP) SMTP
: 메일을 보내는 데 사용되는 프로토콜- 포트 번호로 25번 사용
- 메일 서버 간의 메일 전송에도 이용
POP3
: 메일을 받는 데 사용되는 프로토콜- 포트 번호로 110번 사용
- 포트 번호로 110번 사용
메일을 주고받는 흐름
- SMTP를 사용하여 A에서 메일 서버 1로 메일을 보낸다.
- SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 보낸다.
- POP3를 사용하여 메일 서버 2에서 컴퓨터 2로 메일 데이터를 보낸다.
SMTP에 의한 메일 송신과 메일 전송
- 우선 컴퓨터의 메일 프로그램은 SMTP를 이용하여 메일 서버로 메일을 보냄
- 동작 흐름
- 세션 시작을 통지
- 송신자의 메일 주소를 통지
- 목적지 메일 주소를 통지
- 메일 본문 전송을 통지
- 메일 본문을 송신
- 세션 종료를 통지
- 동작 흐름
- SMTP을 사용하여 메일 서버에서 다른 메일 서버로 메일을 전송
POP3에 의한 메일 수신
- 메일 서버는 POP3를 사용하여 메일 서버의 메일 박스에서 메일을 가져와서 수신 컴퓨터에 전송
메일 박스
: 메일 서버에 존재하는 메일을 보관하는 기능을 가진 공간
사용자 인증이 필요한 경우
- 세션을 시작한다.
- 수신 컴퓨터에서 받는 사람의 사용자 이름을 통지하고 메일 서버에 ‘OK’라는
확인 응답을 반환한다. - 수신 컴퓨터에는 수신자의 비밀번호를 통지하고 메일 서버에 ‘비밀번호 확인’이라는
확인 응답을 반환한다. - 수신 컴퓨터에서 자신의 메일이 있는지 확인하고 메일 서버는 ‘있음’이라는 확인 응답을 반환
- 수신 컴퓨터에서 메일 박스에 보관된 이메일을 전송받는다
- 세션을 종료한다.