기록

Chapter 2. Application Layer 본문

[Study]/etc

Chapter 2. Application Layer

Dannnnnn 2018. 3. 27. 15:46
반응형

Application Layer : 네트워크 5계층 중 제일 상위 계층


network application 종류

e-mail, web, text messaging, remote login, P2P service, multi-user networking game, ...


* Creating a network app

- 반드시 종단시스템에서 수행되어야 함

- 네트워크를 통해 통신

- 네트워크 코어 장비에는 소프트웨어 설치 할 필요 X

  (클라이언트, 서버 두 종단에만 설치하고 중간에 있는 라우터들은 관여 할 이유 X)

- 빠르게 어플리케이션 개발하고 전파 가능하다


* Application architecture

- client-server

- server : 항상 동작해야함. 고정된 위치에 존재 -> 고정된 IP주소. 모든 데이터 저장

- client : 필요 시에만 접속. 위치가 가변적 -> IP주소 유동적. 서로 직접적인 통신 불가능

- P2P (peer to peer)

- 서버가 중간에 관여하지 않음 (서버 존재하지 않음)

- 하나의 peer가 서비스를 요청하면 다른 쪽에선 서비스를 제공하는 개념

* self scalability : 서비스 요구에 따라 peer의 수가 확장 가능하다


* Processes communicating

- process : 호스트에서 실행 중인 프로그램

client process - 통신을 시작하고자 말하는 프로세스

server process - 클라이언트의 요청에 대응할 준비를 하고 있는 프로세스

P2P - peer가 동급이다보니, 먼저 접속을 요청한 프로세스를 클라이언트, 대응해주는 프로세스를 서버 프로세스 라고 함


* Sockets (편지를 전달해주는 우편함의 느낌)

4계층과 5계층 경계에 존재

그 이하 레이어는 전혀 몰라도 됨. (우편물이 어떻게 우편함까지 오는지 수신인 입장에서 알 필요 없다)

process가 socket을 통해 메세지 주고 받는 것만 알면 됨

* Addressing processes

- 메세지를 받을 때 프로세스는 identifier을 가져야 함 (우편함의 수신자)

- host device는 IP주소 사용 (집 주소 느낌)

- identifier 역할을 하는 것은 IP주소와 더불어 port numbers 이다

* App-layer protocol defines

- 메세지 교환 타입 (ex. request, response)

- 메세지 법칙 (어떻게 보내고 응답해야하는지)

- 오픈 프로토콜, 상호 연동성 요구됨

- 사설 프로토콜 (ex. Skype)

* transport- service에서 어플리케이션이 필요로 하는 것은 무엇인가?

- 데이터 무결성 (data integrity)

데이터가 손실되지 않아야 한다. 100% 데이터 전송 보장되어야 함 (시간은 좀 걸리더라도..)

ex) 파일 전송, 금융 거래 등

음성같은 경우는 약간의 데이터 손실이 있더라도 괜찮음

- 타이밍 (timing)

인터넷을 통한 음성통화, 네트워킹 게임 등은 delay가 굉장히 작아야 함

- throughput (처리율)

멀티미디어 어플리케이션은 최소한의 처리 속도를 보장해야 함

(이메일같은 어플리케이션은 throughput에 큰 연연 X)

- security

암호화, 데이터무결성..

* 인터넷 전송 프로토콜 서비스

TCP, UDP : transport-layer에서 application layer에 지원하는 서비스


- TCP service (transaction control protocol)

- 신뢰할 수 있는 전송을 함 (손실 등 x)

- 플로우 컨트롤 : 송신기가 수신기의 상황을 보고 컨트롤 (흐름 제어)

- network들이 라우터와 링크로 연결될 때 혼잡 현상을 컨트롤

- 타이밍, 전송속도, security 등을 보장해주지 못함

- 클라이언트와 서버 프로세스 간에 통신 set up을 해놓기

- UDP service (user data protocol)

- 수신기가 받던 못받던 송신기는 무조건 전송함

- connectionless

- 네이버 프로야구 중계를 TCP로 하게 되면 그 영상을 받는 클라이언트 상황에 따라 제대로 못 갈 수가 있는데

  그런 경우를 모두 고려한다면 서버가 overload 되어버림 -> 이런 경우에 UDP 사용. 서버가 그냥 뿌려버림

* SSL (Securing TCP)

- TCP와 UDP는 암호화를 지원하지 않음 (옛날엔 베드가이들이 없어서 해킹 문제 X)

- SSL(secure sockets layer)

TCP 커넥션 할 때 평문으로 보내던 걸 암호화해서 보내줌

- SSL is at app layer

- SSL 라이브러리를 콜해서 TCP로 암호화 된 문장 보냄

- SSL socket API

반응형

'[Study] > etc' 카테고리의 다른 글

Xamarin 소개 -2 (Window .ver)  (0) 2018.10.30
Xamarin 소개 -1 (Window .ver)  (0) 2018.10.30
유클리드 호제법  (0) 2018.10.03
Chapter 3. DNS  (0) 2018.04.04
Chapter 1. Introduction  (0) 2018.03.20