본문 바로가기
▶ Back-End/개념 요약

WebSocket vs Socket vs Socket I.O

by 오늘도 코딩 2023. 2. 17.
728x90
반응형

간단한 개념 소개를 통해 어떻게 다른지 파악

*자세한 설명 생략

 

 

▷ 소켓(Socket) 이란? 

*Socket 통신 : Server도 Client에게 요청을 보낼 수 있는 양방향 통신(연결유지)

 

- 네트워크상에서 동작하는 프로그램 간 통신의 종착점

 

- 소켓을 통해 데이터 통로가 생성

 

- Server-Client 통신 구조

 

- Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식(연결유지)

 

 

▷ 소켓(Socket)의 유형

*소켓은 일반적으로 Transport 계층에 속해있는 TCP 프로토콜을 말한다.

 

    -  TCP(Transmission Control Protocol / Stream Socket)

 

        - 연결 지향형 소켓

 

        - 신뢰성 보장

 

        - 데이터 순서대로 송수신

 

        - Point-To-Point 연결

 

    - UDP(User Datagram Protocol / Datagram Socket)

 

       - 비 연결형 소켓

 

        - 신뢰성 보장 X

 

        - 데이터 순서대로 송수신 보장 X

 

        - Point-To-Point 연결뿐만 아니라 1:N 연결도 가능

 

 

▷ 웹소켓(WebSocket)

* 소켓(Socket) vs 웹소켓(WebSocket)
    - 동작계층
    - 데이터 형식

 

    - HTTP(Hyper Text Transfer Protocol)를 사용하는 네트워크 데이터 통신의 단점을 보완

    *HTTP 통신 : Client가 요청을 보내고 Server가 응답하는 단방향 통신(연결유지X)

    *단방향적 구조로 통신하기 때문에 TCP/IP 프로토콜을 사용하는 소켓처럼 계속 connection이 유지되는 실시간 통신을 할 수 없다.

     이 문제점을 해결하기 위해 나온것이 웹소켓 프로토콜이다.

 

    - Server-Client 통신 구조

 

    - Server와 Client 간의 웹소켓 연결은 HTTP를 통해 이루어짐

 

 

▷ Socket I.O

 

    - 웹소켓을 기반으로 클라이언트와 서버의 실시간 양방향 통신을 가능하게 해주는 Node.js의 모듈
    *웹소켓을 편하게 사용하고자 만든 라이브러리

 

 

▷ 참고

 

소켓 프로그래밍 - 소켓의 의미/특징/종류 · on1ystar

소켓 프로그래밍 - 소켓의 의미/특징/종류 16 Mar 2021 의문점이나 지적 등의 관심 및 조언을 위한 댓글이나 메일은 언제나 환영이고 감사합니다. Socket 논리적인 의미로 컴퓨터 네트워크를 경유하

on1ystar.github.io

 

WebSocket이란? 개념과 동작 과정 (+socket.io, Polling, Streaming...)

📢 들어가며 직장에서 자동 업데이트 기능을 구현할 일이 생겼다. 누군가 웹 UI의 데이터를 수정했을 때 다른 PC를 사용 중인 사람의 화면에도 해당 UI 데이터가 자동으로 업데이트 되게하는 기

doozi0316.tistory.com

 

웹소켓과 소켓은 어떻게 다른가

OSI 계층 관점에서 보는 웹소켓과 소켓의 차이점, 브라우저에서 소켓 대신 웹소켓을 사용하는 이유

gusrb3164.github.io

 

[소켓과 웹소켓] 한 번에 정리 (2) | 소켓과 웹소켓의 차이점, 웹소켓의 모든것, http-tcp-소켓의 상

지난 시간은 소켓 위주로 정리를 해보았다. 이번 편은 웹소켓에 대해 다루어보자! 이번 기회에 소켓과 웹소켓의 차이를 확실히 알아두도록 하자....😌

velog.io

 

 

▷ 관련 글

 

HTTP1.1과 HTTP2 차이점

HTTP1.1과 HTTP2의 간단한 주요 기능 차이*자세한 설명 생략  ▷ HTTP/1.1<span styl..

coding-today.tistory.com

 

 

728x90
728x90

'▶ Back-End > 개념 요약' 카테고리의 다른 글

PWA 란?  (0) 2023.03.14
HTML5 란?  (0) 2023.03.09
카프카(Kafka)란?  (0) 2023.02.07
메시지 큐(Message Queue)란?  (0) 2023.02.06
서블릿(Servlet) 이란?  (0) 2023.02.03

댓글