P2P
Pure P2P architecture는 순수하게 peer-to-peer 즉, 고객과 고객간에 직접적으로 communicating하는 것을 의미한다.
always-on server가 존재하지 않고 따라서 well-known port도 존재하지 않는다. peer들은 즉각적으로 연결되고 지속적으로 IP address가 변화한다.
Napster
P2P network의 대표적인 network인 "Napster"의 original design에서 peer들은 서로의 IP address를 갖고 있지 않아서 서로의 위치를 알고있는 centralized directory가 필요하다. Bob가 Alice에게 예시를 통해 살펴보자.
- Alice는 그녀의 노트북 컴퓨터에서 P2P 클라이언트 어플리케이션을 실행한다.
- 인터넷에 간헐적으로 연결합니다. 각 연결에 대해 새 IP 주소를 가져온다.
- "헤이 주드"를 요청한다.
- 응용프로그램은 Hey Jude의 복사본을 가진 다른 피어를 표시한다.
- 앨리스는 동료들 중 한명인 밥을 고른다.
- Bob의 PC에서 Alice의 노트북으로 파일이 복사된다: HTTP
- Alice가 다운로드하는 동안 다른 사용자는 Alice에서 업로드한다.
- Alice의 피어는 웹 클라이언트인 동시에 일시적인 웹 서버다.
Gnutella
Centralized directory를 이용하는 Napster는 치명적인 문제가 있었다.
1. single point of failure - centralized server가 망가지면 모든 시스템이 붕괴되는 문제가 있다.
2. performance bottleneck - 중앙시스템에 항상 요청을 해야하므로 데이터 병목현상이 발생할 수 있다.
3. copyright infringement: 사람들이 저작권을 위반하고 data를 교환하면 결국 법의 표적은 중앙 관리자가 될 수 밖에 없다.
실제로도 Napster는 결국 레코드 회사와 음악 산업의 표적이 되어 법적문제로 2년만에 서비스를 중단하게 되었다.
이에따라 Gnutella라는 탈중앙 P2P network 방식이 Nullsoft의 직월들에 의해 출시 되었다.
Gnutella는 fully distributed 즉 central server가 없는 완전한 peer-to-peer network였다. 또한 public domain protocol로 기술을 전부 공개하여 아무나 이 기술을 활용할 수 있도록 하여 현재는 Gnutella의 다양한 변형 기술이 존재한다.
Gnutella의 작동방식은 아래와 같다.
always-on server는 아니지만 그와 유사한 역할을 하는 servent를 설정하고 해당 유저에게 어떤 파일을 가진 user를 찾아달라고 요청하는 방식으로 진행된다. 이 네트워크가 유지되는 과정에서 지속적으로 PING이라는 신호를 user가 사방으로 보내면 그 신호를 받은 user는 또 PONG으로 답하며 서로서로 존재 유무를 확인한다.
이때 치명적인 약점이 있다.
1. DDoS(Distributed Denial of Service)
Gnutella 네트워크의 모든 노드는 다른 노드들과 동등한 관계를 가지므로, 악의적인 노드가 네트워크에 참여할 경우 해당 노드가 네트워크에 과도한 트래픽을 발생시켜 다른 정상 노드들의 작동을 방해할 수 있다. 이러한 DDos 공격은 네트워크의 효율성을 크게 저하시키며, 서비스 거부 상태로 이어질 수 있다.
2. PONG Attack
PONG 공격에서는 공격자가 대량의 가짜 PONG 메시지를 네트워크에 전파하여, 노드들이 실제로는 존재하지 않는 노드들에 연결을 시도하게 만든다. 이로 인해 네트워크의 효율성이 저하되며, 특히 새로운 노드가 네트워크에 참여할 때 실제 동작하는 노드를 찾기 어렵게 된다.
Bit Torrent
아래는 bit torrent 방식에 대한 간략한 설명이다.
'Quality control (Univ. Study) > Computer Network' 카테고리의 다른 글
컴퓨터 네트워크 문제(2) (0) | 2023.10.01 |
---|---|
P2P(2) (0) | 2023.09.27 |
DNS (0) | 2023.09.20 |
E-mail protocol (0) | 2023.09.19 |
컴퓨터 네트워크 문제(1) (0) | 2023.09.18 |