p2p를 만들고 싶습니다. 그런데 사설아이피끼리 통신을 하려면..

이정원의 이미지

A대학교에서 사설아이피를 쓰는 컴퓨터와

B대학교에서 사설아이피를 쓰는 컴퓨터 끼리 p2p를 하려고 합니다.

공인 아이피끼리라면 별문제 없겠지만

사설아이피를 가지고 어떻게 연결을 해야할지 모르겠습니다.

제가 질문을 잘 못해서 ....

이해가 잘 가실지는 모르겠습니다. 궁금하네요..

p2p로 파일을 주고 받으려면 중개 서버를 거치지 않고 해야할텐데

그러면 상대의 아이피로 연결을 걸어야하지 않을까요?

조언 부탁 드립니다.

girneter의 이미지

확실한건 다른 분들이 답변해 주시겠지만,
상식적으로 사설 ip 와 사설 ip 가 바로 connection 을
맺는건 불가능합니다.

외부에 공인 ip 를 가진 서버가 반드시 있어야겠지요.

일단 양측이 공인 ip 서버에 접속해서
최소한의 정보인 ip 와 client port pair 를 상대방에게 알려줘야만
그 이후에 직접 연결을 맺고
p2p 를 할 수 있을겁니다.

개념없는 초딩들은 좋은 말로 할때 DC나 웃대가서 놀아라. 응?

myroot의 이미지

불가능할것 같네요....

우선 NAT가 구현 방식에 따라 포트번호가 바뀌는 방법이 다양하기 때문에...

내부네트워크에 있는 클라이언트는 이 연결이 어떤 포트로 변경되서 나갈지 예측할수 없기 때문입니다.

제가 생각했던 방법이 있는데...
우선 중앙 서버가 있고 특정 포트와 bind한후 중앙 서버에 패킷을 보내서 외부포트번호를 알아낸후 소켓을 닫은후 다시 그 포트번호로 bind한후 listen하는 방법이였습니다.
하지만..
구현된 NAT가 같은 포트번호에 대해서 계속 같은 외부 포트번호를 할당해 줄지 보장이 안되기 때문에... -ㅁ-;;

msn메신저 사용해 보면 서로 다른 네트워크의 내부 ip끼리 파일 주고 받기가 가능한데.. 이거는 순수 p2p가 아니고 중간에 서버를 거치더군요...

또한 이러한 방법의 라이브러리도 있다고 하더군요. (win32용)

그리고...

girneter wrote:

일단 양측이 공인 ip 서버에 접속해서
최소한의 정보인 ip 와 client port pair 를 상대방에게 알려줘야만
그 이후에 직접 연결을 맺고
p2p 를 할 수 있을겁니다.

내부 ip에 있는 클라이언트는 자신의 외부 ip와 외부port는 알 방법이 없을 텐데요... 그래서 여타 p2p공유 프로그램이 내부ip에서 작동이 안되는거구...
최용일의 이미지

VPN 쓰시면 되요. VPN 터널링으로 하면, 사설 - 공인망 - 사설 이렇게 연결됨

익명 사용자의 이미지

vpn이나 webrtc의 stun / turn 등을 이용해 영상 및 데이터를 p2p로 전송 할 수 있습니다.

당연히 사설IP <----> 사설IP는 중계서버고 꼭 필요합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.