이번에도 SMTP, POP, IMAP 에 대한 설명에 대해 애매하게 적어놔서 진짜 답답했다.

아래에 새로 정리한 내용 첨부하니 참고 부탁드립니다..!

https://bdisappointed.tistory.com/78

 

[Network] SMTP, POP, IMAP 의 독립성이란?

POP 프로토콜은 메시지를 수신하면, 저장소에 메시지를 저장하고 서버에서는 삭제하는 프로토콜이고,IMAP은 원본은 서버에 유지하고 복사본을 저장소에 저장하는 프로토콜이다 → 즉 둘다 메시

bdisappointed.tistory.com

 


세션 계층

 
 
 
  • 응용 프로그램 계층 간의 통신을 제어하는 구조를 제공
  • 응용 프로그램 계층 사이의 접속을 설정, 유지, 종료하는 역할
  • 사용자와 전송 계층 (TCP/UDP) 간의 인터페이스 역할
  • 통신 장치 간의 설정을 유지하고 동기화
  • 데이터 단위는 메시지 (Message) 이고, 전송 계층으로 전송할 순서를 결정한다

세션 계층 기능 정리

  1. 동기화
  2. 세션 연결의 설정과 종료
  3. 대화 제어

표현 계층

 
 
  • 데이터 표현의 차이를 해결하기 위해 서로 다른 형식으로 변환하거나 공통 형식을 제공하는 계층
  • OSI 의 6번째 계층으로써, 송 수신측 사이에 표준화된 데이터 형식을 규정한다
  • 예를들어 전송하려는 이미지 타입이 PNG 인지 JPEG 인지 등 표현과 관련된 구분을 한다
  • 표현 계층의 헤더에는 전송되는 데이터 유형과 전송 길이 등의 정보가 포함

표현 계층 기능 정리

  1. 암호화
  2. 압축
  3. 코드 변환

응용 계층

 
 
 
  • 파일 전송, 데이터 베이스, 원격 접속, 메일 전송 등의 응용 서비스를 네트워크에 접속하는 역할을 하고 여러 가지 서비스 제공
  • 사용자의 정보를 하위 계층으로 전달하고, 하위 계층에서 전송한 데이터를 사용자에게 전달한다
  • OSI 모델의 최상위 계층으로 실제로 통신의 최종 목적에 해당
  • 응용 프로세스가 네트워크에 접근하는 수단을 제공하여 데이터를 서로 교환하는 창구 역할을 하고 사용자 인터페이스 제공

응용 계층 기능 정리

  1. 파일 접근 및 전송
  2. 메일 서비스

 

요약

응용 계층 : 사용자가 직접 사용하는 서비스 (웹, 이메일 등)
표현 계층 : 데이터를 변환, 압축, 암호화하여 이해 가능하도록 처리
세션 계층 : 연결을 설정하고 관리하며, 데이터를 올바르게 전송되도록 보장
 

응용 계층 프로토콜 및 서비스

응용 계층은 클라이언트의 요청을 전송하기 위해 서버가 이해할 수 있는 메시지로 변환하고 전송 계층을 전송해야한다.
이때, 클라이언트 측 애플리케이션이 서버 측 애플리케이션과 네트워크 통신을 하려면 응용 계층의 프로토콜을 사용해야한다.
 

프로토콜

응용 계층에서 제공하는 프로토콜은 아래와 같다
TCP : FTP, HTTP, TELNET, SMTP, POP3, IMAP
UDP : DHCP, SNMP

FTP (File Transfer Protocol, TCP 21 포트)

 
인터넷에서 파일을 전송하는 기본 프로토콜
 
클라이언트 포트 번호는 1023 보다 큰 임의의 번호 선택, 서버는 21번 포트
 
일반적인 FTP 와 익명 FTP로 나눌 수 있다
 
일반적인 FTP : 서버에서 부여한 식별자 ID와 패스워드가 필요
 
익명 FTP : 정보 공유라는 측면에서 ID와 패스워드 없이 누구나 접속 가능한 FTP ( ID는 익명이라는 anonymous 를, 패스워드는 이메일을 사용하면 서버 접속가능)
 

HTTP (HyperText Transfer Protocol, TCP 80 포트)

 

 
  • 클라이언트의 웹 브라우저가 웹 서비스를 요청하면 서버가 적절한 응답을 하여 클라이언트의 사용자에게 웹 페이지를 제공하는 서비스
  • 서버 - 클라이언트 사이에 하이퍼 텍스트 문서를 송수신하는 프로토콜
  • 데이터를 요청하는 메서드는 GET 메서드
  • HTTP 프로토콜은 데이터를 요청한 후에 데이터를 전송받고 나면 바로 소켓 연결을 해제한다

HTTP 동작 과정

  1. 클라이언트는 접속하고자하는 웹 사이트의 URL이나 IP 주소를 알고 있어야한다
  2. 클라이언트는 URL을 입력하고, TCP 포트 번호 80을 이용하여 접속하려는 서버에 연결 시도
  3. 클라이언트는 TCP 연결 소켓을 이용하여 URL 주소를 포함한 요청 메시지를 서버에 전송
  4. 서버는 요청 메시지에 응답하여 소켓을 통해 메시지를 전송하고 TCP 연결 설정을 해제

HTTP 1.0 vs 1.1

가장 중요한 차이점으로는 만약 두가지 요청 (웹페이지, 사진) 이 있을 때 1.0 에서는 웹페이지와 사진을 반환할 때 각각 다른 커넥션을 열어 처리한다.

1.1 에서는 이를 보완하여 웹페이지로 이미 열린 커넥션을 통해 사진 전송까지도 처리하여 연결적 부분에 대한 최적화가 되었다.

 
 

SMTP (Simple Mail Transfer Protocol, TCP 25포트)

 
  • 간단한 메일 전송 프로토콜로, 이메일을 보낼 때 주로 사용
  • 사용자가 이메일을 보낼 때는 SMTP를 사용하고, 메일 서버에서 이메일을 다운로드할 때는 POP3나 IMAP 을 사용한다.

POP3 (Post Office Protocol 3, TCP 110 포트)

 
  • 우체국 프로토콜 버전 3으로, 이메일을 수신할 때 사용.
  • 이메일을 수신하고 보관하기 위해 인터넷 서버에서 사용하는 프로토콜
  • SMTP 가 존재해야 POP3 프로토콜도 존재 가능 (SMTP 에 의존적, 상호 보완적 → 독립적으로 사용 불가)
  • 사용자나 이메일 수신 클라이언트는 주기적으로 이메일 수신함을 점검하여 이메일이 존재하면 클라이언트 쪽으로 다운로드하고 POP 서버에서는 삭제 → 즉 이후 사용자는 서버에서 이메일을 찾을 수 없고 저장된 저장소를 탐색해야함.
  • 서버에서 다운로드 후 삭제하는 불편함을 개선 한 프로토콜이 IMAP 프로토콜

IMAP (Internet Message Access Protocol, TCP 143 포트)

 
  • 이메일을 저장, 복사하는 프로토콜이다.
  • SMTP 에 의존하지 않아 독립적인 프로토콜이다.
  • 원본은 서버에 그대로 저장해두고, 복사본을 저장소에 저장하는 프로토콜

SNMP (Simple Network Managment Protocol , UDP 161 포트)

  • 다른 네트워크 장치를 원격에서 관리할 수 있는 간단한 방법을 제공하는 인터넷 표준 프로토콜
  • 네트워크 장치 (라우터, 스위치, 허브 등)을 원격으로 모니터링 하고 관리 하여 장치 상태를 점검하거나 문제 분석 및 수정
  • MIB (Managment Information Base, 일종의 네트워크 장치 정보 데이터베이스) 로 구성되어 있고, 네트워크 관리를 위해 하나 이상의 MIB를 모니터링 할 수 있다.
  • MIB의 중앙 관리 기능을 통해 관리자는 원격으로 네트워크를 진단하고 SNMP 로 네트워크 상태 분석 및 선택
  • 쉽게 네트워크 관리자로써, 모든 네트워크 장치들의 상태를 점검하고, 문제 있다면 원인을 찾아 해결할 수 있도록 도와주는 프로토콜

DHCP (Dynamic Host Conciguration Protocol, UDP 67,68 포트)

  • 네트워크에 연결된 장치(컴퓨터, 프린터)에 유일한 IP 주소를 자동으로 할당하고 관리하는 서비스
  • 자동으로 IP 주소가 유일하게 관리되어 관리자의 시간과 노력의 부담을 줄임
  • 67번 포트는 클라이언트 요청을 수신, 68번은 서버 응답 전송을 위한 포트

DHCP 동작 과정

  1. IP 요청 : 클라이언트 장치가 네트워크에 연결되면 DHCP 서버에 IP 주소 요청
  2. IP 임대 제공 : DHCP 서버가 사용가능한 IP 주소를 할당
  3. IP 확인 및 선택 : 클라이언트는 받은 IP 주소를 확인하고 사용 시작
  4. 확인 응답 : DHCP 서버는 최종적으로 클라이언트에 IP 주소 임대

Ping 서비스

  • Ping 은 TCP/IP 에서 널리 사용하는 서비스 중 하나로 모든 TCP/IP 설치에 포합되어 있다.
  • 네트워크에 있는 다른 시스템에서 TCP/IP 가 정상적으로 동작하는지 알려주는 프로그램
  • ICMP를 이용하여 일련의 에코 메시지를 만들어 지정한 컴퓨터 이름이나 IP 주소 시스템에 전송

Localhost 테스트 (ping 127.0.0.1)

  • 자신의 컴퓨터에서 TCP/IP 프로토콜이 정상적으로 실행되는지 확인

LAN 테스트 (ping 192.168.0.7)

  • 로컬 네트워크 (LAN) 내 IP 주소에 실행하여 네트워크 카드 (NIC) 나 LAN 연결 문제 의심 가능

기본 게이트웨이 테스트 (ping 192.168.0.88)

  • 게이트웨이 (라우터)로 Ping 요청을 보내 네트워크 연결 상태 확인
  • 응답이 없으면 네트워크 설정이나 라우터 문제 가능성

원격 호스트 테스트 (ping 58.142.193.69)

  • 인터넷상의 원격 서버로 Ping 요청
  • 응답이 없으면 원격 서버나 인터넷 연결 문제 가능성

즉 모든 테스트의 정상 응답은 문제가 없고 네트워크 상태가 양호 하다는 의미이고, 각 테스트 별로 응답이 없다면 내부 네트워크에 문제가 있거나 원격 서버의 문제 또는 인터넷이 연결 불안정한 상태임을 의심 가능