애플리케이션 계층(Layer 5)
그림으로 쉽게 배우는 네트워크 섹션 4 애플리케이션 계층에 대한 정리글
정보
해당 포스트는 인프런 - 그림으로 쉽게 배우는 네트워크(감자)의 섹션 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 서버
가 호스트의 요청을 승인하는 메시지를 보내는 것
DHCP Discovery
로 IP 주소 할당 받음DHCP Offer
로 IP 주소 제안 받음DHCP Request
로 IP 주소 수락 받음DHCP Ack
로 승인 받음
DNS
정보
Domain Name System
: 도메인 이름과IP 주소
를 매핑하는 시스템 ( TCP 53번 사용 )
ARPA
에서 hosts file
이란 데이터베이스를 만들고 IP 주소
와 호스트명
을 맵핑함
하지만 사용자가 늘어남에 의해 관리가 어려워짐
→ DNS
등장
호스트명과 도메인명
- 호스트명: 하나의 호스트 IP를 나타내는 이름
- 도메인명: 호스트들의 그룹을 나타내는 이름
네임서버
Telnet과 SSH
정보
Telnet
이나SSH
를 사용하면 네트워크를 이용해서 다른 장비에 접근할 수 있음
Telnet
정보
Telnet
은 네트워크를 통해 다른 컴퓨터에 접속하는 데 사용되는 프로토콜 ( TCP 23번 사용 )
- 암호화가 되지 않은 프로토콜이기 때문에 보안에 취약함
SSH
정보
Secure Shell
은 네트워크를 통해 다른 컴퓨터에 접속하는 데 사용되는 프로토콜 ( TCP 22번 사용 )
Private Key
: 복호화에 사용하는 키Public Key
: 암호화에 사용하는 키
- 원격 컴퓨터에
Public Key
를 전송 - 내 컴퓨터에서 원격 컴퓨터로 접근
- 원격 컴퓨터에서
Public Key
를 이용해서 랜덤한 문자열을 암호화해서 내 컴퓨터에 전송 - 내 컴퓨터에서
Private Key
를 이용해서 랜덤한 문자열을 복호화 - 복호화된 랜덤한 문자열을 원격 컴퓨터에 전달
- 원격 컴퓨터에서 랜덤한 문자열 확인
- 접속 승인
유용한 팁
Terminal
은 그냥SSH
를 실행하는 도구 (Terminal
과SSH
는 다르다 )
FTP
정보
File Transfer Protocol
: 파일 업로드 및 다운로드를 위한 프로토콜
인증 FTP Server
: 사용자명과 패스워드를 알아야 접근 가능한 서버익명 FTP Server
: 누구나 접근 가능한 서버
유용한 팁파일 전송을 위해 반드시 사용해야하는것은 아니지만 대량의 파일을 더 효율적으로 송·수신할 수 있는 프로토콜
SMTP, POP, IMAP
기존 이메일 전송 방식은 송신자가 수신자에서 이메일을 보내면 수신자의 HDD에 이메일 저장됨 ( 단, 컴퓨터가 꺼져있다면 받을 수 없음 )
SMTP와 POP
정보
Simple Mail Transfer Protocol
: 이메일을 보내기 위한 프로토콜 ( TCP 25번 사용 )
Post Office Protocol
: 이메일을 받기 위한 프로토콜 ( TCP 110번 사용 )
- 기존 방식의 단점을 극복하기 위해
메일 서버
등장SMTP
를 이용해서메일 서버
로 메일 전송POP
를 이용해서메일 서버
에서 메일 받기
IMAP
정보
Internet Message Access Protocol
: 이메일을 읽기 위한 프로토콜 ( TCP 143번 사용 )
- 여러 기기를 통해 이메일을 관리하는 경우 불편함을 극복하기 위해
IMAP
등장- 이메일을 읽었다고 즉시 삭제하지 않고
메일 서버
에 보관하고 있음 메일 서버
에 보관하고 있는 이메일을 다른 기기에서 읽을 수 있음
- 이메일을 읽었다고 즉시 삭제하지 않고
HTTP
정보
Hyper Text Transfer Protocol
: 웹 페이지를 전송하기 위한 프로토콜 ( TCP 80번 사용 )
HTTP v1.0
1회 송·수신 후 연결 끊어짐
HTTP v1.1
더이상 송·수신할 데이터가 없을때까지 연결 유지
HTTP v2.0
다중 전송을 지원해 더 빠른 전송이 가능함
HTTP v3.0
TCP
가 아닌 UDP
를 이용해 더 빠른 전송 가능 ( 현재 상용화되지 않음 )
( 3-way-handshake
과정 생략 )
요청 메서드
GET
: 웹 서버에 리소스를 요청하기 위해 사용POST
: 웹 서버에 리소스를 전송하기 위해 사용PUT
: 웹 서버에 리소스를 전체 업데이트하기 위해 사용PATCH
: 웹 서버에 리소스의 일부를 업데이트하기 위해 사용DELETE
: 웹 서버에 리소스를 삭제하기 위해 사용
응답 코드
- 100번대: 요청을 받았으며 프로세스를 계속 진행함
- 200번대: 요청이 성공적으로 처리됨
- 300번대: 요청한 리소스를 다른 곳으로 리다이렉트함
- 400번대: 요청한 리소스를 찾을 수 없음
- 500번대: 서버 오류로 인해 요청을 수행할 수 없음
API
정보
Application Programming Interface
: 두 애플리케이션이 상호작용을 위해 서로 통신하는 방법
Proxy 서버
정보
Proxy Server
: 클라이언트와 서버 사이에 위치하여 클라이언트의 요청을 대신하여 서버에 요청을 보내고, 서버의 응답을 대신하여 클라이언트에 전달하는 서버
- 캐시 서버로 사용
요청 IP
를 숨기는 용도로 사용