나는 P2P 프로그램을 만들고 클라이언트의 NAT를 통과하는 데 도움이 필요합니다. 여기 stackoverflow에 대한 많은 질문을 읽었지만, NAT를 통과하는 데있어 모든 메소드의 단점과 이점을 얻지 못했습니다. 몇 개의 라우터가 어떤 방법을 지원합니까? 대기업에서 일반적으로 사용하는 방법은 무엇입니까? (BitTorrent, TeamViewer, ...) 내가 열거 한 세 가지 방법의 단점/이점은 무엇입니까?UDP/TCP 구멍 펀칭 vs UPnP vs STUN vs?
4
A
답변
7
UPnP는 라우터에서 소프트웨어 지원이 필요합니다. 라우터가 가지고있는 경우에도 보안 문제로 인해 라우터가 꺼지는 경우가 있습니다.
STUN은 간단한 공개 서버를 사용하여 NAT 및 실제 IP 주소의 존재를 감지합니다. 이는 유용한 작업을 수행하는 다른 상위 프로토콜에 유용합니다.
구멍 펀치는 두 대의 컴퓨터를 연결하는 간단한 기술입니다. NAT 뒤에있는 두 대의 컴퓨터간에 통신하려면 3 대의 공용 컴퓨터가 필요합니다. 사용자 정의 프로토콜을 사용하여 자체 서버를 실행할 수 있습니다. 우리는 STUN 및 기존 STUN 서버를 사용할 수 있습니다. (설정에는 몇 개의 패킷 만 필요하고 나머지는 피어 투 피어입니다.)
물론 일부 NAT 방화벽은 위와 호환되지 않으므로 사용자 지정 프로토콜이 필요할 수 있습니다. 비트 토 런트 (Bittorrent)는 이것을 수행합니다. 방화벽과 기타 프로토콜 뒤에있는 클라이언트에 따라 다른 기술을 사용합니다.
관련 문제
- 1. lz4 vs lz4_hc vs blosc vs snappy vs fastlz
- 2. 인라인 vs __inline vs __inline__ vs __forceinline?
- 3. 링커 오류 (VS 2005 vs VS 2012)
- 4. dotNetRDF VS Jena.NEt VS Dotnet과 다른 VS?
- 5. ACE vs Boost vs Poco vs WxWidgets
- 6. 누적 vs 배 vs 압축 vs 압축
- 7. MPAPI vs MPI.NET vs?
- 8. Quartz.NET vs JAMS vs?
- 9. & vs * 및 | + VS
- 10. Ajax.BeginForm vs Ajax.ActionLink vs
- 11. ImageView vs ImageButton vs
- 12. VS
- 13. vs
- 14. VS
- 15. VS
- 16. VS
- 17. Websocket vs Ajax vs cometd
- 18. MySQL vs Firebird vs SQLite
- 19. RewriteRule :^vs^(. *) $ vs ^. * $ 차이점이 있습니까?
- 20. RegAsm VS RegSvc32 VS GAC
- 21. TextColor vs TextColorPrimary vs TextColorSecondary
- 22. JustMock vs. TypeMock vs. Other
- 23. cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize
- 24. pycuda vs theano vs pylearn2
- 25. Java.io.File.canRead() vs Java.io.Files.isReadable() vs Java.io.FilePermission
- 26. () vs [] vs {}의 차이점은 무엇입니까?
- 27. managedQuery() vs context.getContentResolver.query() vs android.provider.something.query()
- 28. SortedList vs. SortedDictionary vs. Sort()
- 29. IDataErrorInfo vs ValidationRule vs 예외
- 30. 풀링 vs 소켓 vs 기타