애플리케이션 계층

Dayon·2023년 10월 30일
0

참고한 도서
[컴퓨터 네트워크 하향식 접근 제 8판] 퍼스트북


2.1 네트워크 애플리케이션의 원리

애플리케이션 구조는 네트워크 구조와 다르다. 애플리케이션 개발자 관점에서 네트워크 구조는 고정되어 있고 해당 애플리케이션에 특정 서비스 집합을 제공한다.

반면에 애플리케이션 구조는 애플리케이션 개발자가 설계하며, 어떻게 조직되어야하는지 알려준다.


2.1.1 클라이언트-서버 구조

  • 서버 = 항상 동작하고 있는 호스트, 고정된 IP주소라는 잘 알려진 주소를 갖는다.
  • 클라이언트 = 서비스의 시작 요청, 클라이언트의 IP주소는 계속 바뀐다.
  • 클라이언트 끼리 통신을 할수 없고 서버를 거쳐 통신 할 수 있다.
  • 서버가 클라이언트들로 부터 오는 모든 요청에 다 응답할 수 없다, 많은 수의 호스트를 갖춘 데이터 센터가 강력한 가상의 서버를 생성하는 역할로 사용된다. 보통, 10만개 정도의 서버를 갖추고 있다.

2.1.2 P2P 구조

  • 항상 켜져있는 인프라스트럭쳐 서버에 최소로 의존한다.
  • 애플리케이션은 peer라는 간헐적으로 연결된 호스트 쌍이 서로 직접 통신하게 한다.
  • 특정 서버를 통하지 않고 피어가 피어간에 통신을 하므로 peer to peer 라고 한다.
  • 가장 인기 있는 p2p 애플리케이션은 파일 공유 애플리케이션인 비트토렌트 이다.
  • 서버가 항상 켜져 있을 필요가 없다.
  • 데이터 센터 등이 필요 없으므로 비용 효율적이다.

2.1.3 프로토콜

  • 소켓(socket) : 프로세스는 소켓을 통해 네트워크로 메시지를 주고받는다. 애플리케이션과 네트워크 사이의 API 라고도 한다.
  • 트랜스포트 계층에 대한 애플리케이션 개발자의 통제
    1. 트랜스포트 프로토콜의 선택
    2. 최대 버퍼와 최대 세그먼트의 크기 같은 트랜스포트 계층 매개 변수 설정

프로세스가 패킷을 다른 프로세스로 보내기 위해서는 수신 프로세스가 주소를 갖고 있어야 하며, 수신 프로세스를 식별하기 위해서는 호스트의 주소와 그 목적지 호스트 내의 수신 프로세스를 명시하는 식별자가 필요하다.

  • host의 프로세스 구분을 위해서는 IP주소와 port 번호가 필요하다.

  • 애플리케이션 계층의 프로토콜 정의

    → 메시지 유형, 메시지의 의미, 언제 어떻게 보낼 것인가

    • 오픈 프로토콜 : IETF에서 만든 프로토콜 RFC, 모두가 접근 가능하다 (HTTP, SMTP, IMAP..)
    • propriety 프로토콜

2.1.4 TCP vs UDP

TCP 서비스

  • 신뢰성 있는 데이터 전송
  • sender와 receiver 간의 데이터 흐름 제어
  • 네트워크 혼잡 제어
  • 시간, 처리율, 보안 보장 X
  • 연결 지향형

UDP 서비스

  • 신뢰할 수 없는 데이터 전송
  • 가장 간단한 전송 프로토콜 (흐름제어, 혼잡제어, 시간, 처리율, 보안 보장 모두 X)


클라이언트-서버 사진

p2p 사진

profile
success is within reach, allow yourself time

0개의 댓글