네트워크의 종단. 호스트와 브라우저 등의 애플리케이션이 여기에 속한다
1. Network Architecture
① 클라이언트-서버(Client-Server) 모델
- 클라이언트(Client) : 네트워크를 통해 서버측에 접속하여 서비스를 요청하고 제공받는다.
- 서버(Server) : 네트워크를 통해 클라이언트로부터 요청을 받아 서비스를 제공한다.
- 서버가 다수의 클라이언트로부터 요청을 받아 이를 처리하고 결과를 반환하는 형태
- 중앙 서버가 서비스와 데이터를 전적으로 관리하기 때문에 네트워크 구성 및 유지/보수가 효율적
- 모든 부담이 중앙 서버에 집중되기 때문에 중앙 서버에 대한 공격을 허용하게 될 경우 치명적인
상황으로 이어질 수 있다. 이를 막기위한 보안 솔루션이나 백업 등에 추가비용이 발생할 수 있다.
② P2P(Peer to Peer) 모델
- 서비스를 제공하는 측과 요청하는 측이 비대칭적으로 존재하는 클라이언트-서버 모델과 달리
연결된 모든 호스트가 서비스를 제공하는 측이면서 동시에 서비스를 요청하는 측이 되는 모델 - 하나의 서버에 부담을 몰아주는 방식이 아니기 때문에 연결된 호스트가 늘어날 수록 트래픽과
소모 자원을 분산시킬 수 있다는 장점이 있다. - 기능의 추가나 업데이트 관리가 어려우며 호스트간의 전송 속도 차이로 인해 정보 불일치나
성능 저하 등의 문제가 발생할 수 있다.
2. Protocol
① 프로토콜(Protocol)
- 네트워크에서의 Protocol이란 네트워크상에서의 통신을 위해 맺은 약속, 규약을 의미한다.
- TCP, IP, UDP, HTTP, SMTP 등의 마지막 P는 모두 Protocol의 약자
② 연결지향(Connection Oriented) 서비스 - TCP(Transmission Control Protocol)
- 서로 통신할 호스트간에 연결을 확립한 후 통신하는 방식. 네트워크 통신에 있어 여러 기능을 제공
- reliable, in-order byte stream data transfer : 데이터의 순서유지, 데이터의 전달을 확인하고 유실시 재전송
- flow control(흐름 제어) : 수신 측의 처리속도에 맞춰 데이터의 전송 속도(패킷의 전달 갯수) 조절
- congestion control(혼잡 제어) : 네트워크망 내의 데이터의 전송 속도 조절을 통해 네트워크의 오버플로를 방지
③ 비연결지향(Connectionless) 서비스 - UDP(User Datagram Protocol)
- 호스트간 연결을 확립하지 않고 통신하는 방식. 연결지향 서비스에서 제공하던 기능을 제공하지 않음
- 흐름제어, 혼잡제어, 데이터의 신뢰성과 순서유지를 모두 지원하지 않음
- 용도
- 데이터의 유실이 치명적이지 않으며 실시간으로 빠르게 데이터를 전송할 필요가 있는 경우에 사용
- broadcast 나 multicast 등 다수와의 통신이 이뤄질 경우 연결 확립이 불가능하기에 UDP가 사용됨
- 화상회의 등이 대표적인 예시(음성과 영상의 실시간 전송)
'CS > 네트워크' 카테고리의 다른 글
#5 Application Layer 2 - HTTP (0) | 2021.11.01 |
---|---|
#4 Socket Programming (0) | 2021.10.29 |
#3 Application Layer 1 - 소켓(Socket) (0) | 2021.10.28 |
#2 OSI 7계층 (0) | 2021.10.28 |
#1 네트워크 구성 2 - Network Core (0) | 2021.10.28 |