밍경송의 E.B

[네트워크] Application layer- Client-server network, P2P(Peer-to-Peer) network, IPC 본문

CSE/정보통신공학

[네트워크] Application layer- Client-server network, P2P(Peer-to-Peer) network, IPC

m_gyxxmi 2023. 4. 19. 15:50

Client-server Paradigm(클라이언트-서버 네트워크)

: 컴퓨터와 컴퓨터가 통신하는 구조 -----------클라이언트(N) : 서버(1) 구조

[클라이언트 ----- 요청 ----> 서버  ]      ex. 사용자가 구글에 검색

[         ..        <---- 응답 -----     ..    ]     ex. 구글 서버가 검색 결과를 응답해줌

 

*클라이언트-서버 구성 요소

서버

-영구적인(permanent) IP address를 가짐

- always-on host 

  ㄴ서버는 항상 켜져 있어야 함 (언제 어디서 요청이 들어올지 모르기 때문에)

- 데이터베이스 서버, 웹 어플리케이션 서버, 파일 서버, DNS

 

클라이언트

- 다른 클라이언트와 직접적 소통을 하지 않음

- may have dynamic IP addresses

  ㄴ클라이언트는 서버와 다르게 IP 주소가 변경되어도 상관 없음 (항상 클라이언트가 먼저 데이터를 요청하기 때문에 그때만 자신의 IP주소        를 잘 넘겨주면 됨)

- HTTP, IMAP, FTP

 

네트워킹 장치

- 클라이언트와 서버를 연결함 (스위치, 라우터, 게이트웨이, 모뎀 등)

 


*클라이언트-서버 모델의 작동방식

1 클라이언트가 네트워킹 장치에 요청을 제출함

2 네트워크 서버는 요청을 수신하고 처리함

3 서버는 클라이언트에게 응답을 전달함


*클라이언트-서버 모델 장단점

장점

- 중앙화된 컴퓨팅 방식 사용 -> 서버가 모든 접근/데이터를 관리 (보안상 우수, 안전)

- 플랫폼에 구애받지 않음 -> 클라이언트와 서버가 같은 OS를 사용하지 않아도 무관

 

단점

- 한 번에 너무 많은 클라이언트가 요청을 하면 서버가 쥭을 수도 있음 서버 먹통.. -> P2P가 대안!!!


 

P2P(Peer-to-Peer) Architecture

: 정해진 클라이언트, 서버 없이 모든 컴퓨터가 서로 데이터를 주고받을 수 있는 구조

여기서 각 컴퓨터를 Peer(Node) 라고 부릅니다. 모든 컴퓨터가 클라이언트이자 서버가 될 수 있는 것이죠.

Peer는 데이터에 대한 소비자이기도 하고 동시에 공급자이기도 합니다.

*P2P 네트워크 특징

- arbitrary end systems directly communicate (종단 시스템들끼리 직접적인 소통을 할 수 있음)

- self scalability(확장성): 클라이언트 수가 많아지더라도 서비스를 안정적으로 운영 가능

  ㄴ클라이언트-서버 모델에서는 클라이언트 수가 많아지면 서버가 처리해야 하는 양 ↑ (서버 중단 가능)

- Peer의 수가 늘어나는 만큼 서비스할 수 있는 용량도 같이 늘어남

*P2P 네트워크의 장/단점

장점

- 사용자 간 직접 통신하는 개념이기 때문에 단일 시스템에 의존x

- 네트워크를 구축하기 위한 많은 하드웨어가 필요하지 않음

 

단점

- 검증되지 않은 사용자와의 통신 과정에서 안전성 ↓

- 조직적으로 파일을 유지, 관리하는 데에 어려움이 존재


 

 

[Client-server network와 P2P network 비교]

출처:&nbsp;https://koosco.tistory.com/88


Process communicating 방법

* Process: program running within a host (하나의 호스트 내에서 실행되는 프로그램)

 

1 동일 호스트 내  -> IPC(Inter Process Communication)을 이용해 소통함

2 다른 호스트 내  -> exchanging messages 를 통해 소통함

 

*Client process: communication을 시작하는 process

*Server process: contact 받기를 기다리는 process

 

☆ applications with P2P architectures have client process & server process 

ㄴ저는 이 process라는 말 때문에 좀 혼동이 있었는데,실제로 p2p는 종단간 시스템의 교류가 맞지만, 그 교류가 사실은 특정 어플리케이션을 실행해서 서로 교류하는 것이기 때문에, 종단간 시스템에서 실행되고 있는 프로세스들 간의 통신을 하는 것이라고 생각하면 될 것 같아요!

그릐고 배웠듯 P2P는 때에 따라 클라이언트나 서버 둘 다로 동작할 수 있으니까 ! ! 고 정도만 이해합시다

 

...

 

자 그럼 다음 시간에는 socket programming에 대해 다뤄보겠숩니다..... :))))

 

 

 

 

 

*자료 참고

https://www.geeksforgeeks.org/inter-process-communication-ipc/

https://codechan25.tistory.com/34

https://koosco.tistory.com/88

https://change-words.tistory.com/entry/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%84%9C%EB%B2%84-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-P2P%EC%99%80%EC%9D%98-%EC%B0%A8%EC%9D%B4