Peer-to-peer architecture
서버가 항상 켜져있지 않음
임의의 end-systems가 직접 통신한다.
다른 피어에게서 서비스를 요청하고, 다른 피어에게 서비스를 제공한다.
- 자체 확장성(self scalability): 새로운 피어는 새로운 service capacity와 새로운 service demands(수요)를 가져옴
피어는 간헐적으로 연결되고 ip주소가 변경된다. - 관리하기 복잡하다
File distribution: client-server vs P2P
크기 F의 파일을 한 서버에서 N개의 피어로 분산하는 데 필요한 시간은??
- 피어의 업로드/다운로드 용량은 제한된 리소스이다.
client-server에서,
server transmission : 순차적(sequentially)으로 N개의 파일 복사본을 보내줘야 한다.
- 한 복사본을 보내는데 걸리는 시간 : F/Us
- N개의 복사본을 보내는데 걸리는 시간 : NF/Us
client : 각 클라이언트는 파일 복사본을 다운로드 해야한다.
- Dmin = 클라이언트의 다운로드 최소 속도
- 클라이언트의 다운로드 최소 시간은 F/Dmin
클라이언트-서버 방식에서 파일 F를 N개의 클라이언트에게 분산하는데 걸리는 시간 Dc-s는,
Dc-s >= max{NF/Us, F/Dmin}
P2P에서,
server transmission : 적어도 하나의 복사본을 업로드 해야한다
- 한 복사본을 보내는데 걸리는 시간 : F/Us
client : 각 클라이언트는 파일 복사본을 다운로드 해야한다.
- 클라이언트의 다운로드 최소 시간은 F/Dmin
clients : 모두 합쳐서 NF bits를 다운로드 받아야 한다.
- 최대 업로드 속도(최대 다운로드 속도 제한)은 Us + Sigma(Ui)이다.
P2P 방식에서 파일 F를 N개의 클라이언트에게 분산하는데 걸리는 시간 Dp2p는,
Dp2p >= max{F/Us, F/Dmin, NF/(Us + Sigma(Ui))}
파일이 분산된 경우 P2P가 더 효과적이다.
P2P file distribution: BitTorrent
BitTorrent는 대규모 파일을 여러 조각(chunks)로 나눠서 네트워크 상에 공유함.
파일을 공유하는 피어들은 각각 다른 chunk를 가지고 있음.
다운로드를 시작하는 클라이언트는 tracker에 등록해서 피어 목록을 얻고, 일부 피어에 연결한다.
다운로드하는 동안 피어는 청크를 다른 피어에게 업로드한다.
피어가 다른 피어들과 청크를 교환하는 도중, 다른 피어들과의 연결을 변경할 수 있다.
접속하는 피어는 언제든지 오고가며 이를 초기화(churn)이라 한다.
Requesting chunks
언제든지 서로 다른 피어들은 파일 청크의 서로 다른 하위 집합을 갖고 있다.
주기적으로 각 피어에게 그들이 갖고 있는 청크 목록을 요청한다.
희귀한 것부터 먼저(rarest first), 누락된 청크를 피어에게 요청한다.
Sending chunks : tit-for-tat
현재 가장 높은 속도로 청크를 보내는 4명의 피어에게 청크를 보낸다. (나한테 청크 주면 나도 청크 줄게!)
- 다른 피어들은 차단되어 청크를 받지 못한다.
- 매 10초마다 상위 4개 피어를 재평가한다.
매 30초마다 다른 피어를 임의로 선택해서 청크를 보낸다.
- 이 피어에게 낙관적으로 언초크(optimistically unchoke) 한다. - 새로운 피어들이 상위 4개 피어중 하나가 될 기회를 부여
- 새롭게 선택된 피어가 상위 4개 피어 중 하나가 될 수 있다.
'학교강의필기장 > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크[9]: Transport-layer services (0) | 2023.04.19 |
---|---|
컴퓨터네트워크[8]: Video streaming and content distribution networks (0) | 2023.04.19 |
컴퓨터네트워크[6]: Domain Name System DNS (0) | 2023.04.19 |
컴퓨터네트워크[5]: E-mail, SMTP, IMAP (0) | 2023.04.19 |
컴퓨터네트워크[4]: Web and HTTP (0) | 2023.04.18 |