본문 바로가기
네트워크

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

by Lizardee 2023. 8. 16.
28. 응용 계층의 역할

 클라이언트(client): 서비스를 요청하는 측

  • 예) 웹 브라우저, 메일 프로그램 등

▶ 서버(server): 서비스를 제공하는 측

  • 예) 웹 서버 프로그램, 메일 서버 프로그램

 
※ OSI 모델

  • 응용 계층
  • 전송 계층
  • 네트워크 계층
  • 데이터 링크 계층
  •  물리 계층

--> 응용 계층: 사용자측(클라이언트)의 요청을 전달하기 위해 통신 대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고, 전송계층으로 전달하는 역할

클라이언트 <-> 서버

▷ 응용 계층 프로토콜
: 클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면, 응용 계층의 프로토콜을 사용해야 한다.

  • HTTP(Hyper Text Transfer Protocol; 하이퍼텍스트 전송 프로토콜): 웹 사이트 접속
  • DNS(Domian Name System; 도메인 이름 시스템): 이름 해석
  • FTP(File Transfer Protocol; 파일 전송 프로토콜): 파일 전송
  • SMTP(Simple Mail Transfer Protocol; 전자 우편 전송 프로토콜): 메일 송신
  • POP3(Post Office Protocol version; 포스트 오피스 프로토콜): 메일 수신

OSI 모델의 계층에서 사용되는 프로토콜과 기술

 

Lesson 28 정리
  • 서비스를 요청하는 측을 클라이언트(client), 서비스를 제공하는 측을 서버(server)라고 한다.
  • 클라이언트(client)에서 사용하는 애플리케이션과 서버(server)에서 사용하는 서버 프로그램 간의 통신은 응용 계층의 프로토콜을 사용한다.
  • 응용 계층의 주요 프로토콜에는 HTTP, DNS, FTP, SMTP, POP3 등이 있다.

 


29. 웹 서버의 구조 (웹 사이트 접속)
WWW(World Wide Web; 월드 와이드 웹)

▶ HTML(Hyper Text Markup Language; 하이퍼텍스트 마크업 언어)

  • 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어
  • 하이퍼텍스트(hypertext)를 작성하는 마크업 언어
    **하이퍼텍스트(hypertext): 문자와 이미지 표시, 하이퍼링크(hyperlink) 사용

HTML: 웹 서버에서 웹 브라우저로 전송되는 html 파일과 이미지 파일

 
▶ URL(Uniform Resource Locator)
▶ HTTP
 

HTTP

: 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 한다.

HTTP 요청 --> HTTP 응답

  1. 클라이언트(웹 브라우저): HTTP 요청(request)
    - "GET"이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다.
  2. 서버(웹 서버 프로그램): HTTP 응답(response)
    - 응답으로 요청을 정상적으로 처리했다는 "OK"라는 정보를 반환하고, index.html을 클라이언트에게 보낸다.

 

HTTP/1.0 이전의 연결
HTTP/1.1의 연결: keepalive 기능 추가

  • keepalive: 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조

HTTP/2의 연결: 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.

 

Lesson 29 정리
  • HTML은 하이퍼텍스트를 작성하는 마크업 언어로 '태그'를 사용하여 문장 구조, 이미지 파일을 표시한다.
  • HTML로 작성된 웹 페이지는 웹 브라우저로 볼 수 있다.
  • 하이퍼텍스트(hypertext)로는 문장이나 이미지를 표시하거나 하이퍼링크(hyperlink)를 사용할 수 있다.
  • 일반적으로 웹 브라우저는 웹 서버(웹 서버 프로그램)의 80번 포트를 통해 HTTP 통신을 한다.
  • 웹 브라우저에서는 HTTP 요청을 보내고, 웹 서버에서는 HTTP 응답을 반환한다.
  • HTTP/1.1 버전은 keelalive 기능이 있어서 데이터를 교환하는 동안에는 연결을 유지하고, 데이터 교환이 끝나면 연결을 끊는다.
  • HTTP/2 버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.

 


30. DNS 서버의 구조 (이름 해석)
도메인 이름

기본적으로 컴퓨터(서버)에는 IP 주소가 있어서, 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다.
그러나 웹 브라우저의 주소 창에 URL을 직접 입력하면 웹 사이트가 보인다.
 
▶ DNS: URL을 IP 주소로 변환하는 서비스(시스템)

  • 도메인 이름: gilbut.co.kr과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름
  • 호스트 이름(서버 이름): 도메인 이름 앞에 있는 www

컴퓨터와 DNS 서버 간에 일어나는 IP 주소 교환

  1. 컴퓨터에서 "이 도메인 이름의 IP 주소는 무엇인가요?"라고 질문한다.
  2. DNS 서버: 해당 요청에 해당하는 도메인 이름의 IP 주소를 알려준다.
  3. 컴퓨터: IP 주소로 서버에 접속한다.

**요청한 DNS 서버가 도메인의 IP 주소를 모르는 경우
--> DNS 서버1이 DNS 서버2에 요청한다.

DNS 서버 간에 일어나는 IP 주소 정보 교환

  • DNS 서버는 전 세계에 흩어져있고, 모두 계층적으로 연결되어 있다.

 

Lesson 30 정리
  • DNS 서버는 '이름 해석'을 사용하여 도메인 이름을 IP 주소로 변환한다.
  • URL에는 호스트 이름과 도메인 이름이 있는데, 예를 들어 www.gilbut.co.kr에서 gilbut.co.kr은 도메인 이름이고, www는 호스트 이름이다.
  • 요청받은 DNS 서버가 해당 도메인 이름의 IP 주소를 모르는 경우에는 다른 DNS 서버에 질의한다.
  • DNS 서버는 전 세계에 흩어져 있으므로 연계하면서 동작한다.

 


31. 메일 서버의 구조 (SMTP와 POP3)
메일 송수신 구조

: 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간의 통신
 
▶ SMTP: 메일을 보내는 데 사용되는 프로토콜, 포트 번호 25번
▶ POP3: 메일을 받는 데 사용되는 프로토콜, 포트 번호 110번

메일 송수신에는 SMTP, POP3 프로토콜이 사용된다.

  1. SMTP를 사용하여 컴퓨터1에서 메일 서버1로 메일을 보낸다.
    - 메일 서버1: 메일 서비스를 제공하는 포털사이트, 회사의 메일 서버 등
  2. SMTP를 사용하여 메일 서버1에서 메일 서버2로 메일을 보낸다.
  3. POP3를 사용하여 메일 서버2에서 컴퓨터2로 메일 데이터를 보낸다.

 

SMTP에 의한 메일 송신과 메일 전송
  1. 컴퓨터1의 메일 프로그램은 SMTP를 사용하여 메일 서버1로 메일을 보낸다.
  2. 메일 서버1은 SMTP를 사용하여 메일 서버2로 메일을 전송한다.

컴퓨터1과 메일 서버1 간에 일어나는 메일 교환, 메일 서버 간에 일어나는 메일 교환

 

POP3에 의한 메일 수신
  • 메일 박스: 메일 서버에 있는 메일을 보관해주는 기능

--> 메일 서버2는 POP3을 사용하여 메일 서버2의 메일 박스에서 메일을 가져와 컴퓨터2로 전송한다.
** 메일 서버2에 컴퓨터1의 메일이 도착하면, 컴퓨터2는 메일 서버2의 메일 박스에 있는 메일을 받아 가야 하지만, 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다. 

  • POP3은 프로토콜로 110번 포트를 사용한다.

메일 서버와 컴퓨터 간에 일어나는 메일 교환

  1. 세션을 시작한다.
  2. 컴퓨터2에서 받는 사람의 사용자 이름을 통지하고 메일 서버2에 'OK'라는 확인 응답을 반환한다.
  3. 컴퓨터2에서 수신자의 비밀번호롤 통지하고 메일 서버2에 '비밀번호 확인'이라는 확인 응답을 반환한다.
  4. 컴퓨터2에서 자신의 메일이 있는지 확인하고, 메일 서버2는 '있음'이라는 확인 응답을 반환한다.
  5. 컴퓨터2에서 메일 박스에 보관된 이메일을 전송받는다.
  6. 세션을 종료한다.

 

ping 명령

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

윈도에서 ping 명령 실행하기

 

Lesson 31 정리
  • 메일 송신은 SMTP(프로토콜) 25번 포트를 사용한다.
  • 메일 수신은 POP3(프로토콜) 110번 포트를 사용한다.
  • 메일 서버 간에도 SMTP를 사용하여 메일을 전송한다.
  • 메일 서버에는 메일 박스가 있는데, 여기에 메일이 보관된다.