애플리케이션 계층

기운찬곰·2020년 10월 7일
0

Computer Science

목록 보기
23/27

🚀 애플리케이션 계층

응용 프로그램 계층은 컴퓨터 네트워크에서 가장 중요하고 가장 눈에 띄는 계층입니다. 애플리케이션은 이 계층에 존재하며 사용자는 네트워크를 통해 해당 애플리케이션과 상호작용합니다.


🌹 애플리케이션 구조

네트워크 응용 프로그램을 구성하는 데 사용되는 두 가지 중요한 모델이 있습니다. 클라이언트-서버 모델과 P2P 모델입니다.

클라이언트-서버 아키텍처

첫 번째이자 가장 오래된 모델은 클라이언트-서버 모델입니다. 클라이언트는 요청을 보내고 서버는 작업을 수행하고 응답을 반환합니다.

웹 서버가 가장 대표적인 클라이언트-서버 아키텍처를 따르고 있습니다.

  • 웹 서버는 클라이언트 호스트에서 실행되는 브라우저의 요청을 서비스합니다.
  • 웹 서버가 클라이언트 호스트로부터 개체에 대한 요청을 받으면 요청 된 개체를 클라이언트 호스트로 보내 응답합니다.

P2P 아키텍처

P2P 모델은 네트워크 애플리케이션을위한 또 다른 가능한 아키텍처로 등장했습니다.

피어(Peer)라고하는 간헐적으로 연결된 호스트 쌍 간의 직접 통신을 할 수 있습니다. 피어는 서비스 제공 업체의 소유가 아니라 사용자가 제어하는 데스크톱 및 랩톱이며 대부분의 피어는 가정, 대학 및 사무실에 있습니다. 모든 피어는 서버와 클라이언트로 작동하며 두 역할을 모두 수행할 수 있습니다.

다음과 같은 대표적인 특징이 있습니다.

  • 자가확장성 : 각 피어들은 파일을 다른 피어에게 분배함으로써 그 시스템에 서비스능력을 추가한다.
  • 비용효율적 : 일반적으로 서버 기반구조와 서버대역폭을 요구하지 않기 때문에 비용효율적이다.

🪁 소켓을 통한 프로세스 통신

프로세스

실제 통신하는 것은 프로그램이 아닌 프로세스입니다. 두 개의 서로 다른 최종 시스템의 프로세스는 컴퓨터 네트워크를 통해 메시지를 교환하여 서로 통신 합니다.

그리고 통신을 초기화(다른 프로세스와 세션을 시작하려고 접속을 초기화)하는 프로세스를 클라이언트 프로세스라 하고, 세션을 시작하기 위해 접속을 기다리는 프로세스를 서버 프로세스라고 구분할 수 있습니다.

  • 클라이언트 프로세스 : 웹 브라우저, 파일을 내려받는 피어를 의미
  • 서버 프로세스 : 웹 서버. 파일을 올리는 피어를 의미

소켓(Sockets)

프로세스는 소켓을 통해 네트워크로 메시지를 보내고 받습니다. 소켓은 호스트의 애플리케이션 계층과 트랜스포트 계층 간의 인터페이스입니다.


주소(Addresses)

메시지를 받으려면 프로세스에 식별자가 있어야합니다.

프로세스가 실행되는 호스트의 IP 주소는 프로세스를 식별하는 데 충분할까요? 아닙니다. 동일한 호스트에서 여러 프로세서를 실행할 수 있기때문입니다.

따라서 한 호스트에서 실행중인 프로세스가 다른 호스트에서 실행중인 프로세스로 패킷을 보내려면 수신 프로세스에 다음 주소 가 있어야합니다

  • 호스트 주소 (IP)
  • 대상 호스트에서 수신 프로세스를 지정하는 식별자 (포트번호)

예를 들어 https://velog.io/ 웹 서버에 HTTP 메시지를 보내려면 다음을 수행해야합니다.

  • IP 주소 : 아이피 주소
  • 포트 번호 : 443 (https 이므로)

🎁 애플리케이션이 이용가능한 트랜스포트 서비스

인터넷을 포함한 많은 네트워크들은 하나 이상의 트랜스포트 프로토콜을 제공합니다. 따라서 우리는 사용 가능한 트랜스포트 프로토콜 중 하나를 선택하여야 합니다. (= 우리가 여행을 하기 위해 기차 혹은 비행기를 선택하는 것과 마찬가지)

이때 살펴봐야할 것은 크게 4가지 서비스입니다.

  • 신뢰적 데이터 전송(=데이터 무결성) : 패킷은 살펴본것처럼 컴퓨터 네트워크에서 손실될 수 있습니다. 경우에 따라서는 이런 데이터 손실은 위험한 결과를 초래할 수 있기 때문에 상황에 맞는 서비스를 이용해야 합니다.
  • 처리량(throughput) : 두 프로세스간 통신 세션에서 송신 프로세스가 수신 프로세스로 비트를 전달 할 수 있는 비율을 의미합니다.
  • 시간(timing) : 일부 앱 (예 : 인터넷 전화, 대화 형 게임)의 "효과적"을 실행을 위해서는 낮은 지연이 필요합니다.
  • 보안(security) : 암호화, 데이터 무결성,…

아래는 애플리케이션마다 요구사항을 비교한 표입니다.


마침

다음시간에는 애플리케이션 계층 프로토콜에서 HTTP, SMTP, DNS가 가장 유명한데 그 첫번째로 HTTP 프로토콜에 대해 살펴볼것입니다.

References

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.

0개의 댓글