1. 클라이언트/서버 이란?
ㅇ 클라이언트 (Client)
- 영어 뜻 자체로는 고객을 의미
. 클라이언트는 1 이상의 서버들이 제공하는 서비스를 사용하는 소비자의 개념
- 클라이언트/서버 모델에서,
. 네트워크를 이용하여 서버(Server)측에 서비스 요청을 의뢰하는 측
- 例) 웹 브라우저, 데스크톱 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버 등
ㅇ 서버 (Server)
- 클라이언트들이 요구하는 각종 서비스를 제공하는 측
. 특정 역할에 특화된 것
- 클라이언트/서버 모델에서,
. 네트워크 상에 구현된 하드웨어 또는 소프트웨어로써,
. 네트워크를 이용하여 클라이언트(Client)측으로부터 서비스의 요청을 받는 측
- 例) 웹서버, 네임서버, 메일서버, 인증서버 등
2. 클라이언트/서버 출현배경
ㅇ 과거에는, 동일 컴퓨터 내에서 호출 및 피호출 프로그램이 상호작용함으로써,
- 이 둘을 굳이 분리할 필요가 없었음
ㅇ 그러나, 컴퓨터 및 네트워크 기술발전에 따라,
- 많은 프로그램을 대신하여, 서비스 제공 또는 자원 관리하는 전문화된 프로그램이 널리 확산되어,
- 이를 서버라 하고 서비스 또는 자원을 의뢰(요청)하는 측을 클라이언트라고 하게됨
3. 클라이언트/서버 모델의 특징
ㅇ 요청-응답의 형태
- 이 모델에서의 통신은 항상 요청-응답의 형태를 취함
- 즉, 클라이언트에 의해서만 시작되고 서버에 의해서는 결코 시작되지 않음
ㅇ 통상, 한 가지 작업을 전담함
- 프린트 서버,고속의 그래픽 서버,데이타베이스 서버,화일 서버,네임 서버,웹 서버 등
ㅇ 동시 요구 처리 필요함
- 서버란 많은 다른 클라이언트들의 동시적인 요구를 처리할 수 있도록 설계된 프로세스 임
ㅇ 클라이언트/서버 환경
- 최종 사용자에게는 많은 장점을 제공하는 반면에,
- 망 운영자에게는 복잡하고 어려운 문제를 끊임없이 제기하게됨
ㅇ 구성 요소 셋
- Client, Server, Network
ㅇ 소프트웨어의 위치
- 변화가 적은 소프트웨어는, 클라이언트측에,
- 변화가 잦은 소프트웨어는, 서버측에 놓음
ㅇ 분산처리
- 클라이언트/서버 모델은 분산협동처리(distributed cooperative processing)
의 특별한 예라고 할 수 있음
- 지능형 동배간 처리에서 한 서버는 여유있는 서버에게 계산 부담을 분배함으로써
서버와 네트워크 특성을 기반으로 하는 분산을 최적화할 수 있음
ㅇ 서버 이중화
- 통상, 안정성을 위해 서버 이중화가 요구됨
4. [소프트웨어] 클라이언트/서버의 TCP/IP 프로토콜
ㅇ 서버용 소프트웨어 例)
- HTTP, FTP, 전자우편(SMTP,POP), TELNET, DNS 등
ㅇ 서버 포트(Port) 관리
- 서버는 클라이언트가 접근하는 초기 포트로써 잘알려진 포트를 사용하고,
- 일단 이 포트를 통해 클라이언트와의 연결이 이루어지면,
- 일반적으로, 서버는 임시 포트(Ephemeral Port)를 생성하여 연결하고,
- 이후에는 데이터 교환이 이렇게 유지되는 연결을 통해 이루어지짐
5. [하드웨어] 서버 형태 구분
ㅇ 서버 형태 구분 : 랙 마운트형 서버, 타워형 서버
ㅇ 서버 등급 구분 : 엔트리 서버, 미들레인지 서버, 하이엔드 서버
ㅇ 서버 아키텍처 구분 : IA 서버 (Intel Architecture,인텔의 x86 계열) 등