프루나나 당나귀 같은 P2p 프로그램을 사용하면 다른 Peer가 내 컴퓨터에서 파일을 다운로드하는 것을 볼 수 있습니다 ('나'의 입장에서는 업로드인셈)
첨엔 그냥 아무 생각이 없었는데 갑자기 궁금해졌습니다. 내 컴퓨터는 공유기 밑에 있어서 외부에서 직접 내 컴퓨터에 TCP 커넥션을 맺을 수 없을텐데.. 어떻게.. 내 파일을 받아갈 수 있는지..
이게 어떻게 가능한 것인가요?
그런 기술을 보통 홀펀칭이라고 부릅니다. 자세한건 구글에~
─────────────────────── yaourt -S gothick elegantkhris'log
몇몇 P2P 프로그램은 공유기 설정에서 포트를 직접 열어줘야 동작하더군요. (uTorrent 등)
--- “내게 능력주시는 자 안에서 내가 모든 것을 할 수 있느니라.”(빌립보서 4:13)
Universal Plug & Play 와 연관되어 있기도 합니다.
A -- 공유기 --- 인터넷 --- 공유기 -- B
위와 같은 환경일 때, UDP 패킷이라면
1. A에서 B로 낮은 TTL을 가진 UDP 패킷을 쏜다. (UDP 패킷은 도중에 소멸, 이때 패킷의 UDP 포트를 B가 알아야함) 2. B에서 A로 UDP 패킷을 쏜다. (UDP 포트는 미리 인지하고 있어야함)
대충 이런식으로 되는걸로 알고있습니다.
TCP의 경우엔 핸드쉐이크로 인해 조금더 복잡할겁니다.
그런 문제를 일반적으로 NAT traversal이라고 합니다. 위키백과 해당 페이지 참고.
http://en.wikipedia.org/wiki/NAT_traversal
eMule 을 예로 들으셨으니 eMule 로 답해드리면...
과거에는 공유기에서 직접 포트 여는 설정을 했어야 합니다. 외부에서 연결을 시도해 오는건데 포트가 내부 IP 로 열려 있지 않으면 연결을 받을 수 없으니까요.
요즘 eMule 의 경우 uPNP 기능으로 공유기의 포트 설정을 직접 해버립니다. 이건 uTorrent 등도 같습니다.
텍스트 포맷에 대한 자세한 정보
<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]
그런 기술을 보통
그런 기술을 보통 홀펀칭이라고 부릅니다. 자세한건 구글에~
───────────────────────
yaourt -S gothick elegant
khris'log
───────────────────────
yaourt -S gothick elegant
khris'log
어떤때는 공유기 설정에서 포트를 직접 열어줘야 할 때도 있습니다.
몇몇 P2P 프로그램은 공유기 설정에서 포트를 직접 열어줘야 동작하더군요. (uTorrent 등)
---
“내게 능력주시는 자 안에서 내가 모든 것을 할 수 있느니라.”(빌립보서 4:13)
Re: UPnP
Universal Plug & Play
와 연관되어 있기도 합니다.
A -- 공유기 --- 인터넷
A -- 공유기 --- 인터넷 --- 공유기 -- B
위와 같은 환경일 때, UDP 패킷이라면
1. A에서 B로 낮은 TTL을 가진 UDP 패킷을 쏜다. (UDP 패킷은 도중에 소멸, 이때 패킷의 UDP 포트를 B가 알아야함)
2. B에서 A로 UDP 패킷을 쏜다. (UDP 포트는 미리 인지하고 있어야함)
대충 이런식으로 되는걸로 알고있습니다.
TCP의 경우엔 핸드쉐이크로 인해 조금더 복잡할겁니다.
NAT traversal
그런 문제를 일반적으로 NAT traversal이라고 합니다. 위키백과 해당 페이지 참고.
http://en.wikipedia.org/wiki/NAT_traversal
...
eMule 을 예로 들으셨으니 eMule 로 답해드리면...
과거에는 공유기에서 직접 포트 여는 설정을 했어야 합니다.
외부에서 연결을 시도해 오는건데 포트가 내부 IP 로 열려 있지 않으면 연결을 받을 수 없으니까요.
요즘 eMule 의 경우 uPNP 기능으로 공유기의 포트 설정을 직접 해버립니다.
이건 uTorrent 등도 같습니다.
댓글 달기