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) : 상대에게 보낸 데이터나 처리 요청에 대한 응답
  • 클라이언트가 데이터 요청할 때
    • 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에 의한 메일 송신과 메일 전송

  • 컴퓨터 1의 메일 프로그램은 SMTP를 사용하여 메일 서버 1로 메일을 보냄
  • SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 전송함

POP3에 의한 메일 수신

  • 메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있음
  • 메일 서버 2는 POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와서 컴퓨터 2로 전송
  • 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요함
    • 사용자 인증 : 시스템에 접근하려는 사용자가 올바른 사용자인지 판별하는 것

ping 명령

  • 목적지 컴퓨터와의 통신을 확인하려면 ping 명령을 이용
  • ping 명령은 ICMP(Internet Control Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령
    • ping 명령이 정상으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있어 문제를 확인할 때 자주 사용

느낀점

  • 응용 계층이 우리가 사용하는 애플리케이션들과 데이터를 주고 받기 위해 필요한 존재라는 것을 알게 되었고 애플리케이션까지 데이터가 도달하는 맥락을 이해할 수 있게 되었다. 그리고 웹 서버, DNS, 메일 송수신의 구조를 이해할 수 있었다

reference

모두의 네트워크