Computer/서버 & 네트워크

클라이언트 - 서버 모델

에린_1 2024. 2. 24. 01:12
728x90

Client - Server Model

  • 클라이언트 - 서버 모델에서 클라이언트는 서비스를 요청하는 역할을 하고, 서버는 이러한 요청에 대해 서비스를 제공하는 역할을 한다. 서버는 네트워크상에서 서비스를 제공하기 위해 항상 실행되어 대기 상태를 유지한다.
  • 웹 서버, 이메일 서버, 데이터베이스 서버 등이 있습니다. 대부분의 웹 기반 응용 프로그램이 이 모델을 따른다.
  • C언어로 네트워크 응용 프로그램을 개발할 때, 소켓 프로그래밍을 통해 클라이언트와 서버 간의 통신을 구현한다. 클라이언트는 서버에 연결을 요청하고, 서버는 이를 수락하여 통신 세션을 생성한다.
  • 운영체제는 네트워크 스택과 소켓 API를 제공하여 클라이언트와 서버 응용프로그램이 네트워크 통신을 수행할 수 있도록 지원한다.
  • 네트워크 보안, 연결 관리, 데이터 전송 최적화 등이 중요한 고려 사항이다.

Peer to Peer(P2P)

  • 피어투피어 모델에서는 모든 노드가 동등한 역할을 수행하며, 클라이언트와 서버의 역할이 고정되어 있지 않다. 각 노드는 서비스를 요청하고 제공할 수 있다.
  • 파일 공유 시스템, 분산 컴퓨팅 프로젝트, 일부 메신저 시스템등이 있다.
  • P2P 응용프로그램을 개발할 때도 소켓 프로그래밍을 사용하지만, 연결 관리와 데이터 교환 로직이 클라이언트 - 서버 모델과 다를 수 있다. 네트워크 상의 모든 노드가 서버와 클라이언트 역할 을 동시에 수행할 수 있도록 구현한다.
  • 운영체제는 P2P 모델을 지원하기 위해 NAT 트래버설 기술, 방화벽을 통과하는 기술 등을 제공할 수 있다. 또한, 데이터의 직접적인 교환을 지원하기 위한 네트워킹 기능을 제공한다.
728x90

'Computer > 서버 & 네트워크' 카테고리의 다른 글

HTTP(Hyper Text Transfer Protocol)  (0) 2024.02.25
웹 서버  (0) 2024.02.25
파일 식별자File Descriptor(FD)  (0) 2024.02.25
소켓/소켓 API  (0) 2024.02.25
OSI 7계층 & TCP/IP 4계층  (0) 2024.02.23