본문 바로가기
네트워크

[모두의 네트워크] 응용 계층 : 애플리케이션 데이터 전송하기

by mokhwasomssi 2022. 1. 22.

http://www.yes24.com/Product/Goods/61794014

 

모두의 네트워크 - YES24

네트워크를 전혀 몰라도 괜찮다!초보자와 비전공자를 위한 가장 쉬운 네트워크 입문서[모두의 네트워크]는 이제 막 네트워크를 공부하기 시작했거나 공부해야겠다고 마음먹은 초급자를 대상으

www.yes24.com


이 장의 목표

  • 응용 계층의 역할을 이해한다
  • 웹 서버의 구조를 이해한다
  • DNS의 이름 해석 구조를 이해한다
  • 메일의 송수신 구조를 이해한다

LESSON28 응용 계층의 역할

1. 응용 계층의 역할

  • 클라이언트
    • 서비스를 요청하는 측
    • 웹 브라우저, 메일 프로그램
  • 서버
    • 서비스를 제공하는 측
    • 웹 서버 프로그램과 메일 서버 프로그램
  • 응용 계층
    • 애플리케이션과 데이터를 주고받기 위해 필요하다
    • 5계층의 세션 계층과 6계층의 표현 계층을 포함하는 것으로 생각
    • 사용자 측(클라이언트)의 요청을 전달하기 위한 통신 대상(서버)가 이해할 수 있는 메세지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다.
  • 응용 계층의 프로토콜
    • 클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 계층의 프로토콜을 사용해야 한다.
    • 주요 응용 계층 프로토콜 
      프로토콜 내용
      HTTP(HyperText Transfer Protocol) 웹 사이트 접속
      DNS(Domain Name System) 이름 해석
      FTP(File Transfer Protocol) 파일 전송
      SMTP(Simple Mail Transfer Protocol) 메일 송신
      POP3(Post Office Protocol version) 메일 수신
      • DNS(Domain Name System)
        • 이름 해석을 위해 DNS를 사용
      • 이름 해석(name resolution)
        • 네트워크에서 컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP를 알아내는 것
  • OSI 모델의 계층에서 사용되는 프로토콜과 기술

LESSON29 웹 서버의 구조(웹 사이트 접속)

응용 계층에는 웹 페이지를 접속하기 위한 프로토콜이 있다.

이번에는 웹 페이지에 접속하는 구조에 대해 설명한다.

1. WWW란?

  • WWW(World Wide Web)
    • HTML, URL, HTTP 기술이 사용 됨
  • HTML
    • 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어
    • 제목이나 목록과 같은 문장 구조를 지정하거나 이미지 파일을 보여 줄 때도 태그를 사용한다.
    • HTML로 작성한 웹 페이지는 웹 브라우저로 볼 수 있다.
    • 하이퍼텍스트(hypertext)를 작성하는 마크업 언어라고도 한다
  • 웹 서버에서 웹 브라우저로 전송되는 html 파일과 이미지 파일
    1. 1. 클라이언트 - index.html을 보내주세요
    2. 2. 서버 - index.html을 보냄
    3. 3. 클라이언트 - picture.jpg을 보내주세요
    4. 4. 서버 - picture.jpg을 보냄

2. HTTP란?

  • HTTP(HyperText Transfer Protocol) 통신
    • 웹 서비스에서 클라이언트(웹 브라우저)와 웹 서버 간에 정보를 주고받기 위해 사용되는 네트워크 프로토콜이다.
    • 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 한다.
  • HTTP요청과 HTTP 응답
    • 클라이언트에서 HTTP 요청을 보내고 서버에서 HTTP 응답을 반환
    1. 클라이언트
      • HTTP 요청
        • GET/index.html HTTP/1.1
    2. 서버
      • HTTP 응답
        • HTTP/1.1 200 OK
  • HTTP/1.1
    • keepalive 기능
      • HTTP/1.1 버전에서 keepalive 기능이 추가
      • 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지
      • 데이터 교환을 모두 끝내면 연결을 끊는 구조
    • 요청을 보낸 순서대로 응답을 반환
      • 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어짐
  • HTTP/2
    • 요청을 보낸 순서대로 응답을 반환하지 않아도 됨
    • 콘텐츠를 빠르게 표시할 수 있음

LESSON30 DNS 서버의 구조(이름 해석)

응용 계층에는 이름 해석을 통해 도메인 이름을 IP 주소로 변환하는 역할을 하는 DNS가 있다.

이번에는 DNS의 구조에 대해 알아본다.

1. 도메인 이름이란?

  • 컴퓨터(서버)에는 IP 주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다.
  • DNS(Domain Name System)
    • 네트워크에서 호스트 이름을 IP 주소로 변환하는 데 사용하는 시스템(서비스)이다.
    • DNS 서비스가 동작하는 컴퓨터(서버)를 DNS 서버라고 한다.
    • DNS는 URL을 IP 주소로 변환하는 서비스(시스템)이다.
    • IP 주소가 아닌 http://www.gilbut.co.kr과 같은 주소를 사용하여 접속하도록 돕는 것을 DNS의 이름 해석(name resolution)이라고 한다.
    • http://www.gilbut.co.kr에 접속하면 DNS서버가 이 웹 사이트 서버의 IP 주소를 알려준다.
  • 도메인 이름
    • www.gilbut.co.kr 과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라고 한다.
    • 도메인 이름 앞에 있는 www는 호스트 이름(서버 이름)이라고 한다.
  • 컴퓨터와 DNS 서버 간에 일어나는 IP 주소 교환
    1. [컴퓨터] 웹 브라우저에 URL을 입력하여 접속 http://www.gilbut.co.kr
    2. [컴퓨터] http://www.gilbut.co.kr의 IP 주소를 알려 주세요
    3. [DNS 서버] 해당 URL의 IP 주소는 222.235.64.222입니다.
    4. [컴퓨터] IP 주소로 웹서버에 접속한다.
  • DNS 서버가 도메인의 IP 주소를 모르는 경우
    • 다른 DNS 서버에 질의
  • DNS 서버는 전 세계에 흩어져 있으므로 연계하면서 동작한다.

LESSON31 메일 서버의 구조(SMTP와 POP3)

응용 계층에서 메일을 송수신하기 위한 프로토콜이 있다.

메일을 송수신하는 구조에 대해 알아본다.

1. 메일의 송수신 구조

  • 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간의 통신을 해야 한다.
  • 프로토콜 2가지 종류
    • SMTP
      • 메일을 보내는 데 사용되는 프로토콜
      • 포트 번호 : 25번
    • POP3
      • 메일을 받는 데 사용되는 프로토콜
      • 포트 번호 : 110번
  • 메일 송수신 과정
    1. SMTP를 사용하여 컴퓨터 1에서 메일 서버 1로 메일을 보낸다.
      • 메일 서버 1
        • 메일 서비스를 제공하는 포털사이트나 회사의 메일 서버를 사용하는 경우가 많다.
    2. SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 보낸다.
      • 메일 서버 간에도 SMTP를 사용하여 메일을 전송한다.
    3. POP3를 사용하여 메일 서버 2에서 컴퓨터 2로 메일 데이터를 보낸다.

2. SMTP에 의한 메일 송신과 메일 전송

  • 메일 송수신 과정
    1. SMTP를 사용하여 컴퓨터 1에서 메일 서버 1로 메일을 보낸다.
      1. 세션 시작을 통지한다
      2. 송신자의 메일 주소를 통지한다
      3. 목적지 메일 주소를 통지한다
      4. 메일 본문 전송을 통지한다
      5. 메일 본문을 송신한다
      6. 세션 종료를 통지한다
    2. SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 보낸다.

3. POP3에 의한 메일 수신

  • 메일 박스
    • 메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있다.
    • 메일 서버 2는 POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와서 컴퓨터 2로 전송한다.
  • 사용자 인증
    • 메일 서버 2에 컴퓨터 1의 메일이 도착하면 컴퓨터 2는 메일 서버 2의 메일 박스에 있는 메일을 받아 가야 한다.
    • 하지만 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다.
  • 메일 송수신 과정
    1. POP3를 사용하여 메일 서버 2에서 컴퓨터 2로 메일 데이터를 보낸다.
      1. 세션 시작을 통지한다.
      2. 수신자의 사용자 이름을 통지한다
        • 컴퓨터 2에서 받는 사람의 사용자 이름을 통지하고 메일 서버 2에 ‘OK’라는 확인 응답을 반환한다.
      3. 수신자의 비밀번호를 통지한다
        • 컴퓨터 2에서 수신자의 비밀번호를 통지하고 메일 서버 2에 ‘비밀번호 확인’이라는 확인 응답을 반환한다.
      4. 메일을 확인한다
        • 컴퓨터 2에서 자신의 메일이 있는지 확인하고 메일 서버 2는 ‘있음’이라는 확인 응답을 반환한다.
      5. 메일의 전송을 요청한다
        • 컴퓨터 2에서 메일 박스에 보관된 이메일을 전송받는다.
      6. 세션 종료를 통지한다
  • ping 명령
    • 목적지 컴퓨터와의 통신을 확인
    • ICMP(Internet Control Message Protocol)을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령
    • ping 명령이 정상으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있음
    • 사용법
      • ping 목적지 IP 주소
      • ping 목적지 호스트 이름