애플리케이션 계층은 하위 계층인 transport layer와 연관이 있다.

애플리케이션 계층에는 HTTP, FTP, SMTP, DNS등 다양한 프로토콜이 존재한다. 프로토콜은 서비스에 따라서 정해지며 새로운 서비스에 맞는 프로토콜을 우리가 만들 수 있다.

<aside> 👨🏻‍💻 네트워크 애플리케이션의 원리

</aside>

네트워크 애플리케이션 개발의 중심은 다른 종단 시스템에서 동작하고 네트워크를 통해 서로 통신하는 프로그램을 작성하는 것이다.

따라서 우리가 새로운 애플리케이션을 개발할 때는 여러 종단 시스템에서 실행되는 소프트웨어를 작성할 필요가 있다.

중요한 것은 우리가 라우터나 링크 계층 스위치와 같이 네트워크 코어 장비에서 실행되는 소프트웨어를 작성할 필요가 없다는 것이다. → 종단 시스템에만 애플리케이션 소프트웨어가 존재한다.


네트워크 애플리케이션 구조

네트워크 관점에서 애플리케이션 구조는 크게 2가지 → 서버-클라이언트 구조, P2P 구조

  1. 서버-클라이언트 구조

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7dc5147f-efb0-44c7-a257-34175ddfd671/_2021-06-10__1.05.01.png

  1. P2P 구조

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0f3be894-9b33-4516-8158-bd629e377eb1/_2021-06-10__1.05.15.png


프로세스간 통신(IPC)

프로세스 간의 통신(IPC)는 공유메모리, 페시지 패싱, 파이프 등 OS(운영체제)에 의해서 제공된다.

IPC는 한 호스트 안 프로세스(active한 entity로 프로그램이 메모리로 올라와 CPU시간을 할당받으면 실행되는 상태) 끼리의 통신을 이야기한다.

2개의 다른 종단 시스템에서 프로세스는 컴퓨터 네트워크를 통한 메시지 교환으로 서로 통신한다.


  1. 클라이언트와 서버 프로세스
  1. 프로세스와 컴퓨터 네트워크 사이의 인터페이스
  1. 프로세스 주소 배정