Search

[정보통신망] TCP/IP 응용 계층

제목
Tag
작성일

1. 응용 계층

1.1 응용 계층 개요

TCP/IP의 최상위 계층으로, 웹 사이트 접속에 필요한 프로토콜과 프로그램(서비스)이 위치하는 계층
클라이언트의 요청을 서버가 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달
서비스를 요청하는 측 → 클라이언트, 서비스를 제공하는 측 → 서버

1.2 응용 계층 프로토콜의 종류

TCP/IP 계층 구조에서 OSI의 응용/표현/세션 계층에 해당
일반 사용자는 TCP/UDP에 직접 접속하지 않고 응용 계층을 통해 통신 서비스 사용
전송 프로토콜
응용 계층 프로토콜
TCP
FTP, HTTP, TELNET, SMTP, POP3, IMAP
UDP
DHCP, SNMP
주요 포트 번호
프로토콜
포트
POP3
110
FTP
21
HTTP
80
TELNET
23
SMTP
25
IMAP
143
DHCP
67, 68
SNMP
161

2. 웹서비스

2.1 HTTP 프로토콜

개요
1989년 유럽물리입자연구소의 팀 버너스리가 WWW(World Wide Web) 개발
웹은 TCP/IP로 동작하며 응용 계층의 HTTP 프로토콜 사용
HTML(Hyper Text Markup Language) 문서를 전송
HTTP 개념
HTTP(HyperText Transfer Protocol): 클라이언트가 사이트 정보를 요청하면 서버가 응답하는 방식
클라이언트는 HTML 파일 등 원하는 파일의 URL(Uniform Resource Locator) 등의 요청 정보를 전송
서버는 해당 정보를 받아 데이터를 반환
MIME(Multipurpose Internet Mail Extensions) 정보 활용
HTTP의 특징
무상태(Stateless) & 비연결성(Connectionless)
모든 요청·응답은 이전 것과 무관하게 독립적
해당 요청에 필요한 모든 정보를 처음부터 전송해야 함
단점 보완을 위해 쿠키, 세션 등 사용
불특정 다수를 대상으로 하는 서비스에 적합
HTTP 메시지 형식
구성 요소
요청 메시지
응답 메시지
첫 번째 줄
요청 라인 (메소드, URI, HTTP 버전)
상태 라인 (HTTP 버전, 응답 코드, 상태)
두 번째 줄
헤더
헤더
세 번째 줄
공백 라인 (필수)
공백 라인
네 번째 줄
메시지 보디 (요청 메시지)
메시지 보디 (응답 메시지)

2.2 HTTPS 프로토콜

개념
HTTPS(HyperText Transfer Protocol over Secure Socket Layer)
HTTP의 보안이 강화된 버전
SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화
기본 포트: 443
보안키 종류
구분
설명
대칭키
암호화·복호화 시 같은 키 사용. 클라이언트·서버 모두 공유키 보유
공개키
공개키와 개인키를 함께 사용. 암호화 시 공개키, 복호화 시 개인키
SSL 적용
인증서 필요 (서비스 정보 및 서버 측 공개키 포함)
CA(Certificate Authority): 인증서 발급 기업
브라우저는 CA 리스트 보유
CA 존재 확인 후 CA의 공개키를 이용해 인증서 복호화
HTTPS 동작 방식
데이터 전송 → 대칭키 사용
대칭키를 안전하게 전달 → 공개키 사용
단계
방향
설명
1. Client Hello
C → S
암호화 알고리즘 / SSL 버전 등 정보 전송
2. Server Hello
S → C
사용할 SSL 버전 및 암호화 알고리즘 등 정보 전송
3. Certificate
S → C
CA로부터 발급받은 인증서 전송
4. Server Key Exchange
S → C
키 교환에 필요한 정보 전송
5. Certificate Request
S → C
클라이언트 인증 요구
6. Server Hello Done
S → C
더 이상 메시지 없음 알림
7. Client Key Exchange, Change Cipher Spec
C → S
pre master secret key 생성하여 대칭키 사용
8. Change Cipher Spec
S → C
pre master secret key 복호화 후 master key로 승격, 보안 파라미터 적용
9. Data
양방향
세션(Session) 통신 시작

3. 파일 전송 서비스

3.1 파일 전송 서비스 개요

클라이언트와 서버 사이에 파일을 전송하기 위한 서비스
FTP(File Transfer Protocol): TCP/IP를 통해 파일을 전송하기 위한 프로토콜로, 가장 일반적인 파일 공유 방법
HTTP 프로토콜 확산(MIME으로 사진·음악·동영상 공유 가능, 클라우드·웹 하드 서비스)으로 FTP 사용은 줄어드는 추세

3.2 FTP 프로토콜

기본 동작
FTP 서버(21번 포트)와 FTP 클라이언트 간 접속
제어 채널: 21번 포트, 데이터 채널: 20번 포트
능동 모드 (Active Mode)
단계
내용
클라이언트가 FTP 서버 21번 포트 접속 후 사용할 두 번째 포트를 서버에 알림
서버가 ACK로 응답
서버가 클라이언트가 알려 준 두 번째 포트로 접속 시도
클라이언트가 ACK로 응답
서버가 클라이언트에 접속을 시도하는 구조
클라이언트 방화벽 등 환경에 따라 접속 불가 또는 에러 발생 가능
수동 모드 (Passive Mode)
단계
내용
클라이언트가 FTP 서버 21번 포트로 접속 (PASV 명령 전송)
서버가 클라이언트에게 사용할 두 번째 포트를 알림 (1024~65535 랜덤 비특권 포트)
클라이언트가 서버가 알려준 포트로 접속
서버가 ACK로 응답

3.3 SFTP 프로토콜

SFTP(SSH File Transfer Protocol): SSH(Secure Shell) 기반 파일 전송 프로토콜
신뢰할 수 있는 데이터 흐름을 통해 파일 접근·전송·관리 제공
파일을 암호화하여 전송 후 수신 측에서 복호화
하나의 연결만 필요 → 연결이 안정적
단점: SSH 키 유효성 검사 및 관리가 복잡, 소프트웨어 간 호환성 문제 발생 가능

4. 원격 접속 서비스

4.1 TELNET 프로토콜

클라이언트에서 사용 권한을 가진 서버 시스템에 접속하여 작업을 수행하는 서비스
원격지 컴퓨터를 이용하는 가상 단말 기능을 실현하기 위한 프로토콜
모든 플랫폼에서 사용 가능
포트: 23번
사용자 아이디/패스워드 필요

4.2 TELNET 동작 방식

NVT (Network Virtual Terminal)
터미널과 호스트의 일대일 대칭적 관계
터미널 에뮬레이션 프로토콜
클라이언트와 서버 시스템의 버전이 달라도 원활한 통신이 가능하도록 데이터를 변환해 주는 장치
TELNET 동작 순서
단계
내용
클라이언트가 서버 시스템에 TCP 연결 (23번 포트)
서버 시스템이 연결된 클라이언트에게 가상 터미널 제공
클라이언트가 실제 터미널처럼 서버 시스템에 명령어 실행
서버 시스템이 명령을 수행하여 결과를 클라이언트에게 전송

4.3 SSH 프로토콜

SSH(Secure SHell): 서버(원격지 호스트)에 접속하기 위해 사용되는 인터넷 프로토콜
기존 유닉스 시스템 셸의 보안 취약점을 보완 → 셸에 암호화 추가
강력한 인증 방법과 안전하지 못한 네트워크에서 안전하게 통신하는 기능 제공
rsh, rcp, rlogin, rexec, telnet, ftp 등의 서비스를 안전하게 사용하도록 제공

4.4 SSH 동작 방식

단계
내용
SSH 접속 요청
클라이언트 → 서버
키 교환 준비
서버·클라이언트 모두가 지원하는 암호 알고리즘 선택
Diffie-Hellman 키 교환
세션 암호화에 필요한 공유키 생성
서버 공개키 전송
서버의 키쌍은 /etc/ssh 경로에 위치 (공개키: *_key.pub, 개인키: *_key)
메시지를 서버 공개키로 암호화하여 전송
서버 공개키가 known_hosts에 없으면 사용자에게 등록 여부 확인
서버의 개인키로 복호화 후 원본 메시지 전달
메시지 검증
클라이언트의 공개키 전송
authorized_keys에 클라이언트 공개키 확인 (없으면 패스워드 입력)
메시지를 클라이언트 공개키로 암호화하여 전송
클라이언트가 자신의 개인키로 복호화 후 원본 메시지 전달
SSH 세션 시작
양방향 암호화 통신 개시

5. 메일 서비스

5.1 메일 서비스 개요

메일 주소를 이용하여 인터넷을 통해 이메일을 주고받을 수 있도록 서비스 제공
TCP/IP 이전: 대형컴퓨터(메인프레임)에서 사용자별 편지함 운영, 같은 메인프레임 내에서만 사용 가능
TCP/IP 도입 이후 네트워크를 통한 이메일 교환 가능

5.2 메일 관련 프로토콜

프로토콜
역할
포트
SMTP
메일 송신
25
POP3
메일 수신
110
IMAP
메일 수신 (POP3의 비동기성 보완)
143
메일 서버 동작 흐름
메일 송신자 ↓ SMTP 메일 서버 A (knou.ac.kr) ↓ SMTP (인터넷) 메일 서버 B (jj.ac.kr) ↓ POP3 / IMAP 메일 수신자
Plain Text
복사