[네트워크] UPnP와 NAT

Robert.Yang·2023년 6월 4일
1

Network

목록 보기
51/59
post-thumbnail

이 포스트는 널널한 개발자님 강의를 참조하며 작성하였습니다.

UPnP와 NAT

공유기도 공유기인데 토렌트같은 P2P 프로그램을 써보신 경험이 있으실 것이다. 그런데 잘 생각해보면 토렌트는 P2P통신을 하는데 토렌트를 쓰고 있다 해서 우리가 공유기 설정으로 포트포워딩을 해준다는 이런 것들을 안 해줘도 토렌트는 잘 작동된다. 왜 그럴까? 결론부터 애기하면 UPnP 때문이다. 보통의 경우 공유기가 UPnP를 지원한다. 그러면 UPnP는 무엇일까? UPnP를 알기 전에 PnP가 무엇인지부터 알아야 한다.

PnP는 윈도우 98시절에 PnP라는 개념이 나왔다. 뭐냐면 Plug And Play라는 약자로 쉽게 생각해서 가져다 꼳으면 작동한다라는 의미이다. 이때 각광 받던것이 바로 USB이다. USB는 알고 있듯이 PC와 탈부탁이 쉽고 간편해서 좋은 점이 많았다. 그래서 PC와 프린터가 연결할 때도 PnP개념이 나오면서 프린터를 PC와 연결만 하면 프린터 드라이브를 자동으로 설치해주는등 작업이 편해졌다. 그래서 PnP의 등장으로 OS의 설정 자체가 엄청 줄었다. 그러면 UPnP는 무엇일까? 예시로 홈쇼핑을 생각해보자.

홈쇼핑에서 쇼호스트가 나와 상품광고를 하고 이 광고를 철수가 보고 있다고 하자. 그런데 쇼호스트가 이렇게 광고를 한다. "지금 이 시간부터 리모콘에 특정 버튼을 누르면 PC에 연결되어 있는 프린터에 할인쿠폰을 인쇄해주겠습니다~"라고 쇼호스트가 광고를 해서 철수는 버튼을 눌러도 작동이 안되자 쇼호스트한테 전화를 건다. "버튼을 눌렀는데 안되는데요?"라고 묻자 철수 네트워크가 NAT로 묶여 있다고 생각한 쇼호스트는 친절히 "고객님 포트포워딩 해주세요~ 이 아이피와 이 포트로~~"라고 말하면 어느 누구라도 귀찮아서 바로 끊어버릴 것이다. 즉, 프린터에 할인쿠폰이 나오게 할려면 이 프린터를 어느 서버쪽에서 제어를 해야한다. 그런데 직접제어가 아니고 공유기로 접속을 해서 이 프린터와 연결된 호스트한테 출력명령을 내려야 한다. 문제느ㅜㄴ 서버가 공유기로 들어가서 접속해야하는데 NAT방식이니 불가하다. 그래서 위의 예시처럼 포트포워딩해달라고 일일이 애기해줄 수 없으니 이 설정 자체를 자동으로 해주는 스펙이 UPnP에 들어갔다. 이 스펙이 SSDP이다. 이 SSDP를 토렌트가 지원을 해준다. 무슨 이야기냐면 192.168.0.10의 호스트가 토렌트를 사용하려고 하고 연결되어 있는 공유기가 UPnP를 지원해준다고 하면 토렌트가 작동되자마자 호스트가 해당 네트워크에 대고 P2P통신에 필요한 포트번호 IP등을 설정 자동화를 요청하고 공유기는 UPnP를 지원하면 이 자동화를 이뤄준다. 즉, 쉽게 말해 포트 포워딩을 자동화 해준다는 것이다.

profile
모든 것을 즐길 줄 아는 개발자, 양성빈입니다.

0개의 댓글