[Network] 응용 계층 : 애플리케이션에 데이터 전송하기
28. 응용 계층의 역할
응용 계층의 역할
- 웹 페이지를 볼 때는 인터넷 익스플로러 같은 웹 브라우저
- 메일을 보내고 받을 때는 Outlook 같은 메일 프로그램
애플리케이션 : 사용자가 하고 싶은 일을 할 수 있도록 해주는 것
애플리케이션의 2가지 분류
- 클라이언트 : 서비스를 요청하는 측(사용자 측)
- ex) 웹 브라우저, 메일 프로그램
- 서버 : 서비스를 제공하는 측 -> 응용 계층에서 동작
- ex) 웹 서버 프로그램, 메일 서버 프로그램
서비스 : 네트워크나 애플리케이션이 제공하는 기능이나 동작, 정보 등
응용 계층 : 애플리케이션과 데이터를 주고받기 위해 필요
- 6계층의 표현 계층과 5계층의 세션 계층을 포함하는 것으로 생각
- 사용자 측(클라이언트)의 요청을 전달하기 위해 통신 대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 함
- 클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 계층의 프로토콜을 사용해야 함
- 각 애플리케이션에 대응되는 데이터를 전송하는 역할
응용 계층의 대표적인 프로토콜
- HTTP(HyperText Transfer Protocol) : 웹 사이트 접속 프로토콜
- FTP(File Transfer Protocol) : 파일 전송 프로토콜
- SMTP(Simple Mail Transfer Protocol) : 메일 전송 프로토콜
- POP3(Post Office Protocol) : 메일 수신 프로토콜
- DNS(Domain Name System) : 이름 해석(name resolution) 프로토콜
- 네트워크에서 컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것
29. 웹 서버의 구조(웹 사이트 접속)
WWW란?
WWW(World Wide Web)
- W3나 웹(web)이라고도 함
- HTML, URL, HTTP 세 가지 기술이 사용됨
HTML(HyperText Markup Language)
- 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어
- 제목, 목록과 같은 문장 구조를 지정하거나 이미지 파일을 보여 줄 때도 태그를 사용함
마크업 언어 : 문장의 일부를 태그로 감싸고 문장을 꾸미기 위한 형식
- HTML로 작성하면 웹 브라우저를 볼 수 있음
- HTML은 하이퍼텍스트(hypertext)를 작성하는 마크업 언어
- 하이퍼텍스트 : 문자와 이미지를 표시하거나 하이퍼링크(hyperlink)를 사용할 수 있음
- 하이퍼링크는 보통 링크(link)라고 함
링크를 통해서 다른 사이트로 이동할 때 일어나는 일
- 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 브라우저로 전송됨
- html 파일 : 웹에서 문서를 작성할 때 사용되는 마크업 언어인 HTML로 작성된 파일
- 문서와 이미지는 각각 별도로 요청을 함
- 그래서 가끔 글이 먼저 보이고 이미지가 나중에 보일 때가 있음
HTTP란?
- 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 함
- 클라이언트에서 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환
- 요청(request) : 데이터나 작업 처리를 요청하는 메시지
- 응답(response) : 상대에게 보낸 데이터나 처리 요청에 대한 응답
- 클라이언트에서 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환
- 클라이언트가 데이터 요청할 때
- GET이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송
- 서버가 응답할 때
- 요청을 정상적으로 처리했다는 OK라는 정보를 반환하고 index.html을 클라에 보냄
HTTP 버전별 특징
- HTTP/1.0 버전
- 요청을 보낼 때마다 연결했다 끊는 작업을 반복하는 구조
- HTTP/1.1 버전
- 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교환을 모두 끝내면 연결을 끊는 구조
-> keepalive - keepalive는 요청을 보낸 순서대로 처리하는 특징이 있음
- 단점 : 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어짐
- 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교환을 모두 끝내면 연결을 끊는 구조
- HTTP/2.0 버전
- HTTP/1.1 버전의 단점을 보완해서 빠르게 콘텐츠를 표시할 수 있는 프로토콜
- 요청을 보낸 순서대로 응답을 반환하지 않아도됨
30. DNS 서버의 구조(이름 해석)
도메인 이름이란?
DNS(Domain Name System)
- URL을 IP 주소로 변환하는 서비스(시스템) -> 이름 해석(name resoulution)
http://www.gilbut.co.kr
에 접속하면 DNS 서버가 이 웹 사이트 서버의 IP 주소를 알려주는 것- 도메인 :
www.gilbut.co.kr
과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름 - 호스트이름(서버 이름) : 도메인 이름 앞에 있는
www
31. 메일 서버의 구조(SMTP와 POP3)
메일의 송수신 수조
- 메일을 송수신하려면 클라 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간에 통신을 위한 프로토콜에는 두 가지 종류가 있음
- SMTP : 메일을 보내는 데 사용하는 프로토콜, 메일 서버 간에 메일 전송에도 이용됨
- 포트 번호는 25번을 사용
- POP3 : 메일을 받는 데 사용되는 프로토콜
- 포트 번호는 110번을 사용
- SMTP : 메일을 보내는 데 사용하는 프로토콜, 메일 서버 간에 메일 전송에도 이용됨
SMTP에 의한 메일 송신과 메일 전송
- 컴퓨터 1의 메일 프로그램은 SMTP를 사용하여 메일 서버 1로 메일을 보냄
- SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 전송함
POP3에 의한 메일 수신
- 메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있음
- 메일 서버 2는 POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와서 컴퓨터 2로 전송
- 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요함
- 사용자 인증 : 시스템에 접근하려는 사용자가 올바른 사용자인지 판별하는 것
ping 명령
- 목적지 컴퓨터와의 통신을 확인하려면 ping 명령을 이용
- ping 명령은 ICMP(Internet Control Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령
- ping 명령이 정상으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있어 문제를 확인할 때 자주 사용
느낀점
- 응용 계층이 우리가 사용하는 애플리케이션들과 데이터를 주고 받기 위해 필요한 존재라는 것을 알게 되었고 애플리케이션까지 데이터가 도달하는 맥락을 이해할 수 있게 되었다. 그리고 웹 서버, DNS, 메일 송수신의 구조를 이해할 수 있었다