개념 정리/CS

네트워크 : 응용계층 : 애플리케이션에 데이터 전송하기

매진2 2023. 11. 20. 15:57
728x90


1. 응용 계층의 역할

a. 응용 계층의 역할

a-1. 웹페이지 볼때는 웹 브라우저, 메일보내고 받을때는 메일프로그램 사용

  • 애플리케이션 : 서비스를 요청하는 측에서 사용하는 애플리케이션으로 분류 가능
  • 서비스 : 네트워크나 애플리케이션이 제공하는 기능이나 동작, 정보 등
    • 서비스를 요청하는 측 : 클라이언트
    • 서비스를 제공하는 측 : 서버
  • 서버에서는 웹서버 프로그램과 메일 서버 프로그램등이 있고 이런 애플리케이션은 응용계층에서 동작

a-2. 응용계층

  • 응용계층 = 세션계층 + 표현계층
  • 응용계층 : 애플리계이션과 데이터를 주고받기 위해 필요
    • 응용 계층에서는 사용자 측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메세지로 변환하고 전송 계층으로 전달하는 역할
  • OSI 모델의 최상위 계층으로 다양하게 존재하는 응용 환경에서 공통적으로 필요한 기능 다룸
    • 시스템 간의 응용 처리는 상호 간에 통신하면서 일련의 업무를 처리할 수 있도록 필요한 서비스 기능 제공
    • 이메일, 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스 제공하는 계층

a-3. 클라이언트 측 애플리케이션이 서버 측 애플리케이션과 통신하려면 응용계층의 프로토콜 사용해야함

  • HTTP (HyperText Transfer Protocol) : 웹사이트를 접속
  • FTP(File Transfer Protocol) : 파일 전송
    • 일반적으로 통신 포트트 제어용도로 21번, 데이터 전송용도로 20번
  • SMTP(Simple Mail Transfer Protocol) : 메일 송신
    • 일반적으로 25번 포트 사용
    • SMTP 서버 : SMTP 지원하는 서버
  • POP3(Post Office Protocol version) : 메일 수신
    • 일반적으로 110번 사용
    • POP3 서버 : POP3 지원하는 서버
  • DNS(Domain Name System) : 이름 해석
    • 이름 해석 : 네트워크에서 컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것

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

응용계층 HTTP DNS FTP SMTP POP3 기타 프로토콜
전송계층 TCP UDP
네트워크 계층 IP 등
데이터 링크 계층 이더넷
물리 계층 전기 신호 변환

 

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

a. WWW란?

a-1. WWW(World Wide Web)=W3=웹(Web)

  • WWW : 거대한 통신망인 인터넷은 수많은 사이트, 데이터, 정보를 갖고 있으며 통신 회선이 거미줄처럼 서로 연결되어 있어 언제 어디서든 필요한 곳에 접근하거나 정보를 공유하고 주고 받을 수 있는 멀티미디어 인터넷 서버

a-2. WWW에는 HTML, URL, HTTP 라는 기술 사용

HTML

  • HTML : 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용해 작성하는 마크업 언어
    • 인터넷 서비스의 하나인 WWW를 통해 볼 수 있는 문서를 만들 때 사용하는 프로그래밍 언어
    •  
    • 제목이나 목록과 같은 문장 구조 지정, 이미지 파일 보여줄 때 태그 사용
    • HTML로 작성된 웹 페이지는 웹 브라우저로 볼 수 있음
  • 하이퍼 텍스트 작성하기 위해 개발
    • 하이퍼 텍스트 : 문자와 이미지를 표시하거나 하이퍼 링크 사용 가능
    • 하이퍼 링크 = 링크 : 웹사이트에서 아이콘이나 버튼 등에 있는 링크를 클릭하면 다른 사이트로 이동
  • html 파일 : 웹에서 문서를 작성할 때 사용되는 마크업 언어인 HTML로 작성된 파일

URL

  • URL (Uniform Resource Locator) : 인터넷에서 파일 위치 지정하기 위해 기술된 주소
  • 웹 사이트 주소 지정위해 사용

b. HTTP란?

b-1. HTTP

  • HTTP : 웹 서비스에서 클라이언트와 웹 서버 간에 정보를 주고받기 위해 사용되는 네트워크 프로토콜
  • 클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신
  • 클라이언트에서 HTTP요청을 보내고 서버에서 HTTP 응답 반환

b-2. 요청과 응답

  • GET : 클라이언트가 데이터 요청 시 요청 정보, 파일이름, 버전 등을 서버에 전송
    • 서버는 응답으로 요청을 정상적으로 처리했다는 OK 라는 정보 반환 및 index.html을 클라이언트에게 전송
  • 요청 : 데이터나 작업 처리를 요청하는 메시지
  • 응답 : 상대에게 보낸 데이터나 처리 요청에 대한 응답

b-3. 현재는 HTTP/2나 HTTP/1.1 버전 사용

HTTP/1.0 버전

  • 예전 HTTP/1.0 버전에서는 요청을 보낼 때마다 연결했다 끊는 작업 반복해 웹페이지가 느리게 보였음

HTTP/1.1 버전

  • HTTP/1.1 버전에서는 keepalive 기능 추가
  • keepalive : 연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교환을 모두 끝내면 연결을 끊는 구조
  • keepalive는 요청도 순서대로 처리하는 특징이 있어 첫번째 요청에 대해 첫번째 응답 하고 두번째 요청에 대해 두번째 응답 반환
  • 이전 요청 처리 시간이 길어지면 다음 요청에 대한 처리 늦어짐

HTTP/2 버전

  • 빠르게 콘텐츠 표시할 수 있는 프로토콜
  • 요청을 보낸 순서대로 응답을 반환하지 않아도 돼서 콘텐츠 빠르게 표시 가능

 

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

a. 도메인 이름이란?

a-1. DNS

  • DNS : 응용계층에서 이름 해석을 통해 도메인 이름을 IP 주소로 변환하는 역할
    • DNS : URL을 IP 주소로 변환하는 서비스(시스템)
    • DNS의 이름 해석 : IP 주소가 아닌 www.github.co.kr과 같은 주소를 사용해 접속하도록 돕는 것
  • DNS 서버 : DNS 서비스가 동작하는 컴퓨터(서버)
    • www.github.co.kr에  접속하면 DNS 서버가 이 웹사이트의 서버 IP 주소를 알려주는 것

a-2. 도메인 이름과 호스트 이름

  • 도메인 이름 : 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름
    • ex) github.co.kr
  • 호스트 이름 =서버이름
    • 도메인 이름 앞의 www

a-3. DNS 서버는 전세계에 흩어져있고 모두 계층적으로 연결

  • 처음에는 웹사이트의 IP 주소를 모르기 때문에 먼저 DNS 서버에 요청해 IP 주소를 확인하고 웹 서버에 접속
  • 요청한 첫번째 DNS 서버가 도메인의 IP 주소를 모르는 경우에는 DNS서버 1이 DNS 서버 2에 요청

 

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

a. 메일의 송수신 구조

a-1. 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간에 통신할 때 사용되는 프로토콜은 2가지

  • SMTP : 메일 송신, 포트번호 25번
    • 메일 서버 간의 메일전송에도 SMTP 이용
  • POP3 : 메일 수신, 포트번호 110번

a-2. 송수신 구조

  • 컴퓨터 1의 사용자는 메일 서버1 사용
    • 메일 서비스를 제공하는 포털사이트나 회사의 메일 서버를 사용하는 경우가 많음
    • 포털사이트에 가입하거나 회사에서 메일 주소 받으면 메일 서버 사용
    • 메일 보낼때는 메일 서비스를 제공하는 포털 사이트나 회사의 메일 서버에 메일 보내는 것
    • 그 서버가 여기서는 메일 서버 1
  • 컴퓨터 1에서 사용하는 메일 프로그램에 메일 서비스를 제공하는 메일 서버의 호스트이름(서버 이름) 설정 시 메일 서버 1 로 메일 전송 가능

 

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

  • 컴퓨터 1의 메일 프로그램은 SMTP 사용해 메일 서버 1로 메일 전송
  • SMTP 사용해 메일 서버 1에서 메일 서버2로 메일 전송

 

 

c. POP3에 의한 메일 수신

c-1. 메일박스와 사용자 인증

  • 메일 서버 2는 POP3을 사용해 메일 서버 2의 메일 박스에서 메일 가져와 컴퓨터 2로 전송
    • 메일 박스 : 메일 서버에 있는 메일 보관 기능
  • 메일 서버 2에 컴퓨터 1의 메일이 도착하면 컴퓨터 2는 메일 서버2의 메일 박스에 있는 메일을 받아가야하지만 메일을 수신할 땐 사용자 이름과 비밀번호를 이용한 사용자 인증 필요
    • 사용자 인증 : 시스템에 접근하려는 사용자가 올바른 사용자인지 판별하는 것

c-2.  POP3에 의한 메일 수신 과정

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

 

c-3. ping 명령

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

 

 

 

참고자료

모두의 네트워크

https://m.blog.naver.com/devks0228/221823726489

https://m.blog.naver.com/devks0228/221823883481

728x90