[Network] 계층 별 프로토콜(1)
인터넷 통신의 기반인 FTP, 이메일, ICMP 프로토콜의 원리를 알아봅니다. 파일 전송부터 네트워크 오류 진단까지, 각 기술이 통신 문제를 어떻게 해결하는지 핵심만 설명합니다.
개요
각 계층별 프로토콜의 특징 대해 조사하였습니다.

1. FTP (File Transfer Protocol)
FTP(File Transfer Protocol)는 네트워크 파일 전송을 위한 표준 프로토콜
- 클라이언트 서버 모델
 - TCP 21번 포트를 사용
 - 파일 업로드, 다운로드, 디렉토리 탐색 등 가능
 - 기가바이트 파일에 대해 효율적인 고성능 데이터 전송 가능
 
FTP의 특징
- 클라이언트 서버 구조
 - FTP 2개의 구조적인 연결을 수행
- 제어 채널 + 데이터 채널로 각각 21, 20번 포트 사용
- 안정성: 파일 전송 중에 문제가 생겨도 제어 연결은 살아있어서 다시 시도 가능
 - 효율성: 큰 파일 전송할 때 명령어 채널의 혼잡 방지
 - 유연성: 여러 데이터 전송을 동시 전송도 가능(조건부)
 
 
 - 제어 채널 + 데이터 채널로 각각 21, 20번 포트 사용
 
제어/데이터 채널의 특징
- 제어 채널 (Control Channel)
- 명령어만 송수신(LIST, GET, PUT, CD 등)
 - 지속적인 연결 상태 유지
 - 21번 포트 사용
 - 디렉토리 탐색, 파일 목록 조회, 사용자 인증 수행
- 사용자 인증 - 아이디 / 비밀번호 기반
 - USER, PASS - 사용자 이름/비밀번호
 - CWD- 디렉토리 변경
 - RETR- 서버에 파일 저장
 - DELE- 서버에 파일 삭제
 - …
 
 - 명령어는 ASCII 모드로 전송됨
 
 - 데이터 채널 (Data Channel)
- 실제 파일/디렉토리 데이터 전송
 - 20번 포트 사용
 - 데이터 전송할 때만 임시 연결 후 해제
- 대용량 파일 전송 시 사용
 
 
 
그 외 특징
- Active / Passive 모드에 따라 포트가 달라질 수 있으니 주의
- NAT, 방화벽 뒤로 접근할 수 없어 문제가 생김
 
 - Active: 서버 → 클라이언트 (서버가 먼저 연결)
- 데이터/제어 포트 고정 20, 21
 - 방화벽, NAT를 통한 통신시 보안, 연결 문제가 생김
 
 - Passive: 클라이언트 → 서버 (클라이언트가 먼저 연결)
- 제어 포트 고정 21, 데이터 포트 유동적
 
 - 응답 코드(참고)
- 긍정적 회신: 1XX 예비 회신, 2XX 완료 회신, 3XX 중간 회신
 - 부정적 회신: 4XX 일시적 완료 회신, 5XX 영구적 완료 회신
 
 
1.6 FTP 보안과 한계
FTP의 보안과 한계
- 보안 문제 특징
- 사용자명/비밀번호가 평문으로 전송
 - 파일 내용이 암호화없이 전송
 - 정보 유출 가능성 높음
 
 
SFTP의 등장
- SSH의 개념을 확장해서 만듬
 - SSH 기반 클라이언트가 모든 연결을 시작 → NAT/방화벽 문제 해결
 
대안적인 방안 HTTP/HTTPS
- 단일 연결과 압축, HTTP/2, HTTP/3 방식으로 전송 성능이 지속적으로 개선됨
 
2. 이메일 프로토콜
이메일은 수집, 전달, 저장을 하는 프로토콜이 분리됨
- MTA(Mail Transfer Agent) - 메일 서버 간 전송 담당 (우체국 → 우체국)
 - MUA(Mail User Agent) - 이메일 작성 도구(Gmail)
- MTA로 발신 or MDA로 수신시 중간에서 사용
 
 - MDA (Mail Delivery Agent) - 최종 메일함에 저장 (우체국 → 우편함)
- 받은 메일을 메일함에 저장
 - 사용자가 메일을 읽으러 올 때 전달
 
 
이메일을 전송, 수신 할 때 수행하는 프로토콜도 각각 다름
SMTP (Simple Mail Transfer Protocol)
- 이메일 전송 전문
- 유저의 이메일을 서버로 보낼 때 사용
 - 서버(MTA)끼리 통신시 사용
 
 - 25, 587, 465 포트 사용
- 25 → 암호화없음 - 서버간 통신
 - 465 → SMTP 암호화
 - 587 → 현대 SMTP(25번 포트 필터 가능)
 
 - SMTP 명령어
- HELO/EHLO - 서버 연결 및 인사
 - MAIL FROM - 발신자 지정
 - RCPT TO - 수신자 지정
 - DATA - 메일 본문
 - QUIT - 연결 종료
 
 
메일 수신 프로토콜은 2가지 존재
- 직접 다운로드받아 가져오거나 서버에 복사해두고 보기만 수행
- POP3 / IMAP
 
 
POP3 (Post Office Protocol v3)
- 직접 다운로드 받아 가져오는 방식
 - 110번 평문 통신 포트와 995의 암호화 통신 포트
 - 장점
- 메일을 로컬에 다운로드하여 인터넷 없이도 확인 가능
 - 네트워크 불안정한 상황에서 유리
 - 서버 부담을 감소시킬 수 있음
 
 - 단점
- 다운받고 삭제되어 한 기기에서만 확인 가능
 - 읽음/안읽음 상태, 폴더 구성 등이 동기화 어려움
 
 - 최신 클라이언트는 삭제 옵션 지원
- 다운로드 즉시 삭제
 - 일정 기간 보관과 서버에 복사본 저장
 
 
IMAP (Internet Message Access Protocol)
- 서버에 원본을 두고 복사본을 활용하는 방식 → 읽기 전용
 - 143번 평문 통신 포트와 993의 암호화 통신 포트
 - 장점
- 읽음/안읽음, 삭제, 이동 등의 상태가 실시간 동기화
 - 헤더, 본문 등 효율적인 데이터 전송 → 본문만 선별적 다운로드
 - 대용량 메일도 빠른 확인 가능
 - 여러 기기간 상태 동기화
 
 - 단점
- 오프라인에서는 캐싱된 부분만 확인 가능
 - 서버 용량 제한이 제한됨
 - 메일 열 때마다 다운로드 필요와 네트워크 성능 의존성
 
 
이메일 보안(참고)
- SSL/TLS를 통해 암호화하는 2가지 방식 존재
- Implicit SSL: 처음부터 암호화된 연결 (포트 465, 993, 995)
 - STARTTLS: 일반 연결 후 암호화로 업그레이드 (포트 587, 143)
 
 - SMTP AUTH 인증
- SMTP 서버에서 메일 발송 시 사용자 인증을 요구하는 메커니즘
 - 무단 릴레이(Spam Relay) 방지
- MUA → MTA로 전송시 무단 전송 방지
 - 메일 서버를 권한없이 악용하는 것 방지
 
 
 - SPF, DKIM, DMARC
- SPF (Sender Policy Framework)
- 특정 도메인에서 메일을 보낼 수 있는 IP 범위를 지정(DNS 기반)
 - 발신자 도메인 위조 방지
 
 - DKIM (DomainKeys Identified Mail)
- 발신 서버에서 메일에 서명을 추가하고 수신 서버에서 검증
 - 내용 변조 여부 확인
 
 - DMARC (Domain-based Message Authentication)
- SPF와 DKIM 기반 종합 인증 정책
 - 인증 실패 시 메일 처리 방법 지정 (거부, 격리, 허용)
 - 위조 메일 리포트 수신 가능
 
 
 - SPF (Sender Policy Framework)
 
3. ICMP (Internet Control Message Protocol)
ICMP는 인터넷에서 오류 보고와 진단을 담당하는 핵심 프로토콜
ICMP 기본 개념
- Best Effort(최선형 전송)만 제공하는 IP 프로토콜
- 패킷이 도달했는지 확인하지않음
 - 전송 중 오류를 확인할 수 없음
 - 네트워크 상태 정보를 제공하지 않음
 
 - 프로토콜을 보조하기 위한 ICMP 프로토콜
- 패킷 전송 실패시 오류 메시지 전송
 - 네트워크 경로 문제 진단
 - 네트워크 상태 모니터링
 
 
ICMP 특징
- 네트워크 계층(3계층)에 위치
- IP 패킷 내부에 캡슐화
 - 전송 계층 프로토콜 지원
- 3계층에서 발생한 문제를 4계층에게 알려주어 적절한 오류 처리 수행(메시지 전달)
 
 
 - 대표적인 ICMP 오류 보고 & 기능
- 오류 보고: Destination Unreachable, Time Exceeded
- Destination Unreachable
- 네트워크/호스트 부재, 방화벽 차단, 경로 없음 등
 - 목적지로 가는 길이 없을 때 발생한다.
 
 - Time Exceeded
- TTL(Time to Live)의 값이 0이되어 폐기됨
 - 패킷이 라우터를 지날때마다 1씩 감소. 무한 루프 방지를 위해 0이되면 Time Exceeded 처리를 함
 
 
 - Destination Unreachable
 
 - 오류 보고: Destination Unreachable, Time Exceeded
 - 진단 기능: Echo Request/Reply (ping), Traceroute(라우터 홉 추적)
 - 경로 최적화: Redirect 메시지로 더 나은 경로 안내
- Redirect
- 경로 최적화 힌트를 제공함
 - 현재 패킷은 정상적으로 전달하며 다음 패킷의 처리를 결정
 
 
 - Redirect
 - 네트워크 관리: 네트워크 상태 모니터링
 - 메시지를 다음과 같이 해석할 수 있음
- Network Unreachable → 인터넷 끊김
 - Host Unreachable → 서버 다운
 - Port Unreachable → 웹서버만 중단
 
 - 활용 명령어
- ping: ICMP Echo Request/Reply를 이용한 연결성 테스트
- 빠른 확인에 용이함
 
 - traceroute: TTL 값을 이용해 경로상의 모든 라우터를 단계별로 발견
- 어디서 막히는지 파악함 → 여기서 TTL은 시간이 아닌 홉수
 
 - mtr (My Traceroute): 실시간 traceroute + 통계
- 실시간 모니터링으로 손실률, 지연시간 표시
 - 상태 변화 관찰 및 시각적 보고서 제공
 
 
 - ping: ICMP Echo Request/Reply를 이용한 연결성 테스트
 
ICMP 보안 고려사항
ICMP는 네트워크 상태를 진단하기 위해 가장 좋은 도구이지만 동시에 악용될 수 있음
- 대량의 Ping 공격(Smurf Attack)
- 공격자의 브로드캐스트 패킷 1개 → 100대가 피해자에게 응답 요청 공격하는 방식
 
 - ICMP를 완전히 차단하긴 어려움
- Fragmentation Needed → 인터넷 동작에 필수(대용량 파일 처리)
 
 - 방화벽을 통해 제어 필요(예시)
- 외부 → 내부 Echo Request 차단
 - 내부 → 외부 Echo Request 허용
 - 내부 ↔ 내부 모든 ICMP 방식 허용
 
 
ICMP를 많이 활용했으나 보안상의 이유로 운영 환경에서는 Load Balacner와 모니터링 서비스를 구성하는 추세