소켓, 웹소켓 그리고 TCP

2024. 10. 21. 22:02[Node.js_6기 본캠프 TIL]

웹소켓을 활용하는 프로젝트에 이어, TCP를 활용한 프로젝트를 시작하려고 하니 개념이 헷갈리기 시작했다. 이 소켓이 그 소켓인가. 이 양방향 통신과 저 양방향 통신은 무엇이 다른가. 따로따로 정리한 글들을 봐도 이게 그거 같고, 저게 그거 같았다.

 

이 소켓이 그 소켓인가요?

프로그램이 네트워크 상에서 데이터를 송신과 수신을 하기 위한 연결부를 소켓이라고 한다. 서버와 클라이언트의 IP 주소, 포트 번호, 연결 상태 등을 기록해놓은 하나의 파일이기도 하다. 일반적으로 TCP/IP 프로토콜을 이용하거나 WebScoket을 이용한다. 웹소켓 프로젝트에서 socket.io를 사용하며 질리도록 봤던 socket.on의 소켓과 TCP 프로젝트에서 다시 만나게 된 socket.on의 소켓은 같지만 다른 방식으로 구현되고 작동하고 있었다.

 

웹소켓과 TCP/IP 소켓의 차이점은?

 

TCP 소켓이 4계층(전송계층)에서 동작하고, 웹소켓은 HTTP에 기반하는 만큼 7계층(애플리케이션 계층)에서 동작한다는 점에서 가장 큰 차이를 보인다. 이 차이 때문에 데이터를 주고 받을 때 Buffer를 꼭 활용해야 한다는 것만은 알 것 같다. 그 외의 차이점은 하기와 같다.

 

  • 웹 소켓은 HTTP 레이어에서 작동하는 소켓으로 TCP/IP 소켓의 레이어가 다르다.

 

  • IP, PORT를 통해서 통신한다는 점에서는 비슷하다.

 

  • 추상화 정도
    • TCP Socket은 저수준이다.
    • 웹소켓은 추상화되어있다.

 

  • protocol
    • TCP Socket은 4 계층(전송계층)에 위치에서 위치하여 동작한다.
    • WebSocket은 HTTP에 기반하므로 7 계층(애플리케이션 계층)에서 동작한다.

 

  • Data 전송방법
    • TCP Socket은 바이트스트림을 통한 데이터 전송을 사용한다.
    • WebSocket은 구조화된 메시지 형식의 데이터를 다루게 된다.

 

  • 방화벽
    • TCP Socket은 방화벽에 의해 차단될 수 있는 새 TCP 포트를 열어야 한다.
    • 웹소켓 통신은 TCP 포트 번호 80(또는 TLS 암호화 연결의 경우 443)을 통해 이루어지므로 방화벽을 사용하여 웹이 아닌 인터넷 연결을 차단하는 환경에 유용하다.

 

 

 

 

참고자료:

https://jerecord.tistory.com/155

 

TCP/IP Socket과 WebSocket의 차이점에 대해 설명해주세요.

소켓이란? 프로그램이 네트워크 상에서 데이터를 송신과 수신을 하기 위한 연결부이다. 일반적으로 TCP/IP 프로토콜을 이용하거나 WebSocket을 이용한다. TCP/IP Socket 네트워크상 서버와 클라이언트

jerecord.tistory.com

https://medium.com/@hyun.sang/network-%EC%86%8C%EC%BC%93%EA%B3%BC-%EC%9B%B9%EC%86%8C%EC%BC%93%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-b1b745fcdcc2

 

[Network]소켓과 웹소켓의 차이점

소켓과 웹 소켓의 차이점에 대해서 말해 볼려고 합니다.

medium.com

https://on1ystar.github.io/socket%20programming/2021/03/16/socket-1/

 

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

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

on1ystar.github.io