애플리케이션 계층(Layer 5)

그림으로 쉽게 배우는 네트워크 섹션 4 애플리케이션 계층에 대한 정리글

8
단어: 687
게시글 썸네일
정보

해당 포스트는 인프런 - 그림으로 쉽게 배우는 네트워크(감자)의 섹션 4 - 애플리케이션 계층(Layer 5)에 대한 정리 포스트입니다.

DHCP

정보

Dynamic Host Configuration Protocol: 호스트 IP 주소를 자동으로 할당하기 위한 프로토콜 ( TCP 67번, 68번 사용 )

  • DHCP Discovery: 호스트가 DHCP 서버IP 주소를 요청하기 위해 브로드캐스트 메시지를 보내는 것
  • DHCP Offer: DHCP 서버가 호스트에게 IP 주소를 제안하는 메시지를 보내는 것
  • DHCP Request: 호스트가 DHCP 서버에게 제안한 IP 주소를 수락하는 메시지를 보내는 것
  • DHCP Ack: DHCP 서버가 호스트의 요청을 승인하는 메시지를 보내는 것
  1. DHCP Discovery로 IP 주소 할당 받음
  2. DHCP Offer로 IP 주소 제안 받음
  3. DHCP Request로 IP 주소 수락 받음
  4. DHCP Ack로 승인 받음

DHCP

DNS

정보

Domain Name System: 도메인 이름과 IP 주소를 매핑하는 시스템 ( TCP 53번 사용 )

ARPA에서 hosts file이란 데이터베이스를 만들고 IP 주소호스트명을 맵핑함

host-file

하지만 사용자가 늘어남에 의해 관리가 어려워짐 → DNS 등장

호스트명과 도메인명

  • 호스트명: 하나의 호스트 IP를 나타내는 이름
  • 도메인명: 호스트들의 그룹을 나타내는 이름

hostname-and-domainname
domainname

네임서버

name-server

Telnet과 SSH

정보

Telnet이나 SSH를 사용하면 네트워크를 이용해서 다른 장비에 접근할 수 있음

Telnet

정보

Telnet은 네트워크를 통해 다른 컴퓨터에 접속하는 데 사용되는 프로토콜 ( TCP 23번 사용 )

  • 암호화가 되지 않은 프로토콜이기 때문에 보안에 취약함

Telnet

SSH

정보

Secure Shell은 네트워크를 통해 다른 컴퓨터에 접속하는 데 사용되는 프로토콜 ( TCP 22번 사용 )

  • Private Key: 복호화에 사용하는 키
  • Public Key: 암호화에 사용하는 키
  1. 원격 컴퓨터에 Public Key를 전송
  2. 내 컴퓨터에서 원격 컴퓨터로 접근
  3. 원격 컴퓨터에서 Public Key를 이용해서 랜덤한 문자열을 암호화해서 내 컴퓨터에 전송
  4. 내 컴퓨터에서 Private Key를 이용해서 랜덤한 문자열을 복호화
  5. 복호화된 랜덤한 문자열을 원격 컴퓨터에 전달
  6. 원격 컴퓨터에서 랜덤한 문자열 확인
  7. 접속 승인

SSH

유용한 팁

Terminal은 그냥 SSH를 실행하는 도구 ( TerminalSSH는 다르다 )

FTP

정보

File Transfer Protocol: 파일 업로드 및 다운로드를 위한 프로토콜

  • 인증 FTP Server: 사용자명과 패스워드를 알아야 접근 가능한 서버
  • 익명 FTP Server: 누구나 접근 가능한 서버

FTP

유용한 팁

파일 전송을 위해 반드시 사용해야하는것은 아니지만 대량의 파일을 더 효율적으로 송·수신할 수 있는 프로토콜

SMTP, POP, IMAP

기존 이메일 전송 방식은 송신자가 수신자에서 이메일을 보내면 수신자의 HDD에 이메일 저장됨 ( 단, 컴퓨터가 꺼져있다면 받을 수 없음 )

SMTP와 POP

정보

Simple Mail Transfer Protocol: 이메일을 보내기 위한 프로토콜 ( TCP 25번 사용 )
Post Office Protocol: 이메일을 받기 위한 프로토콜 ( TCP 110번 사용 )

  • 기존 방식의 단점을 극복하기 위해 메일 서버 등장
    1. SMTP를 이용해서 메일 서버로 메일 전송
    2. POP를 이용해서 메일 서버에서 메일 받기

SMTP-and-POP

IMAP

정보

Internet Message Access Protocol: 이메일을 읽기 위한 프로토콜 ( TCP 143번 사용 )

  • 여러 기기를 통해 이메일을 관리하는 경우 불편함을 극복하기 위해 IMAP 등장
    1. 이메일을 읽었다고 즉시 삭제하지 않고 메일 서버에 보관하고 있음
    2. 메일 서버에 보관하고 있는 이메일을 다른 기기에서 읽을 수 있음

IMAP

HTTP

정보

Hyper Text Transfer Protocol: 웹 페이지를 전송하기 위한 프로토콜 ( TCP 80번 사용 )

HTTP v1.0

1회 송·수신 후 연결 끊어짐

HTTP-v1.0

HTTP v1.1

더이상 송·수신할 데이터가 없을때까지 연결 유지

HTTP-v1.1

HTTP v2.0

다중 전송을 지원해 더 빠른 전송이 가능함

HTTP-v2.0

HTTP v3.0

TCP가 아닌 UDP를 이용해 더 빠른 전송 가능 ( 현재 상용화되지 않음 )
( 3-way-handshake 과정 생략 )

요청 메서드

  1. GET: 웹 서버에 리소스를 요청하기 위해 사용
  2. POST: 웹 서버에 리소스를 전송하기 위해 사용
  3. PUT: 웹 서버에 리소스를 전체 업데이트하기 위해 사용
  4. PATCH: 웹 서버에 리소스의 일부를 업데이트하기 위해 사용
  5. DELETE: 웹 서버에 리소스를 삭제하기 위해 사용

응답 코드

  1. 100번대: 요청을 받았으며 프로세스를 계속 진행함
  2. 200번대: 요청이 성공적으로 처리됨
  3. 300번대: 요청한 리소스를 다른 곳으로 리다이렉트함
  4. 400번대: 요청한 리소스를 찾을 수 없음
  5. 500번대: 서버 오류로 인해 요청을 수행할 수 없음

API

정보

Application Programming Interface: 두 애플리케이션이 상호작용을 위해 서로 통신하는 방법

Proxy 서버

정보

Proxy Server: 클라이언트와 서버 사이에 위치하여 클라이언트의 요청을 대신하여 서버에 요청을 보내고, 서버의 응답을 대신하여 클라이언트에 전달하는 서버

  1. 캐시 서버로 사용
  2. 요청 IP를 숨기는 용도로 사용

Proxy-Server

연관된 포스트