- startTransition
- Mapped type
- LVH
- mock-service-worker
- Viewport
- tanstack-query
- MSW
- useTransition
- tanstack-router
- svh
- mutationoptions
- msw2.0
- dvh
- websocket
- queryfactory
- react-hook
- SDP
- webrtc #ice #stun #turn
- HTTP
- type-challenges
- fsd-architecture
- vh
- webrtc
- type-challenges-easy
- Vite
- readonly
- fsd
- queryoptions
- Typescript
- React
- Today
- Total
개발자 메론빵
WebRTC : ICE, STUN, TURN, Candidate 본문
📌ICE (Interactive Connectivity Establishment)
💡 2개의 Peer끼리 P2P 연결 가능하게 하도록 최적의 경로를 찾아주는 프레임워크
Interactive Connectivity Establishment(ICE) 프로토콜을 사용하여, 두 피어 간의 최적의 연결 경로를 찾기 위한 프로세스를 관리하는 프레임워크이다. ICE 프로세스는 STUN 서버를 사용하여 공용 IP 주소를 찾아내고, 필요한 경우 TURN 서버를 사용하여 데이터를 중계한다. 즉, ICE 서버 설정은 STUN과 TURN 서버 설정을 모두 포함할 수 있다.
STUN(Session Traversal Utilities for NAT)

컴퓨터가 자신의 공용 IP 주소와 포트 번호를 알아낼 수 있도록 도와주는 서버로 이 정보를 통해 다른 컴퓨터와 직접 연결을 시도할 수 있게 된다. 하지만, 모든 네트워크 환경에서 직접 연결 가능한 것은 아니다! (→ TURN에서 계속.,..)
TURN(Traversal Using Relays around NAT)

TURN(Traversal Using Relays around NAT) 서버는 STUN 서버로 해결할 수 없는 경우에 사용되는데, 이는 직접 연결이 불가능할 때 데이터를 중계해주는 역할을 한다. 쉽게 말해 두 컴퓨터가 서로 직접 연결되지 못하면, TURN 서버가 데이터를 전달하는 중간 다리 역할을 해서 통신이 이루어질 수 있도록 도와준다. 따라서 TURN 서버를 이용한 통신은 P2P 통신에 해당하지 않는다.
📌Candidate
STUN, TURN 등으로 찾아낸 연결 가능한 주소를 Candidate라고 할 수 있는데 ICE애서 Finding Candidate한다.
Candidate는 다음과 같이 세 종류로 구분할 수 있다.

Direct Candidate
각 Peer의 사설 네트워크 주소로 다수의 네트워크 인터페이스(예: 이더넷, Wi-Fi)가 있는 경우, 각 인터페이스에 대한 주소가 후보가 된다. 이 주소는 내부 네트워크에서는 직접 접근 가능하지만 외부 네트워크에서는 NAT(네트워크 주소 변환)장비에 의해 접근이 제한될 수 있음
Server Reflexive Candidate
Peer의 공개 인터넷 주소로 NAT 장비 뒤에 있는 피어의 실제 접근 가능한 주소이다. STUN 프로토콜을 통해 Peer는 자신의 NAT 매핑된 공개 주소를 알아낼 수 있다. STUN 서버에 요청을 보내 자신을 바라보는 외부의 주소(즉, NAT가 할당한 공인 IP주소와 포트)를 발견한다.
TURN Relay Candidate
일부 네트워크 환경에서는 NAT 트래버설이나 방화벽 우회가 복잡하거나 불가능할 수 있다. 이 경우 TURN 서버가 중계 역할을 한다. TURN 서버는 Peer 간 데이터를 중계하는데 사용되는 주소를 할당한다. 이는 모든 트래픽이 TURN서버를 경유하게 함으로써, 복잡한 네트워크 환경에서도 두 Peer가 서로 통신할 수 있도록 보장한다.
'WebRTC' 카테고리의 다른 글
| HTTP, WebSocket, WebRTC 개념 (6) | 2024.10.06 |
|---|---|
| WebRTC : SDP (0) | 2024.07.25 |
| WebRTC : P2P, NAT (0) | 2024.07.25 |