밍경송의 E.B
[네트워크] Application layer- Client-server network, P2P(Peer-to-Peer) network, IPC 본문
[네트워크] Application layer- Client-server network, P2P(Peer-to-Peer) network, IPC
m_gyxxmi 2023. 4. 19. 15:50Client-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 비교]
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/
'CSE > 정보통신공학' 카테고리의 다른 글
[네트워크] HTTP, HTTP request message (1) | 2023.04.20 |
---|---|
[네트워크] Socket, Socket programming (스트림 소켓, 데이터그램 소켓) (0) | 2023.04.19 |
[네트워크] TCP와 UDP, 그리고 IP (TCP Header, UDP Header, IPv4, IPv6) (0) | 2023.04.19 |
[네트워크] Internet Protocol Stack이란? (+ISP란) (0) | 2023.04.18 |
[네트워크] network core, router, packet/circuit switching (0) | 2023.03.29 |