Chapter02. Application Layer
Peer-to-peer architecture
- client가 server가 되기도 한다
- server가 항상 켜져 있을 필요 없다
- Host가 직접 소통하기도 한다 (server를 안 거친다)
- peer는 요구 받기도 요구 하기도 한다 → 다운로드/업로드 모두 한다
- self-scalability : 잘 작동하고 있다고 알려주고, peer가 많아져도 문제 없다고 말할 수 있는 징표, 새로운 peer가 새로운 service capaciry를 가지고 옴
- peer은 간헐적으로 연결되며 IP 주소를 자꾼다
- Ex. P2P 파일 공유, 스트리밍, VoIP
P2P file distribution : BitTorrent
- 상업용
- cloesed protocol
- file distribution에 많이 사용
- file은 256kb chunk로 나누어짐
- torrent의 peer은 file chunk를 보내기도 받기도 함
- peer은 torrent에 들어감 (Tracker을 통해)
- chunk가 없고 축적되기 시작할 것
- tracker에 등록하여 peer의 목록을 가져와 peer의 subset에 연결
- subset of peer = neighbor
- peer가 다운로드 할 때, 다른 peer에게 업로드도 함
- chunk를 교환할 상대 peer가 바뀔 수도 있음
- churn = peer가 들어오기도 나가기도 한다
- peer가 전체 file을 가지면 torrent에 selfishly 떠나거나 altruistically 남을 수 있다
- selfishly : 다른 사람이 내 파일을 못 가져가게
- altruistically : 다들 내 것을 가져 갈 수 있게
- Requesting file chunks
- 어느 순간에 서로 peer들이 서로 다른 chunk의 일부분을 가지고 있음
- 주기적으로 Alice가 다른 peer에게 너 뭐 가졌냐고 물어봐야 함
- Alice가 자신한테 없는 것을 요청함, 그 중에서도 가장 드문 것을 달라고 함
- Sending chuncks : tit-for-tat
- 주고 받는 대상은 끊임없이 변동된다
- Alice는 본인에게 빨리 보내는 사람 4명을 선택하여 자신의 것도 보낸다
- = other peer은 Alice에게 choke 되었다고 표현
- 10초마다 대상을 다시 계산 (choke 4명과 unchoke 1명, 총 5명 사이에서)
- 매 30초마다 다른 peer 중 한 명에게 random하게 chunk를 보냄
- = optimistically unchoke
- 새롭게 다른 peer의 top4에 선택될 수도
'Computer Science > Computer Network' 카테고리의 다른 글
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.7 socket programming with UDP and TCP (1) | 2023.11.02 |
---|---|
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.6 video streaming and content distribution networks (0) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.4 The Domain Name System (0) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.3 Email, SMTP, IMAP (0) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.2 Web and HTTP (1) | 2023.11.02 |