[CH.02] Application의 구조

다양한 application의 구조에 대하여 알아보자.

 

1. Server-Client

Server

  • 서버는 항상 켜져 있는 호스트(always-on Host)이다. 모든 서버는 호스트이지만, 모든 호스트가 서버인 것은 아니다. → 네트워크에 연결이 확립된 모든 장치는 호스트의 자격이 있는 반면, 다른 장치(클라이언트)로부터의 연결을 수락하는 호스트만 서버가 될 수 있다.
  • 영구적으로 고정된 주소 값을 가지며, 이를 IP address라 한다. 각 Server를 IP 주소로 구분한다.

 

Client

  • 서버와 통신한다.
  • 클라이언트 간에 직접 통신하진 않는다.
  • 유동 IP(dynamic IP) 주소를 가진다.(고정 IP를 사용할 수도 있다.) → Internet을 사용할 시점에 받아온다.
  • 항상 연결되어 있지 않고, 간헐적으로 통신할 수 있다.
  • e.g. HTTP, IMAP, FTP


2. Peer-to-Peer(P2P)

  • 항상 켜져 있는 서버(no always-on server)가 없다.
  • 임의의 end-system들이 직접적으로 통신한다.
  • 각 peer들이 서비스를 요청하기도 하고, 제공받기도 한다.
  • Peer들은 간헐적으로 연결되고 IP 주소를 변경한다.
  • 관리가 복잡하고 어렵다.
  • e.g. P2P file sharing


3. Processes Communicating

호스트 내에서 실행 중인 program을 Process라 한다.

  • 같은 호스트 내에서 두 프로세스가 OS에서 정의한 IPC(Inter-process communication)를 이용해 통신한다.
  • 다른 호스트 간의 프로세스들은 메세지(Message)를 교환하여 통신한다.
  • Client process : 통신을 시작하는 process
  • Server process : 세션을 시작하기 위해 접속을 기다리는 process
  • P2P 구조의 application들은 클라이언트 프로세스와 서버 프로세스를 가진다.

4. Sockets

Process는 소켓을 통해 네트워크로 메세지를 주고받는다.

Host의 application-layer와 transport-layer 간의 인터페이스

 

소켓을 문으로 비유하면, 보내는 과정(sending process)은 메세지를 문 밖으로 밀어내는 것이다.

메세지를 받기 위해, process는 반드시 식별자(identifier)가 있어야 한다. Host device는 유니크한 32-bit IP 주소를 가지고 있다.

 

Q. 프로세스를 식별하기 위해 프로세스가 실행되는 호스트의 IP 주소로 충분한가?

A. No. 많은 프로세스들은 같은 호스트에서 실행될 수 있다.

 

식별자(identifier)는 IP 주소와 호스트의 프로세스와 연관된 port number를 포함한다.

→ 서버가 동작하고 있는 IP 주소port 번호를 반드시 알아야 한다.


App은 어떤 transport 서비스가 필요할까?

App이 필요한 transport service에는 다음과 같은 것들이 있다.

1. Data integrity(데이터 무결성)

  • 완전한 수명 주기를 거치며 데이터의 정확성과 일관성을 유지하고 보증하는 것이다.
  • File transfer, Web transactions.. 과 같은 몇몇 app들은 100% 신뢰되는(reliable) 데이터 전송을 요구한다. → TCP
    • TCP를 사용하면 시간은 늘어나지만, data가 더 정확하다.
  • 다른 app들은 약간의 손실(loss)을 용인한다. → UDP

2. Timing

  • 인터넷 전화, 멀티플레이 게임... 과 같은 app들은 지연시간(delay)이 거의 없어야 한다.
    • 속도는 네트워크의 상황에 따라 다르기 때문에, 제어(control)할 수 없다.

3. Throghput(처리량)

  • 주어진 시간에 얼마나 많은 data를 수신할 수 있는가? 에 대한 문제이다.
  • 단위 시간당 처리할 수 있는 업무 단위량

4. Security

일반적인 app들에서 필요한 transport service를 예로 들면 다음과 같다.


 

 

 

 

 

Internet의 transport Protocol service

Internet의 transport protocol service에는 TCP, UDP 두 가지가 있다.

TCP

  • 송·수신 프로세스 사이의 reliable 한 전송이다.
  • Flow control 
    • 받을 수 있는 buffer의 크기가 제한되어 있기 때문에, 받을 수 있는 속도 이하로만 보내야 한다.
  • Congestion control
    • 네트워크로 들어가는 정보 소통량을 조절하여 네트워크가 혼잡해지지 않도록 조절하는 것이다.(3장에서 자세히)
  • Connection-oriented(연결 지향)
    • 클라이언트 프로세스와 서버 프로세스 사이에 setup이 필요하다.
  • 제공하지 않는 것
    1. timing
    2. minimum throughput guarantee
    3. security

 

UDP

  • 송·수신 프로세스 사이의 unreliable 한 전송이다. → 보낸 것과 받은 것이 다를 수 있다.
  • 제공하지 않는 것
    1. timing
    2. throughput guarantee
    3. security
    4. reliability
    5. flow control
    6. congestion control
    7. connection setup

 

application layer protocol은 메세지화 되어있다.

'컴퓨터망' 카테고리의 다른 글

[Network] Network layer  (0) 2022.07.04
[CH.02] Web & HTTP  (0) 2022.04.14
[CH.02] Application Layer  (0) 2022.04.12
[CH.01] Protocol Layers, Service models  (0) 2022.04.11
[CH.01] Network Security  (0) 2022.04.10