상세 컨텐츠

본문 제목

[리팩토링_6주차] 계층별 프로토콜(1)

IT/리팩토링

by 인삼밭 고구마 2023. 3. 3. 09:30

본문

프로토콜이란?

"데이터 통신 규약"으로

각각의 프로그램, DB, 파일 서비스 등을 가지고 있는

컴퓨터 네트워크데이터를 주고 받기 위해 지켜야 하는 약속을 공식화 한 것

 

 

프로토콜의 구성요소

형식(syntax)

데이터를 어떻게 구성할 것인가?

어떻게 해석할 것인가?

의미(semeantic)

데이터를 어떻게 제어할 것인가?

오류는 어떻게 처리할 것인가?

순서(timing)

통신하는 속도와 속도의 조절,

데이터 전송의 순서 관리

 

 

계층별 프로토콜

7계층 응용 계층  DNS / TELNET / SSH / SMTP / POP3 / IMAP / FTP / TFTP / HTTP / HTTPS
5계층 세션 계층  SSL / NETBIOS / RCP / WINSOCK
4계층 전송 계층  TCP / UDP
3계층 네트워크 계층  IP / ICMP / IGMP / ARP / RARP
2계층 데이터링크 계층  HDLC / PPP / ETHERNET /WiFi
1계층 물리계층 계층  RS-232 / X.25 / X.21

 

응용계층 프로토콜_원격접속 관련

  SSH (port : 22) TELNET (port : 23)
개념 Telnet 응용 프로그램으로 보안 버전의 프로그램 원격 접속 서비스, 인터넷 표준 프로토콜
정보 DES, RSA 등 고급 암호화를 통해 통신 byte 스트림 형식으로 통신
환경 Telnet 비하여 정보 노출 위험이 적음 정보 노출 위험이 큼
데이터의
크기
암호화 때문에 Telnet에 비하여
트래픽이 크게 늘어나지 않음
약간의 부하가 더 생길 수 있음
SSH에 비하여 트래픽이 크게 늘어날 수 있음

- SSH는 암호화된 문자를 이용하여 통신 TELNET은 평문으로 통신하기 때문에

과거에는 TELNET이 많이 사용되었으나 평문으로 통신하기때문에 보안에 취약한 문제가 있어

현재는 암호화된 문자를 이용하는 SSH로 대체됨

 

 

응용계층 프로토콜_메일 전송관련

 

메일의 송수진 과정은 위 그림과 같은데 말로 풀이하자면

1)  A라는 사용자는 평상시에 아웃룩(클라이언트)을 이용하여 메일을 보내고 클라이언트에만 메일을 저장      (POP3)하여 사용하고 있습니다.  

    A는 아웃룩(클라이언트를) 이용하여 b(b@메일서버 2)에게 메일을 보냅니다. (SMTP)

2) 메일 서버 1A가 보낸 메일을 받아 메일 서버 2로 전송합니다. (SMTP)

3) 메일 서버 2에서는 메일 서버 1에서 A가 보내온 메일을 수신합니다. (SMTP)

4) B라는 사용자도 아웃룩(클라이언트)을 이용하고 있고 서버와 클라이언트에 메일을 모두 저장(IMAP)하고 있습니다.

   클라이언트에서 설정에 따라 메일을 동기화하여 A(A@메일서버 1)가 보내온 메일을 확인할 수 있습니다.

 

메일전송시 사용했던 각 프로토콜의 특징은 아래의 표와 같습니다.

SMTP(Port 25) POP3(Port 110) IMAP(port 143)
Simple Mail Transfer Protocol Post Office Protocol 3 Internet Message Access Protocol
메일 송신 프로토콜 메일 수신 프로토콜 메일 수신 프로토콜
이메일 클라이언트
송신 시 사용
메일 서버의 사서함에서 클라이언트로
메일을 직접 다운로드
POP3에 없는 동기화 방식 사용
메일 서버 간 송신 시 사용 다운로드 시 메일 헤더와 첨부파일을
포함한 본문 전체를 다운로드
메일 수신 시 삭제되지 않고
여러 디바이스에서 메일 확인 가능
  다운로드가 된 메일은 메일 서버
사서함에서 삭제 하는 기능이 기본 설정
동기화 시 트래픽을 줄이기 위해
메일 헤더만 우선 다운로드
  수신 후 서버에서 삭제하지 않게 설정 가능 메일 접근 시 본문을 다운로드 하는
방식 사용

- 보안쪽에 좀 더 초점이 맞춰진다면 POP3

동기화나 메일서버의 부하의 초점이 맞춰진다면 IMAP를 사용하는것이 좋음

 

응용계층 프로토콜_파일전송관련

  FTP TFTP
약어 File Transfer Protocol
(파일 전송  프로토콜)
Trivial File Transfer Protocol
(간단한 파일 전송 프로토콜)
인증 클라이언트와 서버 간의 통신을 위해
인증이 필요
인증이 필요 없음
서비스 연결형 서비스인 TCP 서비스를 사용 비연결형 서비스인 UDP 서비스를 사용
소프트웨어 TFTP 소프트웨어보다 큼 FTP 소프트웨어보다 작고 디스크 없는
워크 스테이션의
읽기 전용 메모리에  맞음
연결 데이터 연결(TCP 포트 20)
제어 연결(TCP 포트 21)
파일 전송을 위한 단일 연결을 설정(UDP 포트 69)
명령 / 메시지 많은 명령어가 있음 5개의 메시지만 있음
복잡성 TFTP에 비해서 굉장히 복잡함 FTP에 비해서 덜 복잡함

 

- FTP의 보안의 취약성을 보안하기위해 현재는 SFTP를 이용하고 있으며,

 

SFTP (SSH File Transfer Protocol)란?
SSH로 파일 전송하는 프로토콜
SFTP 는 FTP를 사용하지 않음 (SSH 기반의 새로운 파일전송 프로토콜)
22번포트만 사용 (보안에 유리함)

 

응용계층 프로토콜_웹 관련

  HTTP HTTPS
약어 Hyper Text Transfer Protocol
(서버/클라이언트 모델을 따라 데이터를
주고 받기 위한 프로토콜
)
Hyper Text Transfer Protocol Secure
(HTTP에 데이터 암호화가 추가된 프로토콜)
포트번호 80 포트 443 포트
보안 암호화가 추가되지 않았기 때문에
보안에 취약함
안전하게 데이터를 주고 받을 수 있음
속도 속도가 굉장히 빠름 암호화/ 복호화 과정으로 인해
HTTP에 비하여 속도가 느림
비용 추가비용이 없음 인증서를 발급하고 유지하기 위해서
추가비용이 발생
데이터
처리 용도
단순한 정보 조회 용도 개인 정보와 같은 민감한 데이터 처리 용도

- HTTP의 HTTPS 큰차이는 암호화를 하였는가 하지 않았는가로

노출이 되어도 괜찮은 단순 정보 조회만을 처리한다면 HTTP사용하고

개인정보나 금융정보 같은 민감한 데이터를 처리해야 한다면 HTTPS를 사용하는 것이 좋다고 생각됩니다.

 

 

관련글 더보기