네트워크/Application Layer

[네트워크] Application Layer (1)

구코딩 2022. 10. 18. 12:04
728x90

Application Architectures

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

서버 : 

- 항상 네트워크에 연결되어 있으며, 이를 Always-on Host라고 한다.

- 고정 IP 주소 (Permanent IP Adress)를 가진다.

클라이언트 : 

- 서버와 소통하면서 네트워크에 연결되었다 끊겼다 함.

- Intermittently Connected

- 동적 IP 주소를 가질 수 있으며, 바뀔 때 서버에게 알려주어야 한다.

 

2) P2P 구조

- 간헐적으로 연결되는 호스트인 peer가 서로 데이터 교환을 할 수 있는 구조.

- 개별적으로 서비스를 요청 및 제공하며, 관리가 복잡하다.

- 임의의 End System이 직접 소통함. (peer)

- 자가 확장성(Self Scalability)

    자체적으로 확장성이 있고, peer가 클라이언트와 서버의 역할을 동시에 하므로 새로운 peer가 참여할 때마다

    capacity가 증가하긴 하지만, 전체적인 능력이 향상된다.

 

Process

프로세스는 호스트에 현재 실행되고 있는 프로그램으로 두 가지 소통 방법이 있다.

(1) 같은 호스트 : Inter Process Communication(IPC)를 통해 통신한다.

    - OS에 의해 정의.

    - 공유 메모리 사용.

(2) 다른 호스트 : 메세지 사용

    - 물리적으로 떨어진 형태로, 네트워크를 통해 주고받는다.

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

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

 

 

Sockets

소켓 : 메세지를 주고받는 통로.

- 프로세스는 소켓을 통해 메세지를 주고받는다.

- 응용 계층과 전송 계층 사이에 존재하면 인터페이스 역할을 한다.

- Application과 Network 사이의 API를 담당한다.

- 네트워크 프로그래밍을 한다는 것은 소켓 프로그래밍을 한다는 것과 유사하다.

 

Addressing Processes

두 프로세스가 메세지를 주고 받기 위해서는 식별자가 필요하다.

각 호스트는 32-bit의 고유한, 유일하게 식별 가능한 IP address를 가지는데, 이것만으로는 두 호스트가 메세지를 주고 받을 수 없다.

이때 필요한 것이 포트 번호이다.

자주 쓰이는 포트 번호는 HTTP 서버가 가지는 80번, 메일 서버가 가지는 25번 포트 등이 있다.

따라서, 프로세스 간 통신에는

IP Address + Port Number가 필요하다.

 

 

Application Layer Protocols

Application 간 주고받는 메시지로 프로세스가 메시지를 보내고 응답하는 시기 또는 방법에 대한 정보를 제공한다.

- Syntax : 메세지의 필드, 설명 방법 정의

- Semantics : 필드에 있는 정보의 의미.

오픈 프로토콜(HTTP, SMTP 등)은 RFC에 정의되어 있다.

(1) Data Integrity : 데이터 전송에 손실과 오류가 없음을 보장.

    -100% 신뢰성(Reliable)이 필요한 데이터 전송 시 필요.

(2) Throughput : 처리량.

(3) Timing : 도착 시간. 딜레이가 적을수록 효율적.

 

 

Internet Transport Protocols Services

1) TCP

    - 신뢰 가능한 전송. Reliable Transport 

    - Sender와 Receiver 간 데이터 100% 전송

    - 연결 지향형 : 클라이언트와 서버가 테이터를 주고받기 전 연결을 만들어야 함.

 

2) UDP

    - 비신뢰적 전송. Unreliable Transport. 손실이 발생할 가능성.

    - 비연결형.

 

728x90
반응형

'네트워크 > Application Layer' 카테고리의 다른 글

[네트워크] Application Layer (2) - HTTP  (1) 2022.11.01