Socket.IO 사용 시 폴링(Polling) 방식의 오버헤드 주의
Source
Evernote/Technote scraps/Socket.IO 사용시 집고 넘어야 할 한 가지 - Firejune.md
Summary
Socket.IO는 웹소켓과 폴링 방식을 모두 지원하지만, 애플리케이션의 통신 빈도에 따라 전송 방식을 신중히 선택해야 한다. 고빈도 실시간 통신(예: 초당 20 프레임)에서 폴링 방식을 사용하면 HTTP 요청으로 인한 막대한 네트워크 오버헤드가 발생하며, 이는 서버에 DDoS 공격과 유사한 부하를 줄 수 있다. 따라서 실시간성이 요구되는 서비스는 웹소켓 전용으로 구성하는 것이 권장되며, 폴링 방식은 저빈도 통신에 한정하여 사용해야 한다.
Key Points
- Socket.IO는 웹소켓과 폴링을 혼용할 수 있으나, 무분별한 사용 시 클라이언트/서버 양측에 큰 오버헤드를 발생시킴
- 고빈도 실시간 웹앱에서 폴링 사용은 네트워크 처리량 급증으로 이어지며, 로드 밸런싱으로 해결하기 어려운 수준임
- 애플리케이션의 통신 빈도(Throughput)에 따라 ‘폴링 포함’ 또는 ‘웹소켓 전용’ 아키텍처로 구분 설계 필요
- Kaazing 자료 인용: 클라이언트 수 증가 시 폴링 방식의 네트워크 처리량이 선형적으로 증가하여 대역폭 소모가 큼
Related
-
Beyond 1Mbps Global Overlay Live Streaming: The Case of Proxy Helpers
-
지연 기반 네트워크 유틸리티 최대화 (Delay-Based Network Utility Maximization)
-
Scheduling in a Random Environment: Stability and Asymptotic Optimality
-
Online Graph Edge-Coloring in the Random-Order Arrival Model
-
Multi-Armed Recommendation Bandits for Selecting State Machine Policies for Robotic Systems
-
Quantifying and Verifying Reachability for Access Controlled Networks
-
Adaptive Speculative Processing of Out-of-Order Event Streams
-
Is the Price of Anarchy the Right Measure for Load-Balancing Games
-
A systematic approach to classify design-time global scheduling techniques
-
Two-Hop Wireless Communication Systems의 Effective Capacity 분석
-
Network-Wide Local Unambiguous Failure Localization (NWL-UFL) via Monitoring Trails
-
Context-Aware Nanoscale Modeling of Multicast Multihop Cellular Networks
-
Optimal multiuser spectrum management for digital subscriber lines
-
Multicarrier Beamforming With Limited Feedback: A Rate Distortion Approach
-
Algebraic Optimization for Processing Graph Pattern Queries in the Cloud
-
Joint consideration of energy-efficiency and coverage-preservation in microsensor networks