P2P 연결에 열린 포트가 필요하지 않은 이유는 무엇입니까?

P2P 연결에 열린 포트가 필요하지 않은 이유는 무엇입니까?

내 말은, 누군가 나에게서 파일을 다운로드하고 있다면 그건 내가 호스트이고 그 사람이 나에게 연결하고 있다는 뜻이 아닙니까?

아니면 내가 그 사람과 연결되어 있는 걸까요?

어느 쪽이든 우리 중 한 명은 열린 포트가 필요합니다. 그렇죠?

내 라우터에 내 컴퓨터에 대한 개방형 포트 라우팅이 없는데 어떻게 연결을 수락합니까?

답변1

라우터가 UPnP를 지원하는 경우 열려 있는 포트를 수동으로 구성할 필요 없이 사용 중인 p2p 응용 프로그램이 라우터의 포트를 열 수 있습니다.

위키피디아 UPnP

그렇지 않으면 애플리케이션이 GoToMyPC 또는 Hamachi와 같은 p2p 애플리케이션 및 원격 데스크톱 애플리케이션에서 일반적으로 사용되는 NAT 통과라는 프로세스를 사용하고 있을 가능성이 있습니다. 이 기술은 방화벽으로 간주되지만 인터넷에서 단일 IP 주소(라우터가 사용하는)를 공유하는 개인 네트워크를 보유하기 위한 수단이기도 한 네트워크 주소 변환을 통해 작동하도록 설계되었습니다.

Wikipedia NAT 통과

답변2

BitTorrent와 같은 프로토콜에서는 연결 양쪽 중 하나에 포트 전달이 켜져 있는 한 열린 쪽이 항상 호스트 역할을 합니다. 양쪽이 열려 있으면 양쪽 끝이 "호스트"가 될 수 있습니다. 양쪽이 모두 닫혀 있는 경우 연결을 협상하기 위해 열려 있는 연결을 가진 제3자가 필요합니다. 이것이 스카이프와 같은 방식입니다(제3자를 슈퍼노드라고 함).

여기 좋은 블로그 게시물이 있습니다스카이프가 슈퍼노드를 사용하는 방법과 슈퍼노드를 사용하여 방화벽을 우회하는 방법을 설명합니다.

답변3

열린 포트를 전화번호와 비교하겠습니다.

전화를 걸 수 있는 전화기는 있지만 전화를 받을 수 있는 전화번호는 없다고 상상해 보십시오.

두 당사자가 서로 대화하는 경우(또는 한 당사자가 항상 통화하는 경우) 실제로 누가 전화를 거는지는 중요하지 않습니다. 중요한 부분은 적어도 그들 중 한 명은 전화번호를 가지고 있고, 다른 파트너는 그에게 전화를 한다는 것입니다.

그들 중 누구도 전화번호를 갖고 있지 않다면 슈퍼노드는 일부 시스템에서 사용되는데, 슈퍼노드는 그들 각각으로부터 하나씩 두 번의 전화를 받아 함께 연결하는 친구가 될 수 있습니다. 이는 두 당사자 중 어느 누구도 전화번호를 갖고 있지 않은 경우 대화할 수 있는 유일한 방법입니다. 문제는 대화가 이 슈퍼노드 친구의 전화선 품질로 제한된다는 것입니다.

이 비유를 통해 3가지 가능한 시나리오를 더 쉽게 이해할 수 있기를 바랍니다.

관련 정보