본문 바로가기

프로그래밍/네트워크

네트워크 (3) - client-server, P2P(peer to peer)

저번 우리는 네트워크 구조에 대해 알아보았다. 이번에는 애플리케이션 구조에 대해 알아보자.

 

애플리케이션 개발자 관점에서 네트워크 구조는 고정되어 있고 해당 애플리케이션에 특정 서비스 집합을 제공한다.

그러나 애플리케이션 구조는 개발자가 설계하며, 이들이 다양한 종단 시스템에서 어떻게 조직 되어야 하는지 알려준다.

 

개발자는 현재 두 가지 잘 알려진 구조

client-server

P2P(peer-to-peer)

구조 중 하나로 작성할 것이다.

 

 

 


client-server

Client-server항상 켜져 있는 호스트를 Server로 이 서비스는 client의 요청을 받는다. ( 비대칭적 )

따라서 클라이언트끼리 직접적으로 소통하지 않는다. 그렇기에 반드시 server를 통해 데이터를 주고 받는다.

항시 운영이 되어야 하기 때문에 고정형 IP 주소를 사용하고

데이터센터가 운영된다.

 

P2P

P2P는 peer라는 연결된 호스트 쌍이 서로 직접 통신하도록 한다.

특정 서버를 통하지 않고 피어끼리 통신하므로 peer-to-peer라고 한다.

그래서 peer 의 개수가 많아지면 공유하는 디스크의 개수가 많아지고 공유하는 데이터가 많아진다.

이를 자가 확장성(self-scalability) 이라 한다.

항상 서버가 켜져 있다는 보장이 없기 때문에 관리가 더욱 복잡해진다는 단점이 있다.