본문 바로가기

학교 수업/전공 수업

[컴퓨터 네트워크]분산시스템과 분산시스템의 종류,client-server 시스템에서 server와 client, cloud computing, addressing processes, 응용 프로그램에 필요한 특성, 네트워크 응용 프로그램들의 예시

안녕하세요 소프트웨어 공부하는 레오존입니다.

이번 포스팅에서 분산시스템과 분산시스템의 종류, client-server 시스템에서 server와 client, cloud computing, addressing processes, 응용 프로그램에 필요한 특성, 네트워크 응용 프로그램들의 예시에 대해 정리해보도록 하겠습니다.

 

 

 

 

 

분산시스템이란

 

하나의 컴퓨터에서 처리하지 않고 네트워크를 통해 나눠서 하겠다는 것이 분산 시스템입니다.

시스템이란 것은 어떠한 목적을 이루기 위해서 여러 개의 구성요소들이 협력해서 일을 효율적으로 해내는 체계를 말합니다. 

예를 들어, 소프트웨어의 경우, user interface 파트, data 저장하는 파트, 데이터 처리하는 파트 세가지 파트로 나뉩니다. 또한, 컴퓨터 시스템의 경우, 크게 하드웨어, 소프트웨어, 네트워크로 나눌 수 있습니다.

비록 컴퓨터 안에서는 나눠서 업무를 처리하지만 사용자 입장에서는 컴퓨터 안에서 일을 나눠서 처리한다는 느낌을 받으면 안되겠죠. 그럼 분산 시스템이 될 수 없습니다. 

 

 

 

 

분산시스템의 종류

 

분산 시스템의 구조를 크게 두가지로 나누는데 client-server 시스템, peer-to-peer 시스템으로 나눌 수 있습니다.

 

첫번째는 client-server 시스템으로, 전통적으로 예전부터 널리 사용되어 왔습니다. client-server 시스템은 역할이 명확히 정해져 있는 시스템입니다. client 일을 하는 컴퓨터가 정해져 있고, server 일을 하는 컴퓨터가 정해져 있습니다. client쪽에서 요청을 하고 server쪽에서는 응답을 합니다. 중앙에 있는 server에 여러 client들이 연결되어 있기 때문에 server에 집중되어 있습니다. 때문에 server가 하는 일이 많습니다. client-server 시스템은 자료를 server에서만 관리하면 되기 때문에 관리하기 편하다는 장점이 있습니다. 하지만 server에 문제가 생길 경우나 동시에 많은 요청으로 인해 트래픽이 걸린 경우엔 문제가 발생할 수 있습니다.

 

두번째는 peer-to-peer 시스템으로, client-server시스템에 비해 더욱 분산된 형태를 지니고 있습니다. server 일을 하는 컴퓨터, client 일을 하는 컴퓨터가 정해져 있는 고정된 형태가 아니고 경우에 따라 client가 되기도, server가 되기도 합니다. 

p2p의 가장 큰 장점은 확장성(scalability)입니다. p2p는 인원이 늘어나더라도 특정한 부분에 집중되지 않고 분산시킬 수 있기 때문에 부담이 덜 가질 수 있는 특징을 지닙니다.

 

 

 

client-server 시스템에서 server와 client

 

기본적으로 server는 항상 대기를 하고 있어야 합니다. 언제 요청이 올지 모르기 때문입니다. 이 말은 곧 고정된 ip를 가지고 있다는 의미이기도 합니다. 처리할 일이 많고 집중될 가능성이 높기 때문에 보통 데이터 센터에 큰 서버를 별도로 모아 운영하게 됩니다. 하지만 큰 서버를 운영할 때 발생하는 여러 가지 문제들이 존재합니다. 전기소모도 심하고 이전에 카카오에서 일어난 화재사건 과 같은 문제가 발생할 수 있습니다. 이러한 문제점을 해결하기 위한 방법이 cloud computer(클라우드 컴퓨터)을 사용하는 것인데, 각각의 데이터센터를 운영하기 보다는 서버를 운영하고 도와주는 역할을 전담하는 컴퓨터들을 클라우드 컴퓨터라고 합니다.

 

client는 ip가 고정되지 않은 동적 ip주소를 가집니다. 또한 client-server 시스템에서 client는 절대 client와 통신하지 않습니다. client-server 시스템에서 client는 오직 server와 소통하게 됩니다.

 

 

 

cloud computing

 

cloud computing은 말 그대로 많은 컴퓨터가 뭉쳐져 있는 형태로, cloud compuing의 서비스 모델 종류를 크게 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service) 세가지로 나눌 수 있습니다.

사용자들은 자신의 필요에 따라 서비스 모델을 활용할 수 있는데, 세 가지 서비스 모델 각각의 특징은 아래와 같습니다.

 

IaaS(Infrastructure as a Service): 컴퓨터 및 데이터 저장공간을 제공

PaaS(Platform as a Service): 어플리케이션 개발과 관리 환경을 제공

SaaS(Software as a Service) : 특정 소프트웨어 제공

 

cloud computing을 사용하면 비용이 절감되고 높은 가용성(정보 시스템이 정상적으로 사용 가능한 정도)을 지니기 때문에 

앞으로 cloud computing의 사용이 확대될 것으로 예상됩니다.

 

 

 

 

addressing processes 

네트워크에서 통신을 하기 위해선 ip주소가 필요합니다. ip주소 는 보통 32bit의 주소체계를 갖는데, ip주소는 기본적으로 네 단위의 숫자로 이루어져 있습니다. 숫자의 앞 쪽 부분은 네트워크 주소, 뒷부분은 호스트 번호로 이루어져 있습니다.

또한, 프로세서나 서비스가 통신하기 위해서는 ip주소뿐만 아니라 포트 번호까지 알아야 합니다. 

컴퓨터 안에는 하나의 프로세서가 아니라 여러 개의 프로세서가 돌아가고 있습니다. 비유적으로 이야기하면 집 주소는 같은데 호실이 다른 것으로 생각할 수 있습니다. 때문에 여러 개의 프로세서를 구분짓기 위한 포트 번호를 사용해야 합니다.

ip 주소와 포트 번호를 알게 되면 내가 원하는 응용 프로그램까지 접근이 가능하게 됩니다. 

일반적으로 포트번호는 6만개 정도 사용할 수 있고 운영체제가 포트 번호를 할당해 줍니다.

또한, 포트 번호는 고정적인 목적에 의해 배정된 게 존재합니다. 대표적으로 웹서버의 경우 포트 번호가 80, 이메일의 경우 25 의 포트 번호를 갖습니다.

 

 

 

응용 프로그램에 필요한 특성

 

application 계층에 많은 서비스가 존재하는데 프로토콜마다 특성이 다르기 때문에 응용 프로그램 입장에서는 어떤 특성이 필요한지에 대해 정리해보도록 하겠습니다.

 

  • data integrity(무결성)

파일 형태는 데이터 신뢰성이 중요한 반면, 음성이나 동영상 같은 경우, 어느정도 손실을 감안할 수 있습니다.

 

  • timing(시간)

데이터 같은 경우 시간이 조금 늦어도 문제가 안되는 반면, 전화를 하는 경우(음성의 경우) 정해진 시간이 중요합니다.

 

  • throughout(전송률)

일반적으로 전송률은 데이터의 경우 늦어도 상관없으나, 동영상 같은 경우 전송률이 중요합니다. 예를 들어 유튜브 영상을 보는 경우 전송률에 문제가 생기면 버퍼링이 걸려 영상을 보는 게 불편하겠죠. 

 

  • security(암호화)

비밀번호, 신용카드 정보와 같은 개인정보들은 유출되지 않도록 보호해야 합니다.

 

 

 

네트워크 어플리케이션들

 

현재 네트워크 응용 프로그램은 전세계에서 다양하게 사용되고 있습니다. 그 중에서도 대표적인 예시들은 아래와 같습니다.

 

  • e-mail
  • ftp (인터넷 상에서 파일을 전송하기 위해 사용되는 프로토콜)
  • web
  • text messaging (예를 들어 카카오톡이 text messaging에 포함됩니다.)
  • remote login (원격제어)
  • p2p file sharing (음악이나 영화같은 파일을 공유하는 네트워크)
  • multi-user network games (다중 사용자 네트워크 게임)
  • streaming storedvideo (비디오 스트리밍)
  • skype
  • zoom
  • social networking (인스타그램, 페이스북 등등)
  • searching engine (검색엔진이라는 뜻으로 구글, 네이버 등이 searching engine입니다.)

 

이 외에도 다양한 네트워크 어플리케이션들이 존재합니다.

 

 

 

 

지금까지 분산시스템과 분산시스템의 종류, client-server 시스템에서 server와 client, cloud computing, addressing processes, 응용 프로그램에 필요한 특성, 네트워크 어플리케이션들의 예시에 대해 정리해보았습니다.

감사합니다.