1. 웹소켓이란? 그냥 소켓과의 차이는?
- 둘 다 양방향 통신이고, IP와 PORT를 통해 통신한다는 점은 비슷하지만, 레이어가 다르다
- 웹 소켓 : HTTP 레이어에서 작동하는 소켓 (7계층)
- 소켓 : 인터넷 프로토콜에 기반 (4계층)
- 잠깐! OSI 7계층이란 ?!
- 네트워크 통신 과정을 7개의 계층으로 구분하여 만든 규격
- 4계층 [전송 계층] : 발신지에서 목적지까지 간 제어와 에러 관리, 데이터 전송을 위해 포트 번호 사용, 대표적인 프로토콜로 TCP와 UDP가 있음
- 7계층 [응용 계층] : 사용자와 바로 연결되어있으며, 응용 서비스를 네트워크에 연결해주는 역할, 대표적인 프로토콜은 HTTP가 있음
- 세부 내용이 길기때문에 다음포스팅에서...!
2. 웹소켓이 등장한 이유와 특징
- 통상적인 HTTP통신은 단방향 통신으로 Client가 요청을 보내는 경우에만 Server가 응답하기 때문에 실시간 통신을 하기 위해서는 실시간처럼 보이는 방식을 사용했다.
- 또한 실시간 통신을 하고자 할 때 헤더의 비중이 너무 크다.
- 이러한 문제점을 해결하기 위해 나온것이 웹소켓이다.
- 채팅, 주식사이트, 구글 Docs같은 여러 사용자가 동시 접속해서 수정할 수 있는 앱 등에서 사용 된다.
3. 소켓의 종류
- 스트림(TCP)
- 연결 지향 방식
- 높은 신뢰성을 보장하지만, UDP보다 속도가 느리다.
- 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해서 논리적 경로를 배정하고, 데이터의 흐름제어, 혼잡제어 같은 기능도 수행하기 때문에 UDP보다 속도가 느리다.
- 데이터그램(UDP)
- 비 연결형 서비스
- 연결을 설정하고 해제하는 과정이 존재하지 않고, 패킷에 순서를 부여하여 흐름 제어, 혼잡 제어같은 기능도 하지 않기때문에 TCP보다 빠르다.
- 하지만 신뢰성있는 데이터의 전송을 보장하지는 않기 때문에 신뢰성보다는 연속성이 중요한 서비스에 자주 사용된다.
[참고자료]
OSI 7계층
소켓
소켓2
소켓의 종류