기록
Chapter 2. Application Layer 본문
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 |