0.Introduction

- 책에서 강조하는 핵심은 다음과 같다.
- 네트워크 애플리케이션 개발의 핵심은 서로 다른 end system에서 돌아가는 프로그램들이 네트워크로 통신되도록 하는 것이다.
- 라우터/스위치 같은 network-core 장비에 애플리케이션 코드를 넣지않는다.
- 코어 장비는 애플리케이션 계층에서 동작하지 않고 end system에만 애플리케이션을 두는 설계가 폭발적인 서비스 확산을 가능케 했다.
- Figure 2.1에서 파란 화살표는 "애플리케이션 레벨의 논리적 통신"을 보여주는데,
- 실제 경로는 ISP/데이터센터/모바일/홈 네트워크를 복잡하게 지나가지만,
- 애플리케이션이 보기에 통신 주체는 end systems이라고 볼 수 있다.
- 즉, 코어는 범용 전달(패킷 포워딩)에 집중하고, 기능 혁시은 엣지에서 일어난다고 볼 수 있다.
1. Network Application Architectures: Client-Server vs P2P

1.1. Client-Server
- 항상 켜져 있는 서버(always-on server)가 다수의 클라이언트 요청을 처리한다.
- 클라이언트들끼리는 보통 직접 통신하지 않고, 서버를 통해 간접적으로 상호작용한다.
- 서버는 고정되고 well-known한 IP 주소를 가져서 클라이언트가 "항상 연락 가능"하다
- 규모가 커지면 단일 서버로는 감담이 안 돼서 데이터센터(Virtual sercer)를 사용한다.
1.2. P2P(Peer-to-Peer)
- 데이터센터의 전용 서버 의존을 최소화하고, peers간 직접 통신으로 서비스 제공한다.
- 장점: self-scalability(peer가 workload를 만들면서 동시에 service capacity도 제공)
- 단점: 보안/성능/신뢰성이 분산 구조 때문에 어렵다.
'CS Study > Network(네트워크)' 카테고리의 다른 글
| [Network] [1-6] Networks Under Attack (0) | 2026.01.19 |
|---|---|
| [Network] [1-5] Protocol Layers and Their Service Models (0) | 2026.01.19 |
| [Network] [1-4] Delay, Loss, and Throughput in Packet-Switched Networks (1) | 2026.01.16 |
| [Network] [1-3] The Network Core (0) | 2026.01.16 |
| [Network] [1-2] The Network Edge (0) | 2026.01.16 |