본문 바로가기

교육/Netwrok

Day 53 (Network)

반응형

<목록>

1. Application Layer 개요

2. Network application구조

  1) client-server구조

  2) peer-to-peer구조

  3) Hybrid of client-server and P2P 구조

3. 프로세스간 통신

4. Socket

5. Application-layer protocol 정의

6. Application이 필요로 하는 전송 서비스

7. DNS


1. Application Layer 개요

  - Transport layer 서비스 모델을 통해 데이터가 깨지거나 순서가 맞는가에 대한 신뢰할 수 있는지 비신뢰할 수 없는지 에 대한 내용이다.

 

  - 클라이언트 서버 모델의 예로서 클라이언트는 항상 클라이언트, 서버는 항상 서버로 유지되어야 한다는 것이다.

 

  - peer-peer 모델은 상업적 모델이 없다. 다자간 통신으로 nat방식으로 통신한다. 여기서 nat는 공유기와 같은 네트워크 구성방식의 nat를 의미하는 것이 아니라 파일을 다운받게되면 다른 클라이언트가 파일을 다운받을때 서버가 아닌 다른 클라이언트의 파일을 다운받는 것으로 서버가 아닌 다른 클라이언트의 리소스를 사용한다.

 

  - 네트워크 어플리케이션 생성

네트워크 어플리 케이션은 서로 다른 종단시스템 간에서만 실행되며 네트워크 위에서 실행한다. Network core는 packet망이라는 전제에서 구성하며 network 프로그램에 대해 투명하기 때문에 장치와 application개발은 서로 무관하다. packet망은 통계적 다중화 방식으로 스위치에 전송하고 store&forward방식으로 스위치에서 저장 및 전달한다.

OSI 7계층이 개발 되었음 에도 여전히 OSI 5계층의 구조로 네트워크를 설명하는 이유는 OSI 5계층에 맞게 설계된 프로그램이 OSI 7계층에 맞게 인식구조를 변경할수없게 너무 많아 변경하지 않는다.

 

2. Network application구조

 

1) client-server구조

server는 항상 켜져있으며 고정 IP를 갖는다. 다수의 client로 부터 요청을 처리하기 위해 많은 수의 서버끼리 동기화를 하는 server farm을 구성하기도 한다. 현재는 server farm이라는 표현보다는 이와 유사한 cloud라는 표현을 사용한다. cloud의 문제점은 데이터의 물리적인 저장위치를 알 수 없다는 것이다.

client는 server에 서비스를 요청하며 필요에 따라 서버에 접속한다. 또한  고정 IP 혹은 real IP를 사용할 필요가 없다.

 

2) peer-to-peer구조

순수 p2p구조에서는 고정 서버가 없는 클라이언트간의 통신이 이루어지기 때문에 항상 켜져있는 서버가 존재하지 않는다. 따라서 데이터가 있는 임의의 호스트 쌍이 직접 통신하며 핑요에 따라 간헐적으로 접속하여 IP가 변경될 수 있다.

 

3) Hybrid of client-server and P2P 구조

주로 채팅 시스템에서 사용되며 많은 사용자가 메시지를 송신하여 서버가 감당하지 못할것을 우려하여 생겨났다.

 

3. 프로세스간 통신

프로세스는 호스트에서 실행중인 프로그램을 의미한다.

서로 다른 시스템에서 process간에는 Application이 생성하는 데이터인 message를 교환하는 통신이 이루어진다.

Client process는 Procecss간 통신 세션에서 통신을 초기화 하는 능동적인 통신이고 Server process는 세션을 시작하기 위해 접속을 기다리는 수동적 통신이다.

 

4. Socket

Socket은 일종의 Application layer와Transport layer를 연결하는 일종의 문이며, TCP or UDP중 어떤것을 사용할 것인가에 대한것만 선택한다. 프로세서를 띄우면 socket이 같이 생성된다.

송신쪽 process는 socket바깥쪽으로 message를 밀어낸다. 송신쪽 process는 네트워크를 거쳐 수신쪽 process로 message가 전달되는 구조가 socket바깥에 있다고 신뢰한다. 따라서 socket바깥쪽에 어떤 tansport protocol이 있는지 알수없다.  API는 함수의 묶음으로서 Transport protocol을 선택하고, 들어오는 packet의 순서를 확인하는 등의 역할을 수행한다.

Process가 message를 수신하기 위해 호스트들은 32bit의 구별가능한 IP주소를 갖는다. 종단시스템의 IP주소만으로 Process를 정확하게 P구별할 수 없다. Socket은 호스트의 각 process를 정확하게 구별하기 위해 사용한다.

 

5. Application-layer protocol 정의

Protocol의 3요소는 Timing, Syntax, Semantics이다. Timing은 응답 처리시간을 의미하며 처리시간이 넘어가게 되면 timeout된다. Syntax는 패킷에서 정보에 대해 끊는 위치에 대한 정보이다. Semantics은 끊었을때 각 끊은 위치가 가지는 의미에 대한 정보이다.

Protocol에서 교환되는 message의 타입을 Resquest(요청) message와Response(응답) message를 식별한다. 

데이터가 정상적으로 수신되면 acknowledgement(수신양호)응답을 사용하고 데이터가 깨지거나 순서가 잘못되어 비정상적으로 수신되면 negative-acknowledgement(수신불량)응답을 한다. 보통은 acknowledgement응답만을 이용해서 정상적 수신인지 비정상적 수신인지를 구분한다.

 

6. Application이 필요로 하는 전송 서비스

Data 손실을 허용하는 지에 대한 내용이다. 프로토콜에 따라 Data손실을 허용하는 것과 아닌것으로 나누어 진다.

Timming은 data전송 속도가 중요한 application이용시 매우 낮은 지연만을 허용한다.

대역폭은 효과적인 전송을 위해 최소 대여폭이 보장되는 것이다.

 

데이터 손실을 허용하는Application은 time민감도가 예민한 경우가 많다.

 

인터넷 전송 protocol이 제공하는 서비스는 최근에는 TCP, UDP 두가지만 사용한다.

TCP는 연결 지향형서비스로 모든 데이터가 오류없이 올바른 순서로 전달되는 신뢰적인 전송 서비스로 송신 측에서 혼잡제어를 한다. 따라서 안정적인 반면에 최소 전송률을 보장하지 않고, 지연보장을 하지 않는다.

UDP는 비 신뢰적인 연결지향 서비스로 데이터의 안정성을 보장하지 않지만 전송속도가 매우 빠르다.

 

7. DNS

<참조 : DNS서버1>

반응형

'교육 > Netwrok' 카테고리의 다른 글

Day 55 (네트워크)  (0) 2020.02.06
Day 54 (Network)  (0) 2020.02.05
Day 52 (네트워크)  (0) 2020.02.03
Day 51 (네트워크)  (0) 2020.01.31
보안 영역 구성을 위한 로컬 라우터 구현(수정)  (0) 2019.12.29