Application architectures
Application architectures는 두가지가 있다.
1. client-server
2. peer-to-peer(P2P)
Client-Server
Client-server 구조는 client와 server간에 데이터를 주고받는 형태이며 client는 데이터를 요청해서 받는 쪽이고, server는 데이터를 보내는 쪽이다.
Server
- client가 언제 데이터를 요청할 지 모르기 때문에 server는 항상 ON상태읻.
- client가 같은 IP주소로 정보를 요청하므로 server의 IP주소는 고정되어 있다.
- data center(cloud 기반)를 통해서 서버가 운용되는 경우도 있다.
Client
- 시간 간격을 두고 일어나는 방식(간헐적)으로 연결된다.
- 일반적으로 동적 IP주소를 가진다.(IP주소가 충분하지 않기 때문에)
- Clients끼리 직접적으로 communication을 못한다. 반드시 server를 통해서 데이터를 주고받는다.
Peer-to-Peer(P2P)
P2P방식은 서로 동등한 Peers(end systems)끼리 직접적으로 communication을 해서 정보를 주고 받는 방식이다. 새로운 peers가 나타나면 스스로 규모가 늘어나며 P2P link가 많아진다. 이것을 self scalability(자기 확장성)라고 한다.
<특징>
- server같이 항상 ON되어 있는 것이 없다.
- peers는 IP주소를 변경할 수 있다. 새로운 IP주소가 부여 된 상태여도 여전히 P2P link를 유지하고 있다.
*제약조건: 사용자의 IP주소가 동적으로 바뀌면 P2P 네트워크를 뚫고 들어가지 못하는 경우가 있다. 그래서 네트워크 환경에 따라 P2P가 될수도 안될수도 있다.