DAY33(1) - 통신 모델, 프로토콜

은나현·2023년 3월 14일
0

📌 1. CS & Web

  • CSClient - Server 방식으로 만들어진 프로그램을 뜻한다.
  • Web은 브라우저와 웹서버를 사용하는 방식이다.
  • 사실 두 방식 모두 크게는 CS방식에 속하나 구분을 위해 후자를 Web프로그래밍이라고 부른다.
  • 2000년대 이후 급격하게 주류 프로그래밍 방식이 CS에서 Web방식으로 전환되었다.

📍 1-1. CS(Client Server)

  • CS : Client - Server
    • 간단한 구조로 되어 있다. 대부분 서버Server에서 데이터를
      처리하고 클라이언트Client는 UI를 담당한다.
    • 구조가 간단하여 속도가 좋은 특징이 있으나 확장성은 떨어진다.
      • 장점 : 속도가 빠르다
      • 단점 : 구조상 확장의 어려움이 있다
        • Client 프로그램을 다운로드받아 PC에 설치해야 하는 배포의 번거로움
        • 버그 수정 시 배포가 어려움
        • 특정 OS 및 하드웨어에 종속적

📍 1-2. Web

  • WEB
    • CS환경에서 배포가 어렵다는 단점을 보완한 모델로, 브라우저만 있으면 어디서든 쉽게 접근 가능하다.
      • 장점 :
        • OS와 브라우저의 제품에 상관없이 어디서든 동작 가능하다.
        • 수정된 부분을 쉽게 배포할 수 있다.
      • 단점 :
        • 성능이 떨어지고 속도가 느리다.
        • 너무 다양한 기술이 접목되어 관리하기 어려울 수 있다.

📌 2. 통신 프로토콜

  • 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다.
  • 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다.

📍 2-1. 소켓 통신

  • 클라이언트도 서버로 요청을 보낼 수 있고 서버도 클라이언트로 요청을 보낼 수 있는 통신, 즉 클라이언트와 서버 양쪽에서 서로에게 데이터를 전달하는 방식의 양방향 통신이다.
  • 소켓(Socket) : 일종의 통신 접속점으로, 두 프로그램이 네트워크를 통해 통신할 수 있도록 양쪽에 생성되는 링크의 단자이다. 떨어져 있는 두 호스트를 연결해 주는 인터페이스 역할을 하며 데이터를 주고받을 수 있는 구조체이다.

    이미지 출처

    • 서버 소켓(Server Socket) :
      서버 프로그램에서 사용하는 소켓. 클라이언트의 연결 요청을 기다렸다가 요청시 클라이언트와 연결을 맺고 다른 소켓을 만든다.
    • 클라이언트 소켓(Client Socket) :
      클라이언트 프로그램에서 사용하는 소켓. 서버프로그램으로 연결을 요청하고 데이터를 전송한다.
  • 소켓은 프로토콜, IP주소, 포트 넘버로 정의된다.
    • 프로토콜 :시스템 간 통신의 규약
    • IP : 컴퓨터 고유 식별 주소
    • 포트 : 네트워크 통신을 위해 호스트 내부적으로 프로세스가 할당받아야하는 고유한 숫자. 같은 호스트 내에서 통신을 하고 있는 프로세스를 식별하는 번호이기에 프로세스별로 다른 포트 넘버를 가져야 한다.

📍 2-2. HTTP 통신

  • HTTP : Hyper Text Transfer Protocol
    • HTML파일을 전송하는 프로토콜이라는 의미로, 현재는 JSON이나 이미지 파일 등도 전송한다. 클라이언트에서 서버로 요청을 보내고 서버가 요청에 따른 결과를 반환하여 응답하는 방식의 단방향 통신이다.
      • 서버 응답 후에는 사용자와의 연결을 끊는다. 다만 성능상 이유로 최근에는 Keep Alive옵션을 통해 일정 기간 연결을 유지하는 방식도 사용된다.
      • HTTP 통신도 소켓 통신을 활용한 통신 방식의 일종이지만 단방향 통신의 특성상 별도 프로토콜로 구분한다.

➕ 소켓 통신과 HTTP통신의 차이점

  • 소켓 통신
    • 서로 데이터를 주고받을 수 있는 양방향 통신이다.
    • 계속해서 클라이언트 - 서버 커넥션을 유지하므로 스트리밍, 채팅 등 실시간으로 데이터를 자주 주고받아야 하는 환경에 적합하다.
  • HTTP 통신
    • 클라이언트 요청에 서버가 응답하는 단방향 통신이다.
    • 요청 시에만 커넥션이 발생하므로 자주 데이터를 주고받는 환경이 아닐 시 리소스를 절약하기에 적합하다.

📍 2-3. OSI 7계층 & TCP/IP 4계층

이미지 출처

  • OSI(Open Systems Interconnection) 7 Layer
    : ISO(국제표준기구)에서 만든, 네트워크를 7계층으로 만든 모델이다.

    • 응용 계층(Application Layer)
      : 통신의 최종 목적지로서 응용 프로세스와 직접 관계하는 계층이다. 일반적인 응용 서비스를 수행하고 관련된 프로세스들 사이의 전환을 제공한다. UI나 사용자 입출력 부분이 속한다.
    • 표현 계층(Presentation Layer)
      : 코드 간 번역을 통해 데이터의 형식상 차이를 다룬다. 인코딩, 암호화 등의 동작이 이루어지며 데이터 표현이 상이한 응용 프로세스의 독립성을 제공한다.
    • 세션 계층(Session Layer) :
      두 컴퓨터 간 대화나 세션을 관리하며 포트 연결이라고도 한다. 장치 간 연결을 설정, 관리, 종료하고 정상적으로 호스트를 연결하는 데 책임이 있다. 사용자들을 동기화하고 오류복구 명령을 일괄적으로 다루며 통신 세션을 확립, 유지, 중단한다.
    • 전송 계층(Transport Layer) :
      컴퓨터 간에 신뢰성 있는 연결을 담당한다. 데이터를 분해하거나 재조립하고 데이터 흐름과 오류를 제어함으로써 상위 계층이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 지원하는 역할을 한다.
    • 네트워크 계층(Network Layer) :
      데이터를 목적지까지 라우팅(전달)하는 기능을 한다. 경로를 설정하고 패킷을 전달해 주는 역할을 하며, 라우터 등의 장비가 속한다. 이 때 데이터 전달을 위해 IP주소(논리적 주소)를 사용한다.
      전송 계층으로부터 받은 데이터에 송수신 장치의 IP주소들을 포함하는 IP프로토콜 헤더를 붙여 패킷을 전송하는데 이를 캡슐화라고 한다.
    • 데이터 링크 계층(Data Link Layer) :
      물리 계층에서 발생할 수 있는 통신 오류와 흐름을 관리하여 안전한 정보 전달을 수행할 수 있도록 한다. 맥 주소(물리적 주소)를 가지고 통신하며, 이 계층에서 전송되는 단위를 프레임이라고 한다. 브릿지, 스위치 등의 장비가 속한다.
      • 맥 주소 : 네트워크 통신을 하는 하드웨어에 할당되는 고유한 ID. 48비트(8비트 6자리)로 구성되어 있다.
    • 물리 계층(Physical Layer) :
      주로 통신 케이블로 데이터를 전송하는 전기적, 기계적 특성을 갖는 계층이다. 통신 단위로는 0과 1로 이루어진 비트를 사용한다. 케이블, 리피터, 허브 등의 장비가 속한다.
  • TCP/IP 4 Layer
    : OSI 7 Layer를 4개로 단순화한 계층으로, 서로 다른 기종 간 기기들이 데이터를 주고받을 수 있도록 하는 인터넷 표준 프로토콜을 만들기 위한 모형이다. 사실상 인터넷 프로토콜을 대표하는 용어로 사용되며 이를 통해 컴퓨터를 연결하는 체계를 이더넷(Ethernet)이라고 부른다.

    • 응용 계층(Application Layer) :
      OSI 계층의 세션, 표현, 응용 계층과 유사한 계층
    • 전송 계층(Transport Layer) :
      OSI 계층의 전송 계층과 유사한 계층
    • 인터넷 계층(Internet Layer) :
      OSI 계층의 네트워크 계층과 유사한 계층
    • 네트워크 액세스 계층(Network Access Area Layer) :
      OSI 계층의 데이터링크, 물리 계층과 유사한 계층
    • IP (Internet Protocol)
      : 패킷 데이터들을 최대한 빨리 특정 목적지 주소로 보내는 프로토콜. 패킷의 순서가 변할 수 있고 전달 여부를 보증하지 않음
    • TCP (Transmission Control Protocol)
      : IP보다 속도는 느리지만 전달 여부와 패킷 순서 정렬을 보증함.
      • 이 두 가지 방식을 조합한 인터넷 통신을 TCP/IP라고 한다. 송신자가 수신자에게 IP를 사용하여 최대한 빠르게 패킷을 전송하면 TCP를 활용해 패킷을 정상적으로 수신받는다.

📍 2-3. 응용 계층 프로토콜의 예시

이미지 출처

  • HTTP : Hyper Text Transfer Protocol
  • HTTPS : Hyper Text Transfer Protocol Secure
  • FTP : File Transfer Protocol
  • SFTP : Secure File Transfer Protocol
  • Telnet : Terminal Network
  • SSH : Secure Shell
  • SMTP : Simple Mail Transfer Protocol

0개의 댓글