네트워크의 종단.  호스트와 브라우저 등의 애플리케이션이 여기에 속한다

 

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

+ Recent posts