# nat traversal

2개의 포스트
post-thumbnail

[Javascript] PeerJS 개념 이해하기

개요 dor.gg 개발을 한지 어언 6개월정도 지났다. 이제 사이트의 기본적인 틀은 (매칭 시스템) 잡힌 것 같아서 '베타 버전'이라는 꼬리표를 떼기 위해 두 개의 큰 산이 남은 상황이다. 그 중 하나가 바로 음성채팅이었는데. webRTC peerJS의 사용법을 적기 앞서 그 기반이 되는 개념을 먼저 정리하고 넘어가고자한다. webRTC의 이해. http와 websocket과 비교 먼저 webRTC라는 단어에 담긴 의미부터 짚고 넘어가보자. RTC는 Real Time Communication의 약자로, web application으로 하여금 어떠한 추가적인 플로그인, 라이브러리없이 오디오, 비디오 등의 stream data를 실시간으로 전송할 수 있게 해주는 기술을 의미한다. webRTC라는 단어를 처음 듣고 든 생각은 'webSocket'하고 다른 점은 뭔데?'였다. 이렇게 비교해보자. 먼저 간단한 HTTP 통

2022년 2월 21일
·
0개의 댓글
·

TCP hole-punching

TCP 소켓을 이용하여 1:1연결을 해야 하는 상황이 있어 TCP hole-punching을 해주는 라이브러리를 개발하게 되었다. 연구하면서 알게 된 내용을 정리하려고 한다. 로컬 망 안에 속한 peer끼리의 연결은 알다시피 매우 간단하다. 하지만 연결하려는 peer가 외부 네트워크에 있고 모두 NAT에 의해 IP가 변조된다면 어떻게 연결할까.. 1. 서로의 IP탐색 - STUN(RFC5780) 당연하게도 TCP연결을 하려면 먼저 상대방의 IP를 알아야 한다. 우리는 모두 NAT뒤에있는 환경이라고 가정하면 나와 상대의 IP를 모두 알아내야하는데 어떻게 알아내는가.. NAT뒤에 있는 상대의 IP도 알아내는 방법이 있다. (정확히는 상대방이 사용하는 NAT의 공인IP를 알아내는것.) 바로 STUN 서버를 활용하는 것인데.. ![](https://images.velog.io/images/wowb/post/5501a295-f767-40f6-b21c-1eefe74a275a/1_H

2021년 12월 5일
·
0개의 댓글
·