Back

Computer Networking - Networking App

컴퓨터 네트워크 - Networking App

Computer Networking - Networking App

Computer-Netowork-네트워크-앱

1. 네트워크 앱 작성

네트워크 앱은 각각의 엔드 시스템에서 동작

  • 네트워크를 통해 통신
  • 예) 웹 서버 소프트웨어브라우저 소프트웨어와 통신

네트워크 코어 디바이스들은 신경쓸 필요가 없다

  • 네트워크 코어 디바이스들은 유저 애플리케이션을 실행하지 않음
  • 오직 엔드 시스템들만 애플리케이션 레이어를 가지고 있으며, 이는 빠른 개발과 빠른 확산을 유도한다.

2. 클라이언트 - 서버 구조

image
image

서버

  • 언제나 가동 중 (이여아 함)
  • 영구 IP 주소
  • 주로 데이터센터를 사용

클라이언트

  • 서버와 통신
  • 항상 네트워크에 연결되어 있진 않음
  • 동적 IP를 사용하고 있을 수 있음
  • 클라이언트 끼리 직접적으로 통신하지 않음 (클라이언트 - 서버 구조에서)

3. P2P 구조

image
image

  • 언제나 가동중인 서버가 없음
  • 대등한 엔드시스템끼리 직접적으로 통신
  • 다른 피어들에게 데이터를 요청하거나 제공할 수 있음
  • Self-Scalability
    • 새 피어가 들어오면 그 피어는 서비스를 요구할 수 있을 뿐만 아니라 새 서비스를 제공할 수도 있음
  • 피어끼리는 간헐적으로 연결되며 IP주소도 매번 바뀔 수 있다
    • 유지 관리에 어려움이 있다

4. 프로세스 커뮤니테이션

프로세스

  • 호스트에서 동작하고 있는 프로그램
  • 같은 호스트에서, 프로세스들은 IPC (inter-process communication) 로 통신함
  • 프로세스들이 서로 다른 호스트들에 있다면 메세지 (네트워크 기반) 를 통해 통신

클라이언트 프로세스

  • 커뮤니테이션을 먼저 시작한 프로세스

서버 프로세스

  • 클라이언트 프로세스가 연락한 것을 기다리는 프로세스

P2P에서는..

  • 클라이언트 프로세스와 서버 프로세스 둘 다 가지고 있다

5. 소켓

image
image

  • 프로세스는 소켓으로 메세지를 보내고 전달받는다
  • 소켓은 마치 문과 같다
    • Sending Process는 메세지를 문 밖에다 던져놓는다
    • 이 메세지는 Transport Infrastructure를 통해 Receiving Process에 전달된다

6. 주소 Processing

  • Receive 프로세스가 메세지를 받으려면 뭔가 Identifier가 필요하다
  • 호스트 디바이스들은 각각 Unique한 IP 주소를 가지고 있다
  • Q. 그런데 IP주소만으로 프로세스에게 메세지를 전달하기 충분해?
    • 아니오. 호스트에서는 여러개의 프로세스가 동작하고 있다.
      • 그렇기에 포트가 필요한 것.

7. App-layer Protocol defines

  • 통신할 메세지의 타입
    • 수신이냐, 발신이냐
  • 어떤 필드가 있는지, 어떻게 필드들이 정의될 것인지 (몇 비트, 어떤 타입)
  • 각 필드가 어떤 의미를 갖는가
  • 메세지를 언제 어떻게 받고 전달할 것인가

8. 오픈 프로토콜

  • HTTP, SMTP 등
  • RFCs에 정의되어 있음

9. 사적 프로토콜

  • Skype 등

10. App에게는 어떤 transport service가 필요한가

image
image

데이터 무결성

  • 어떤 앱들은 데이터가 어떠한 에러도 없이 신뢰성있게 전달해야 한다.
    • 파일 전송 등
  • 어떤 앱들은 약간의 loss를 허용할 수도 있다
    • 오디오 등

타이밍

  • 어떤 앱들은 데이터가 신속하게 전달되어야 한다
    • 전화, 실시간 게임 등
  • 어떤 앱들은 신속한 전달이 필요없다
    • 이메일 등

Throughput (한번에 전달하는 데이터 크기)

  • 어떤 앱들은 예를들어 10Mbps 이상의 속도를 보장해야 한다
    • 유튜브 등등의 멀티미디어, 호스팅 서비스 등
  • 어떤 앱들은 속도 보장이 그다지 필요없다 (elastic)
    • 이메일 등

보안

  • 메세지는 수많은 컴퓨터들을 통해 이동한다
  • 암호화가 중요한 transport 서비스가 될 수 있다
Built with Hugo
Theme Stack designed by Jimmy