IT 지식/네트워크(Network)

컴퓨터 네트워크 - Application layer

나아가는중 2021. 11. 10. 18:42
반응형

컴퓨터 네트워크 - Application layer

 

Network Application

 

응용은 단말(end system)에 올라가게 된다. 네트워크 장비에는 응용 프로그램이 올라가지 않으며 올릴 시 속도가 감소하게 된다. 네트워크 장비는 심플하며 빠른 속도를 갖는 것을 원칙으로 가지며, 응용 프로그램과 같이 복잡한 기능은 단말에 올리는 것이 원칙이다.

 

 

Application architectures

  • Client-server
  • Peer-to-Peer (P2P)
  • Hybrid of client-server and P2P

 

Client-server architecture

우리가 사용하는 대부분의 네트워크는 client-server의 구조로 이루어져있다. 

 

Server : 항상 실행(always-on) 호스트이여야 하며 고정 IP 주소를 가진다.

Client : 서버와만 통신(client 상호 통신 X), 간헐적(필요할 때)로 네트워크에 연결 가능하며 동적 IP주소를 가진다.

 

 

Pure P2P architecture

항상 실행(always-on) 서버가 존재 하지 않으며, 단말 상호 간 직접 통신한다. 네트워크 구조(범위)가 커져도 동작이 잘되며 확장성(scalable)이 있다. 각각의 통신 단말을 Peer라 부른다. Peer 간 간헐적으로 연결되며 동적 IP주소를 가진다.

 

 

Hybrid of client-server and P2P

하이브리드 형태는 기본적으로 P2P의 방식이지만 중앙 서버가 존재한다. 중앙 서버는 통신하고자 하는 상대방의 주소를 가지고 있어 클라이언트는 중앙 서버를 통해 상대의 주소를 얻는다. 중앙 서버를 통해 주소를 얻을 뿐이지 통신은 클라이언트 상호 간에 직접 이루어진다. 하이브리드 방식은 대표적으로 Skype가 있다.

 

 

Processes communicating

다른 호스트와 통신은 서로 메시지를 주고 받는것으로 동작한다.

 

Process : 호스트에서 현재 동작하고 있는 프로그램

Inter-process communication : 같은 호스트에서 두 프로세스가 서로 통신하는 것

Client process : 통신을 시작하는 프로세스

Server process : 연결을 기다리는 프로세스

 

 

Sockets

프로세스간에 메시지 송수신시에 소켓을 통해 전달한다. 소켓은 데이터 전달 시에 Tranport protocol(TCP or UDP)를 사용하는데 이 transport protocol에 데이터를 전달해줘야 하는데 그 통로의 역할을 한다.

 

 

Addressing Processes

호스트에는 하나의 프로세스만이 아닌 여러 프로세스가 존재할 수 있으며, 데이터 전달시에 어느 프로세스로 전달해줘야 할지 지칭(identify) 해야 한다. 목적 호스트의 주소와 목적 호스트 내의 수신 프로세스의 identifier port number를 지칭해야 한다. 소켓을 통해 데이터를 전달할 때 예시로 HTTP server port number 80을 지칭하였으면 HTTP message를 주고받겠다는 것이다.

 

App-layer protocol defines

응용층 프로그램을 만들기 위해서는 응용층 프로토콜을 따라 만들어야 한며 다음과 같은 사항들이 포함되어야 한다. 

메시지 교환의 타입 : 요청(request), 응답(response)

메시지 문법(syntax) : 어떤 필드들이 있으며 어떻게 구별되는지

메시지 의미(semantics) : 각 필드에는 어떠한 정보의 의미인지

메시지를 언제 어떻게 요청, 응답받는지

 

대부분의 경우 public-domain protocols로 IETF에서 만들어져 RFCs에 정의되어있다. 상호 운용성을 허용하며 대표적으로 HTTP와 SMTP가 있다. 비공개? 상업용?(proprietary) protocols도 존재하며 대표적으로 skype가 있다.

 

App-layer Features

응용층에서 transport layer로 데이터를 소켓을 통해 전달할 때 응용이 요구하는 특징들 등이 있다. 이는 응용마다 다르다.

Data loss : 특정 운용 audio와 같은 경우 일정 부분 손실을 허용하는 반면 파일 전송과 같은 경우 100% 신뢰성(reliable) 있는 데이터 전송을 요구한다.

Timing : 특정 운용 인터넷 전화와 같은 경우 적은 지연(delay)을 요구한다.

Throughput : 특정 운용 멀티미디어의 경우 최소한의 전송속도(throughput)를 요구하는 반면 탄력 있게 해도 괜찮은 경우도 있다.

 

 

반응형