[네트워크 관리사 2급] [자격증 준비] 8일차 응용 프로토콜
목표
OSI 7 계층 또는 TCP/IP 4 계층의 응용 계층(Application Layer)에 해당하는 프로토콜과 서비스들에 대해 정리하고 이해한다.
1. Telnet과 SSH(Secure Shell)
Telnet이란?
Telnet은 원격으로 서버에 로그인하여 작업을 할 때 많이 사용하는 프로그램이다.
구분 | 내용 |
개념 | 네트워크를 통해 원격 시스템에 접속하여 명령을 실행하는 프로토콜 |
포트 번호 | 23번 |
특징 | - 보안 취약(데이터 평문 전송, 암호화 없음) - 즉 스니핑(Sniffing)으로 패킷을 캡처하면 누구나 내용을 확인 가능 - 연결 시 사용자 ID와 패스워드 요구 - SSH 등장 이후 사용 감소 |
사용 사례 | - 라우터, 스위치 등 네트워크 장비의 원격 관리(보안상 SSH 권장) - 접속 명령 예시: telnet 192.168.1.10 |
SSH란?
SSH란 Telnet의 취약한 보안 요소를 강화된 원격 접속 프로토콜이다.
구분 | 내용 |
개념 | 보안이 강화된 원격 접속 프로토콜로 암호화된 통신을 제공 |
포트 번호 | 22번 |
특징 | - Telnet과 달리 SSH 키 기반 인증 및 암호화 지원 - 비밀번호 인증 또는 공개키 인증 방식 사용 |
사용 사례 | - 리눅스/유닉스 서버 원격 접속 및 관리 - 접속 명령 예시: ssh user@192.168.1.10 |
2. HTTP/HTTPS(Hypertext Transfer Protocol)
HTTP란?
우리가 사용하는 인터넷의 W3C 표준 프로토콜로, 웹 프라우저와 웹 서버 사이에 메시지를 송신하거나 수신하는 프로토콜이다.
HTTPS란?
보안이 강화된 HTTP로, SSL/TLS 암호화를 통해 암호화된 데이터를 전송하며, 기밀성, 무결성, 인증을 보장하고 디지털 인증서로 서버 인증 과정을 가진다.
구분 | 내용 | |
프로토콜 | HTTP | HTTPS |
개념 | 웹 브라우저와 웹 서버 간 데이터 교환 | 보안이 강화된 HTTP(SSL/TLS 암호화) |
포트 번호 | 80번 | 443번 |
특징 | - 비 보안, 평문 데이터 전송 - 데이터 변조 가능(무결성 X) - 인증 없음(서버 확인 불가) |
- 암호화된 데이터 전송, Man-in-the-Middle 공격 방지 - 데이터 무결성 보장 - 디지털 인증서로 서버 인증 |
사용 사례 | - HTTP는 일반 웹사이트(비로그인) - 요청 명령 예제: GET /index.html HTTP/1.1 Host: www.example.com |
- HTTPS는 로그인, 금융 거래, 개인 정보 전송 시 필수 - 요청 명령 예제: curl -k https://www.example.com |
* HTTP는 Header와 Body로 구분 되며 그 사이에는 개행문자(\r\n\r\n)로 구분된다.
HTTP Method
HTTP 요청 매서드는 클라이언트가 서버에 수행할 작업을 정의한다.
구분 | 내용 | 사용 예시 |
GET | 서버에서 데이터를 조회 | 웹페이지 요청 또는 데이터 조회 |
POST | 데이터를 서버에 전송하여 추가 | 로그인, 회원가입 |
PUT | 기존 데이터 수정(업데이트, 덮어쓰기) 또는 생성 | 사용자 정보 업데이트 |
DELETE | 데이터를 삭제 | 게시글 삭제 |
HEAD | GET과 유사하나 Body없이 Header만 요청 | 페이지 존재 여부 확인 |
OPTIONS | 서버가 지원하는 HTTP 메서드 조회 | CORS 요청 검사 |
PATCH | 일부 데이터 수정 | 프로필 일부 변경 |
*CORS(교차 출처 리소스 공유, Cross-Origin Resource Scharing)는 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다.
HTTP 상태 코드
HTTP 응답에는 상태 코드(Status Code)가 포함되어 있어, Method 요청의 결과를 알 수 있다.
구분 | 내용 | 대표 코드 |
1xx (정보응답) |
요청이 수락됐으며 처리 중임 | - 100 Continue (요청을 계속 진행) - 101 Switching Protocols (프로토콜 변경 요청 승인) - 103 Early Hints (사전 응답) |
2xx (성공) |
요청이 정상적으로 처리됨 | - 200 OK (정상 처리 완료) - 201 Created (새로운 리소스 생성됨, 즉 POST 요청 완료) - 202 Accepted (요청이 승인되었으나 처리중) - 204 No Content (응답 본문이 없음) |
3xx (리디렉션) |
클라이언트를 다른 위치로 안내 | - 301 Moved Permanently (영구 이동, 요청한 리소스가 새로운 URL로 이동) - 302 Found (임시 이동, 요청한 리소스가 임시적으로 다른 위치에 있음) - 303 See Other (다른 URL을 참조하라는 응답, GET 요청으로 리디렉션 수행) - 304 Not Modified (캐시 사용 권장, 클라이언트 캐시된 버전을 사용해야함) |
4xx (클라이언트 오류) |
요청이 잘못 됨 | - 400 Bad Request (잘못된 요청, 요청 구문 오류) - 401 Unauthorized (인증 필요, 로그인 필요) - 403 Forbidden (접근 금지, 요청 권한 없음) - 404 Not Found (리소스 없음, 요청 페이지 없음) - 405 Method Not Allowed (허용되지 않은 메서드) |
5xx (서버 오류) |
서버에서 요청을 처리할 수 없음 | - 500 Internal Server Error (내부 서버 오류) - 501 Not Implemented (지원되지 않는 메서드) - 502 Bad Gateway (게이트웨이 오류, 서버가 다른 서버로부터 잘못된 응답을 받음) - 503 Service Unavailable (서버가 과부하 상태이거나 유지보수 중으로 이용 불가) - 504 Gateway Timeout (게이트웨이 시간 초과, 즉 서버가 응답을 받지 못함) - 505 HTTP Version Not Supported (지원되지 않는 HTTP 버전) |
3. FTP(FIle Transfer Protocol)
FTP란?
서버에 파일을 올리거나 다운로드 하는 인터넷 표준 프로토콜로 내부적으로 TCP를 사용한다.
구분 | 내용 |
개념 | 서버와 클라이언트 간 파일 전송을 위한 프로토콜 |
포트 번호 | 21번(제어 채널), 20번(데이터 전송 채널) |
특징 | - 명령어 기반 파일 업로드/다운로드 지원 - Active Mode(서버가 클라이언트의 포트로 데이터 전송 연결) - Passive Mode(클라이언트가 서버의 포트로 데이터 전송 연결) - FTP 클라이언트의 데이터 포트는 FTP 클라이언트 자신이 결정 - 명령 채널과 데이터 전송 채널은 독립적으로 동작 |
사용 사례 | - 서버에서 대용량 파일 공유, 웹 호스팅 파일 업로드 시 사용 - 사용 명령어 예시 : ftp ftp.example.com |
종류 | - FTP: ID 및 PW 인증을 수행하고 TCP를 사용하여 사용자의 데이터를 송수신 - TFTP: 인증과정 없이 UDP 기반으로 데이터를 빠르게 송수신(Port 69 사용) - SFTP: 전송 구간에 암호화 기반을 사용하여 기밀성을 제공 |
4. DNS(Domain Name Server)
DNS란?
인터넷 네트워크상에서 컴퓨터의 이름을 IP 주소로 변환하거나 해석하는 데 사용되는 분산 네이밍 시스템이다.
구분 | 내용 |
개념 | 도메인 네임을 IP 주소로 변환하는 프로토콜 |
포트 번호 | 53번(UDP, 일부 TCP) |
특징 | - SOA(Start of Authority), A(IPv4), AAAA(IPv6), MX(메일), CNAME(Alias, 별칭), TXT 레코드 지원 |
DNS 해석 과정 | - DNS는 먼저 DNS Cache 테이블(클라이언트)에서 이름을 해석 - DNS Cache 테이블에 정보가 없으면 클라이언트의 hosts 파일로 이름을 해석 - hosts 파일에도 정보가 없으면 DNS 서버에서 이름 해석을 의뢰(이름→IP, 순환쿼리) - DNS 서버의 Cache 테이블에서 조회 후 정보 있을 시 IP 주소를 Response 메시지로 전달 - DNS 서버에도 없을 시 Top Level 도메인부터 Second Level로 이름 해석을 의뢰(반복쿼리) |
사용 사례 | - 웹사이트 접속 시 도메인 → IP 변환 - 명령어 예시: nslookup http://www.google.com |
DNS 구조
DNS의 구조는 아래와 같은 구조를 가진다.
- Root Domain(.): 모든 도메인의 근본이 되는 최상 Root level Domain
- Top Level Domain: .com, .org, .kr 등의 국가, 지역을 나타냄
- Second Level: 사용자가 도메인 명을 신청해서 등록할 수 있는 영역
DNS 레코드
DNS에는 아래와 같은 레코드들이 존재한다.
A (Address) |
- 단일 호스트 이름에 해당하는 IP 주소가 여러 개 있을 수 있으며 각의 동일한 IP 주소에 해당되는 여러 개의 호스트 이름이 있을 수 있음 - 이때 사용되는 레코드가 A(Address, 호스트 이름을 IPv4 주소로 매핑) |
AAAA (IPv6 Address) |
- 호스트 이름을 IPv6 주소로 매핑 |
PTR (Pointer) |
- 특수 이름이 도메인의 일부 다른 위치를 가리킬 수 있음 - 인터넷 주소의 PTR 레코드는 정확히 한 개만 있어야 함 - 역방향 조회(IP → 이름) 때 사용 |
NS (Name Server) |
- 도메인에는 해당 이름 서비스 레코드가 적어도 한 개 이상 있어야 하며 DNS 서버를 가리킴 |
MX (Mail Exchanger) |
- 도메인 이름으로 보낸 메일을 받도록 구성되는 호스트 목록을 지정 |
CNAME (Canonical Name) |
- 호스트의 다른 이름을 정의하는 데 사용 |
SOA (Start of Authority) |
- 도메인에 대한 권한을 갖는 서버를 표시함 - 도메인에서 가장 큰 권한을 부여 받은 호스트를 선언 |
Any(ALL) | - 위의 모든 레코드를 표시 |
5. SMTP와 IMAP, POP3
SMTP란?
RFC 821에 명시 되어있는 인터넷 전자 우편 표준 프로토콜이다.
구분 | 내용 |
개념 | 이메일을 서버로 전송하는 프로토콜 |
포트 번호 | 25번(기본), 587번(TLS), 456번(SSL) |
특징 | - 메일 클라이언트가 메일을 발송할 때 사용 - 메일 서버는 수신자의 이메일 주소를 분석하고 최단 경로를 찾아 근접한 메일 서버에게 편지를 전달 - 최종 수신자 측 메일 서버에 도착하기까지 연속적으로 전달하는 중계 작업을 수행 - 즉, 메일 서버 간 전달 가능 |
구성 요소 | - MTA(Mail Transfer Agent): 메일을 전송하는 서버 - MDA(Mail Delivery Agent): 수신 측에 고용된 우체부의 역할, MTA에게 받은 메일을 사용에게 전달 - MUA(Mail User Agent): 사용자들이 사용하는 클라이언트 애플리케이션 |
사용 사례 | - Gmail, Outlook, 네이버 메일 등에서 메일 발송 |
POP3란?
메일 서버에 접속하여 저장된 메일을 내려받는 MDA프로그램으로, 이메일 수신-다운로드 프로토콜이다.
구분 | 내용 |
개념 | 이메일을 다운로드하여 로컬 저장(서버에서 삭제) |
포트 번호 | 110번(기본), 995번(SSL) |
특징 | - 다운로드 후 서버에서 삭제됨 |
사용 사례 | - 메일 클라이언트(Outlook, Thunderbird 등) |
IMAP란?
POP와 달리 메일을 내려 받아도 메일 서버에 원본을 계속 저장하는 형식으로, 이메일 수신-서버저장의 프로토콜이다.
구분 | 내용 |
개념 | 이메일을 서버에서 관리하며 여러 기기에서 동기화 |
포트 번호 | 143번(기본), 993번(SSL) |
특징 | - 여러 기기에서 동기화 가능 |
사용 사례 | - Gmail, Outlook에서 서버에 메일 저장 |
6. SNMP(Simple Network Management Protocol)
SNMP란?
운영되는 네트워크의 안정성, 효율성을 높이기 위해서 구성, 장애, 통계, 상태 정보를 실시간으로 수집 및 분석하는 네트워크 관리 시스템이다.
구분 | 내용 |
개념 | 네트워크 장비(라우터, 스위치, 서버 등)를 모니터링 및 관리 |
포트 번호 | 161번(데이터 수집), 162번(트랩 메시지) |
특징 | - MIB(Management Information Base) 기반 장비 정보 관리 |
사용 사례 | - 네트워크 장비 상태 모니터링 (Zabbix, Nagios 등) |
주요 명령어 | - Get: 장비의 상태 및 기동 시간 등의 관리 정보를 조회 - Get-Next: 정보가 계층적 구조를 가지므로 관리자가 장비에 조회를 해서 해당 트리보다 하위 층 정보 읽기 - Set: 장비 MIB를 조작하여 장비 제어, 관리자는 요청을 보내 초기화 혹은 장비 재구성 - Trap: 관리자에게 보고하는 Event, Agent는 경고, 고장 통지 등 미리 설정된 유형의 보고서를 작성 |
7. DHCP
DHCP란?
IP 주소와 서브넷 마스크, 게이트 웨이 주소 등을 고정하기 않고 네트워크에 처음 연결될 때 동적으로 할당하는 프로토콜이다.
구분 | 내용 |
개념 | IP 주소를 자동으로 할당하는 프로토콜 |
포트 번호 | 67번(서버), 68번(클라이언트) |
특징 | - 정적 IP 할당 없이 동적 IP주소 제공 (DHCP 서버 있을 시 IPv4에서도 디바이스가 Plug & Play 가능) |
사용 사례 | - 가정 및 기업 네트워크에서 자동 IP 할당 |
참고
이기적 네트워크 관리사 1/2급 필기 준비 서적, 정보통신기술용어해석, 위키백과, 한국인터넷정보센터 참고.
응용 계층의 각 프로토콜은 현재 사용하는 다양한 서비스의 기반이다.