본문 바로가기
컴퓨터네트워크

[Network]principles of network

by goblin- 2023. 9. 7.

Creating a network app

다음과 같은 프로그램 작성한다.
- (다른) 엔드 시스템에서 실행된다.
- 네트워크를 통해 통신한다.
-예를 들어, 웹 서버 소프트웨어는 브라우저 소프트웨어와 통신한다.
네트워크 코어 디바이스용 소프트웨어를 작성할 필요 없다.
-네트워크 코어 장치가 사용자 응용 프로그램을 실행하지 않는다.
-신속한 앱 개발, 전파를 가능하게 하는 엔드 시스템의 애플리케이션이다.

 

 

Application architectures

 

possible structure of applications 

-client-server : client가 server에 요구하고 server는 요구받은 것을 제공하는 구조

-peer-to-peer(P2P) : port가 서비스를 제공하기도 하고 요구하기도 하는 구조

 

Client-server architecture

 

server:

-항상 켜져있어야 한다. (언제 client에서 요청이 들어올지 모르기 때문)

-IP 주소가 영구적이다. (IP주소가 고정되어 있다.)

 

clients:

-동적 IP 주소를 가질 수 있다.(주소가 바뀔 수 있다. 주소가 부족하거나 이동성 때문)

-client 끼리는 통신하지 않는다.

 

 

P2P architecture

-서버가 항상 켜져있지 않다.

-임의의 엔드 시스템(host)이 직접 통신한다.

-peer가 다른 peer에 서비스를 요청하기도 하고 서비스를 제공하기도 한다.

-자체 확장성(self scalability) - 새로운 peer가 새로운 서비스 용량과 새로운 서비스 요구사항을 제공할 수 있다.

 

 

Processes communicating

Process

-host 내에서 실행되는 프로그램

-동일한 host 내에서 두 프로세스가 프로세스 간 통신을 사용하여 통신한다(OS에 의해 정의됨)

-서로 다른 host에 있는 processes가 교환을 통해 통신한다.

 

Client process : 통신을 시작하는 프로세스

Server process : 연락을 기다리는 프로세스

 

Sockets

 

socket은 문과 유사한 성질을 가지고 있다. 프로세스에서 나온 메시지를 외부로 보낸다.

전송 프로세스는 수신 프로세스에서 socket에 메시지를 전달하기 위해 다른 문에 있는 전송 인프라에 의존한다.

 

 

Addressing processe

-메시지를 받으려면 프로세스 식별자가 있어야 한다.

-메시지를 식별하려면 IP address와 프로세스를 지정할 수 있는 port#(port number)가 필요하다. 그래야 특정 APP로 갈 수 있다.

ex) HTTP server : 80

      mail server : 50

ex) IP address : 128.119.245.12

      port number : 80

 

 

App-layer protocol defines

 

-교환된 메시지의 종류 : request, response

 

-message syntax(구문) : 메시지의 어떤 필드 및 어떻게 필드가 설명되는지 여부, message는 여러 개의 정보가 구분되어 있는데 의미 있는 단위 하나가 field이다.

 

-프로세스가 메시지를 보내고 응답하는 시기 및 방법에 대한 규칙을 정한다.

 

-open protocols : RFC에 정의되고 HTTP, SMTP 전용 프로토콜과 같은 상호 운용성을 허용한다.

 

-proprietary protocols : Skype가 있다.

 

 

What transport service does an app need?

 

Clinet가 app를 trans로 보낼 때 service level을 요구할 수 있다. (ex 손실 없게 해라, 딜레이 없게 해라) 이런 경우 trans도 app의 각각의 요구에 맞춰 바뀌어야 한다.

 

data integrity(데이터 무결성)
-일부 애플리케이션(예: 파일 전송, 웹 트랜잭션)은 100% 안정적인 데이터 전송을 필요로 한다
-다른 앱들(예: 오디오)은 약간의 손실 타이밍을 견딜 수 있다
-일부 앱(예: 인터넷 전화, 대화형 게임)은 "효과적"이기 위해 낮은 지연을 요구한다

 

timing(타이밍)
-일부 앱(예: 인터넷 전화, 대화형 게임)은 "효과적"이기 위해 낮은 지연을 요구한다.

 

 

throughput
-일부 앱(예: 멀티미디어)은 "효과적"이기 위해 최소 처리량을 요구한다.
-다른 앱("유연한 앱")은 처리 능력이 무엇이든 활용합니다
 
security(보안)
-암호화, 데이터 무결성

 

Internet transport protocols services

 

TCP service:
-송·수신 프로세스 간의 신뢰성 있는 운송 (data의 완결성을 제공한다. ex) loss가 없도록 느끼게끔)
-flow control: 송신자가 수신자를 압도하지 않음(loss가 생기지 않도록 속도조절)
-congestion control(혼잡 제어): 네트워크 오버로드 시 전송자 제어(혼잡성이 풀리도록 조절)
-does not provide(제공하지 않음): 타이밍, 최소 처리량 보장, 보안
-connection-oriented(연결 중심): 클라이언트와 서버 프로세스 간에 필요한 설정

 

UDP 서비스:  (기본적으로 아무것도 안 한다, 심플한 형태)
-송신 프로세스와 수신 프로세스 간의 신뢰할 수 없는 데이터 전송
-신뢰성, 흐름 제어, 혼잡 제어, 타이밍, 처리량 보장, 보안 또는 연결 설정을 제공하지 않는다.

 

+DNS 은 UDP를 사용한다.

 

 

 

'컴퓨터네트워크' 카테고리의 다른 글

[Network]쿠키(Cookie)  (0) 2024.08.22
[Network] Web and HTTP  (0) 2023.09.14
[Network]protocol layer, service models  (0) 2023.09.06
[Network] delay, loss, throughput in networks  (0) 2023.09.05
network core  (1) 2023.09.03