Computer Network

[컴퓨터 네트워크] 응용 계층 원리(Principles of Application Layer)

JunsuKim 2022. 9. 22.
728x90

네트워크 응용 서비스

  • 네트워크 통신 서비스를 사용/응용하여 최종 사용자에게 제공되는 서비스
  • 네트워크에 연결된 2개 이상의 호스트에서 동작하는 프로그램으로 구현

네트워크 구성

  • 호스트:: 응용 정보(ex, URL, HTML 페이지)를 교환하고 해석하고 처리
  • 스위치(라우터): 네트워크 장치(호스트)를 연결하고 패킷을 교환

패킷

  • 응용 정보를 효율적인 교환을 위해 작은 크기로 나눈 정보 단위
  • 호스트에서 재조립되어(reassembly) 응용 계층에서 처리

네트워크와 네트워크 응용

  • 의미있는 정보를 주고받는 호스트들에서 동작하는 네트워크 응용
  • 스위치는 응용 정보 처리에 관여하지 않는다.

네트워크 응용 구조

  • 분산 네트워크 응용 프로그램이 작동하는 방식

네트워크 응용 구조 유형

  • 클라이언트-서버 구조(Client-server architecture)
  • P2P 구조(Peer-to-Peer architecture)

Peer - 서로 대등한 관계를 가지는 실체를 표현

클라이언트-서버 구조 동작 방식

  • 항상 클라이언트 응용 프로그램은 요청하고, 서버 응용 프로그램은 응답을 수행

클라이언트(Client)

  • 서버에게 응용 서비스 요청(클라이언트간 통신 안함)
  • 필요할 때만 작동
  • 동적(임시) IP 주소 사용 가능

서버(Server)

  • 다수의 클라이언트의 서비스 요청에 응답
  • 항상 작동(Always-on)
  • 고정 또는 그에 준하는 IP 주소 사용
  • 확장성(scalabillity) 문제

P2P 구조 동작 방식

  • 임의의 호스트간에 직접 통신하고, 각 호스트는 클라이언트 역할과 서버 역할을 동시에 수행한다.
  • 호스트간의 관계가 대등(peer-to-peer)

P2P 구조 장점

  • 서버 의존성이 없다.
  • 구축 및 관리 비용이 낮다.
  • 자가 확장성(Self-scalabillity)

P2P 구조 문제점

  • 보안 취약성(Security)
  • 낮은 신뢰성(Relabillity)
  • 낮은 성능(Perfomance)

네트워크 응용 프로세스와 응용 프로토콜

네트워크 응용 프로세스(application process)

  • 호스트에서 네트워크를 통해 응용 메시지를 교환하며 작동하는 프로그램

응용 프로토콜(application protocol)

  • 네트워크 응용 프로그램 간의 응용 메시지 교환
  • 응용 프로세스의 일부

클라이언트 프로세스(client process)

  • 통신을 개시하는 응용 프로세스

서버 프로세스(server process)

  • 클라이언트의 통신 요청을 기다리는 응용 프로세스

네트워크 응용 프로세스와 트랜스포트 프로토콜

소켓(Socket)

  • 응용 프로세스가 네트워크로 메시지를 송신하고 수신하는 통로 자료ㅛ구조
  • 트랜스포트 계층 상에서 구현

소켓 API(Application Programming Interface)

  • 소켓 자료구조를 사용하여 통신 서비스를 제공하는 프로그램 인터페이스
  • API를 사용하여 응용 프로그램 구현

응용 프로세스 주소

트랜스포트 프로토콜

  • TCP(Transmission Control Protocol)
  • UDP(User Datagram Protocol)

TCP

  • 응용 프로세스간 신뢰 전송
  • 저성능 전송

UDP

  • 응용 프로세스간 비신뢰 전송
  • 고성능 전송

응용 프로토콜과 트랜스포트 프로토콜

e-mail, remote terminal access, Web, file transfer은 중간에 데이터가 손실되면 치명적이기에 TCP를 사용

streaming multimedia, Internet telephony는 중간에 데이터가 어느정도 손실되도 괜찮기에 UDP를 사용하여도 된다.

728x90

댓글