네트워크 응용 서비스
: 네트워크의 통신 서비스를 사용/응용하여 최종사용자에게 제공되는 서비스
네트워크에 연결된 2개 이상의 호스트애서 동작하는 프로그램
네트워크 구성
호스트: 응용정보를 교환하고 해석하고 처리
스위치(라우터) : 네트워크 장치를 연결하고 패킷을 교환
패킷
: 응용 정보를 효율적으로 교환하기 위해 크기로 나눈 정보단위
호스트에게 재조립되어 응용 계층에서 처리
스위치는 응용 정보 처리에 관여하지 않음, 전달만 함
네트워크 응용 구조 유형
- 클라이언트-서버 구조
- P2P 구조 ( Peer - to - Peer / 상호 대등한 관계)
클라이언트 - 서버 구조
클라이언트
: 서버에게 응용 서비스를 요청 / 클라이언트 간 통신 X
동적(임시)IP주소 사용 가능
필요할 때만 작동
서버
다수의 클라이언트 서비스 요청에 응답
항상 작동
고정(또는 그에 준하는)IP주소 사용 > 꺼져있으면 서비스 제공 불가능
P2P구조
: 각각 클라이언트가 서버의 역할을 함
- 호스트간 관계가 대등함
- 서버 의존성이 없음
- 구축 비용이 낮음
- 보안 취약성
- 낮은 신뢰성
***
네트워크 응용 프로세스
: 호스트에서 네트워크를 통해 응용 메시지를 교환하며 작동하는 프로그램
> 응용 메시지 교환의 모든 과정을 포함함
응용 프로토콜
: 네트워크 응용 프로그램 간의 응용 메시지 교환 방식
> 응용 프로세스의 일부
클라이언트 프로세스: 통신을 개시하는 응용 프로레스
서버 프로세스: 클라이언트의 통신 요청을 기다리는 응용 프로세스
응용 프로세스(응용 계층 = application 계층)에서 호스트간 네트워크 통신을 위해선
그 아랫단계(계층)인 Transport 계층을 이용한다.
= 어플리케이션 프로세스가 트랜스포트 계층에 있는 프로토콜을 사용해서 정보를 교환한다는 말
> 물론 트랜스포트 계층은 그 아래인 네트워크 계층을 이용하고
> 네트워크 계층은 그 아래인 링크 계층을 이용하고
> 링크 계층은 물리 계층을 이용함.
그런데!!
- 소켓 -
트랜스포트 계층이 어플리케이션 계층에 대해서 정보를 송신, 수신할 수 있도록 하는 자료구조를 소켓이라고 한다.
소켓은 트랜스포트 계층 상에서 구현
소켓 API란?
소켓 자료구조를 사용해서 인터넷을 통해서 정보를 교환할 수 있는 기능(통신 서비스)를 제공하는 프로그램 인터페이스(함수들의 집합)
API를 사용하여 응용 프로그램 구현
ㄴ> 네트워크 응용 프로그램을 개발하는 것 >>
응용 프로세스 주소
> 소켓 주소 = IP주소 + Port 번호
'백엔드 > 서버' 카테고리의 다른 글
Python 서버 따라 만들기 [6] - 프로젝트 폭발 (0) | 2024.04.25 |
---|---|
캡슐화(Encapsulation) (0) | 2024.04.23 |
Python 서버 따라 만들기 [5] (0) | 2024.04.22 |
Python 서버 따라 만들기 [4] ubuntu에 Django 서버 띄우기 (0) | 2024.04.22 |
Python 서버 따라 만들기 [3] local에서 Django 서버 띄우기 (0) | 2024.04.21 |
댓글