애플리케이션 계층

정문·2022년 6월 13일
0

Network

목록 보기
11/12

애플리케이션 계층

TCP/IP 모델에서 최상위 계층으로 사용자와 가장 가까운 소프트웨어
여러 프로토콜 개체들의 서비스에 대한 사용자 인터페이스 제공
HTTP, DNS, SMTP, SSH, BGP, DHCP 등이 이 범주에 속함

DNS(Domain Name Service)

호스트(도메인) 이름을 IP주소로 변환 - Port 53
웹사이트 접속 or 이메일 전송 시 *.google.com 등의 도메인 이름으로 접속

계층적 구조

  • Root DNS는 전세계적으로 13개 정도 있다고 함

쿼리 과정

  • Recusive Query : Local DNS 서버가 재귀적으로 여러 서버에게 질의하여 응답을 받음
  • Iterative Query : Local DNS 서버가 반복적으로 질의

Resource Records

DNS 레코드, DNS 서버가 가지고 있는 IP 매핑 정보 테이블
4 tuple: {Name, Value, Type, TTL}

  • Type

    A : 호스트, IP
    NS : 네임서버
    CNAME : 별칭
    MX : 메일서버

DNS 메시지

쿼리와 응답으로 구분

  1. Query : 2개, Header + Question
  2. Response : 5개, Header + Question + Answer + Authority + Additional
  • Identifier : 쿼리와 응답 구분
  • Flag : DNS 쿼리의 속성
  • Question : 질의
  • Answers : 응답 Resource Records
  • Authorities : 책임 Resource Records
  • Additional : 추가 Resource Records

Hosts.txt

호스트 이름과 IP 주소가 맵핑되어 저장된 파일
Local DNS로 쿼리 전에 우선 참조하는 파일

DNS 캐시 테이블

기존에 응답 받은 DNS 정보를 일정시간(TTL) 저장하고 동일한 질의 시 응답

HTTP

WWW상에서 정보를 공유하는 프로토콜 - Port 80

  • URL(Uniform Resource Locator) : 웹 페이지를 찾기 위한 주소
  • HTML(HyperText Markup Language) : 웹 페이지 언어

HTTP Request

Client가 Server에게 특정 Method를 사용하여 요청

  • Head(+Start Line), Body로 구성

  • Start Line

    HTTP Method / Request target / HTTP version

  • HTTP Method : 요청의 목적

    GET : 리소스 요청 / POST : 내용 전송 / PUT : 내용 갱신
    HEAD : 리소스에 대한 정보만 요청 / DELETE : 리소스 제거

  • Request target : 리소스 경로

  • HTTP version : HTTP/1.1 or HTTP/2

  • Accept : 클라이언트가 허용 가능한 파일 형식
  • User-Agent : 클라이언트의 OS, 브라우저 정보
  • Host : 서버의 도메인 네임

HTTP Response

Client 요청에 따른 Server의 응답

  • Head + Body
  • Version / Status / Status Message
  • Version : HTTP 버전, Status : 상태, Status Message : 상태 메시지
  • Date, Content-location, etag : 캐시 정보 업데이트
  • Last-modified : 요청한 데이터의 최종 수정일
  • Content-Length : 요청한 데이터 길이

Status Code

  • 2** Success - 200 OK
  • 3** Redirection - 307 Temporary Redirect
  • 4** Client Error - 400 Bad Request, 401 Unauthorized, 404 Not Found
  • 5** Server Error - 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

HTTP 속성

Stateless

  • HTTP는 통신이 끝나면 상태 정보를 유지하지 않는다
  • 서버는 HTTP 요청에 대한 응답을 보내고 접속을 끊어 커넥션 리소스 비용을 줄인다
  • 단순 페이지 or 문서 정보 열람은 가능하지만 클라이언트가 새로운 페이지를 접속 할 때마다 서버는 신원을 알 수 없음
  • 해결책 = Cookie & Session

클라이언트 웹 브라우저 로컬에 저장되는 키와 값이 들어있는 파일
이름, 값, 도메인, 만료일, 경로 - 일정시간 정보 저장 -> 로그인, 장바구니 등

  • Session : 서버는 일정시간 같은 웹브라우저의 요청이 들어오면 하나의 상태로 유지
  • 서버는 클라이언트에 대한 세션ID 발급 및 보유 -> 쿠키로 전달 -> 동일 세션ID로 접속 -> 정보확인
  • Cookie는 사용자 로컬에 정보가 저장 - 유출 or 조작 가능
  • Session은 서버에 정보를 저장(안전) - 인증에 세션을 사용
  • 세션 하이재킹의 위험이 있음 - HTTPS(안전)

SSL/TLS

SSL(Secure Socket Layer)/TLS(Transport Layer Security)
TCP/IP 네트워크 통신간 보안을 제공하는 프로토콜

기능

  • 인증 - Client to Server 통신 간 상대방에 대한 인증 - RSA, DSS
  • 무결성 - 메시지 인증 코드로 제공 HMAC - MD5, SHA-2
  • 기밀성 - 데이터 암호 - 3DES, RC4

프로토콜 구성

  • 상위

    HandShake : 키교환 방식, 암호화 방식, HMAC 방식, 압축 방식 등을 협상
    Change Cipher Spec : 협상 정보가 적용됨을 알림
    Alert : 협상 과정에서 제시한 암호화 방식을 지원 못하는 경우 알림

  • 하위

    Record : 데이터 교환, 메시지를 전송

TLS Stack

TLS 계층은 상위 3개 프로토콜, 하위 Record 프로토콜로 구분
상위 계층에서 협상 후 Record 프로토콜에서 Application 데이터를 분할, 압축, 암호화해서 전달

메일 서비스

  • SMTP(Simple Mail Transfer Protocol) : 전자 메일 전송을 위한 표준 프로토콜
  • POP3(Post Office Protocol Version3) : 수신 서버의 메일 박스에서 메일을 가져오고 삭제하는 프로토콜
  • IMAP4(Internet Message Access Protocol4) : 메일서버로 접속하여 메일을 읽거나 삭제하는 프로토콜

동작 과정

구성

메일 서버, 메일 클라이언트

  • 메일 서버 : MTA(Mail Transfer Agent) : 메일 전송
  • 메일 클라이언트 : MUA(Mail User Agent) : 메일 송수신 프로그램
  • MDA(Mail Delivery Agent) : MTA가 수신한 메일을 수신자 우편함에 기록
  • MRA(Mail Retrieval Agent) : 원격 서버의 우편함에서 사용자에게 메일을 가져오는 프로그램

A 메일 서버에서 B 메일 서버로 메일 전송

  • A : MUA에서 SMTP를 메일 송신 - MTA - MDA(큐에 저장하고 순서대로 전송)
  • B : MTA에서 메일 수신 - MDA - 지정된 메일박스로 전달 - MRA(POP3 or IMAP4) - MUA
profile
공부 정리 블로그

0개의 댓글