애플리케이션 계층(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]

DHCP

DNS

정보

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

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

[host-file]

host-file

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

호스트명과 도메인명

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

[hostname-and-domainname]

hostname-and-domainname

[domainname]

domainname

네임서버

[name-server]

name-server

Telnet과 SSH

정보

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

Telnet

정보

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

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

[Telnet]

Telnet

SSH

정보

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

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

[SSH]

SSH

유용한 팁

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

FTP

정보

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

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

[FTP]

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]

SMTP-and-POP

IMAP

정보

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

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

[IMAP]

IMAP

HTTP

정보

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

HTTP v1.0

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

[HTTP-v1.0]

HTTP-v1.0

HTTP v1.1

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

[HTTP-v1.1]

HTTP-v1.1

HTTP v2.0

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

[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]

Proxy-Server

연관된 포스트