Application layer
application 서비스를 실현하게 해주는 계층
application의 종류에는 다양한 것이 있으나 대표적으로는 web, e-mail, p2p, youtube, Netflix가 존재한다.
Application 구조
application의 구조에는 2가지가 존재한다.
- Cilent - server 구조
현재 application을 이용하는 제일 흔한 관계를 가지고 있는 구조이다.
server: 서버는 항상 커져있고 IP가 영구적이다.
cilent: 서버와 소통을 진행하며 IP주소가 영구적이지 않고 cilent와 cilent끼리는 절대 소통을 하지 않는다.
ex) HTTP, IMAP,FTP - peer - peer 구조
임의적으로 end systems들끼리 직접적으로 소통을 하는 구조
cilent-server구조에서 server처럼 항상 켜저 있는 상태가 아니기에 각각의 endsystem끼리 항상 연결 되어있는 형태가 아니여서 연결을 시키는게 힘든편이다.
ex)p2p file sharingProcessing
Process
Process란 program이 실제로 Host내부에서 돌아가고 있는 상태를 말하며, 메모리에 적재되어 cpu에서 실행될 때 Program이 process로 변경된다.
- 같은 Host에서는 inter-process communication을 통해 서로 소통을 진행한다.
- 서로 다른 Host에서의 process는 요청메세지와 응답메세지를 주고 받으면서 서로 소통을 진행하게 된다.
- cilent/server구조에서는 cilent process는 요청을 보내고 server process에서는 대기를 하다가 요청이 오면 요청을 보고 응답을 보내준다.
- peer/peer구조에서는 요청을 보내는 쪽이 cilent가 되고 받는 쪽이 server가 된다. cilent/server구조처럼 요청을 보내는 쪽과 받는 쪽이 확실하게 구분이 되어있지 않다.
Process는 socket을 통해 메세지를 주고 받고를 진행한다.
Socket이란
- application protocol이 os가 가지고 있는 하위 protocol들을 쓸 수 있게 열어두는 통로이며, 간단히 말하자면 데이터를 내보내는 창구역할이라고 볼 수 있다.
- application layer와 transport layer의 Interface API
메세지를 주고 받을 때는 당연히 누가 보냈는지 어디로 다시 응답을 보내야되는지에 대한 식별자 정보가 필요하기 때문에 addressing processes가 필요하다.
Identifier = (IP address, port number)
IP address: 각각의 Host들의 고유번호를 나타낸다.
Port number: 어떤 process에 접속을 해야되는지를 알려주는 정보이다. 한 Host내에서도 다양한 응용프로그램들이 존재할 수 있기에 이것을 구별을 해주기 위해서 사용을 한다.
Application layer에 속하는 프로토콜들의 공통적인 특징
메세지의 형식, 요구에 따라 어떤 Action을 취해야 되는지에 대한 것이 명시 되어있고, application 서비스를 실현하기 위해서 다양한 약속들이 정의 되어 있다.
layer별로 나뉘어져있기에 application layer은 아래계층들이 전송을 잘 진행한다고 믿고 구현을 한다.
transport layer가 어느정도의 역할을 한다고 생각하고 구현을 할까?
- 데이터가 잘 보내지는지?
- packet switching이라서 전송속도에 대해서 보장을 할 수 없지만 얼마나 빨리 보낼 수 있는지?
- 일정한 양을 보낼 수 있는지? (Throughput)
- 데이터를 보내는데 안전한지?
'Network' 카테고리의 다른 글
컴퓨터네트워크_Cookie and Cache (0) | 2022.05.06 |
---|---|
컴퓨터네트워크_Web, HTTP (0) | 2022.05.04 |
컴퓨터네트워크_Protocol Layers (0) | 2022.05.02 |
컴퓨터네트워크_Delay, loss, throughput in Network (0) | 2022.04.30 |
컴퓨터네트워크_Network core (0) | 2022.04.30 |