애플리케이션 계층(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로 승인 받음
[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: 암호화에 사용하는 키
- 원격 컴퓨터에
Public Key를 전송 - 내 컴퓨터에서 원격 컴퓨터로 접근
- 원격 컴퓨터에서
Public Key를 이용해서 랜덤한 문자열을 암호화해서 내 컴퓨터에 전송 - 내 컴퓨터에서
Private Key를 이용해서 랜덤한 문자열을 복호화 - 복호화된 랜덤한 문자열을 원격 컴퓨터에 전달
- 원격 컴퓨터에서 랜덤한 문자열 확인
- 접속 승인
[SSH]

유용한 팁
Terminal은 그냥SSH를 실행하는 도구 (Terminal과SSH는 다르다 )
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번 사용 )
- 기존 방식의 단점을 극복하기 위해
메일 서버등장SMTP를 이용해서메일 서버로 메일 전송POP를 이용해서메일 서버에서 메일 받기
[SMTP-and-POP]

IMAP
정보
Internet Message Access Protocol: 이메일을 읽기 위한 프로토콜 ( TCP 143번 사용 )
- 여러 기기를 통해 이메일을 관리하는 경우 불편함을 극복하기 위해
IMAP등장- 이메일을 읽었다고 즉시 삭제하지 않고
메일 서버에 보관하고 있음 메일 서버에 보관하고 있는 이메일을 다른 기기에서 읽을 수 있음
- 이메일을 읽었다고 즉시 삭제하지 않고
[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 과정 생략 )
요청 메서드
GET: 웹 서버에 리소스를 요청하기 위해 사용POST: 웹 서버에 리소스를 전송하기 위해 사용PUT: 웹 서버에 리소스를 전체 업데이트하기 위해 사용PATCH: 웹 서버에 리소스의 일부를 업데이트하기 위해 사용DELETE: 웹 서버에 리소스를 삭제하기 위해 사용
응답 코드
- 100번대: 요청을 받았으며 프로세스를 계속 진행함
- 200번대: 요청이 성공적으로 처리됨
- 300번대: 요청한 리소스를 다른 곳으로 리다이렉트함
- 400번대: 요청한 리소스를 찾을 수 없음
- 500번대: 서버 오류로 인해 요청을 수행할 수 없음
API
정보
Application Programming Interface: 두 애플리케이션이 상호작용을 위해 서로 통신하는 방법
Proxy 서버
정보
Proxy Server: 클라이언트와 서버 사이에 위치하여 클라이언트의 요청을 대신하여 서버에 요청을 보내고, 서버의 응답을 대신하여 클라이언트에 전달하는 서버
- 캐시 서버로 사용
요청 IP를 숨기는 용도로 사용
[Proxy-Server]
