2.1 네트워크 애플리케이션의 원리

 

각 호스트의 프로세스간의 통신이라고 볼 수 있다. IPC와 같은 개념이다.

 

1) 네트워크 애플리케이션 구조

주로 클라이언트-서버 구조 또는 P2P구조로 이루어진다.

  • 클라이언트-서버 : 클라이언트와 다르게 서버는 고정 IP 주소를 가진다.
  • P2P : 특정 서버를 통하지 않고 피어가 직접 통신한다.

 

 

2) 프로세스 간 통신

서로 다른 종단 시스템에서 프로세스는 네트워크를 통한 메시지 교환으로 서로 통신한다.

 

두 프로세스 간의 통신 세션에서 통신을 초기화하는 프로세스를 클라이언트, 세션을 시작하기 위해 접속을 기다리는 프로세스를 서버라고 한다.

 

소켓을 통해서 네트워크로 메시지를 주고 받는다. 소켓은 애플리케이션 계층과 트랜스포트 계층 간의 인터페이스이다.

 

 

3) 애플리케이션이 이용 가능한 트랜스포트 서비스

  • 신뢰적 데이터 전송 : 전송한 데이터가 유실되지 않고 온전하게 목적지까지 전달되도록 보장된 전송 서비스.
    트랜스포트 계층 프로토콜이 애플리케이션에 제공할 수 있는 한 가지 중요한 서비스이다.
  • 처리량
  • 시간
  • 보안

 

 

4) 인터넷 전송 프로토콜이 제공하는 서비스

  • TCP : 연결지향형 서비스와 신뢰적 데이터 전송 서비스를 포함한다.
  • UDP : 비연결형 서비스와 비신뢰적 데이터 전송 서비스를 제공한다.

 

인터넷 트랜스포트 프로토콜은 시간 혹은 대역폭 보장을 제공하지는 않는다.

 

 

2.2 웹과 HTTP

 

1) HTTP 개요

HyperText Transfer Protocol. TCP를 전송 프로토콜로 사용한다. HTTP 서버는 클라이언트에 대한 정보를 유지하지 않으므로 비상태(stateless) 프로토콜 이라고도 한다.

 

 

 

2) 비지속 연결과 지속 연결

TCP 연결 상태에 따라 나뉜다.

  • 비지속 연결 HTTP : 각 요구/응답별로 TCP 연결이 새로 이루어진다.
  • 지속 연결 HTTP : 연결이 유지된다.

 

 

4) 사용자와 서버 간의 상호작용: 쿠키

HTTP 서버는 비상태 프로토콜이지만 쿠키를 이용해서 사용자를 추적하여 상태를 유지시킬 수 있다.

 

 

5) 웹 캐싱

웹 캐시 또는 프록시 서버는 원 출처의 웹 서버를 대신해서 HTTP 요구를 충족시켜준다.

캐시는 서버이면서 동시에 클라이언트가 된다.

클라이언트의 요구에 대한 응답시간을 줄이고 트래픽을 대폭 줄일 수 있는 장점이 있다.

 

 

2.3 인터넷 전자메일

 

유저 에이전트, 메일 서버, SMTP 세 가지의 주요 요소로 이루어져있다.

요즘은 HTTP 기반의 메일을 사용한다.

 

1) SMTP

보내고자 하는 데이터(메일)을 푸시한다.

 

 

2) HTTP와의 비교

HTTP는 풀 프로토콜이고 SMTP는 푸시 프로토콜이다.

 

 

4) 메일 접속 프로토콜

SMTP는 푸시 프로토콜이지만 최종적으로 메시지를 얻은것은 풀 동작이다.

POP3, IMAP 같은 메일 접속 프로토콜을 이용하면 목적 에이전트가 메일을 받을 수 있다.

 

 

 

2.4 DNSㅡ인터넷의 디렉터리 서비스

 

1) DNS가 제공하는 서비스

호스트 네임을 IP주소로 변환해준다. DNS는 DNS 서버들의 계층구조로 구현된 분산 데이터베이스이고 호스트가 분산 데이터베이스로 질의하도록 허락하는 애플리케이션 계층 프로토콜이다.

 

 

2) DNS 동작 원리 개요

단일 DNS 서버의 중앙 집중 데이터베이스는 확장성이 전혀 없기때문에 분산되도록 설계되었다. 웹 캐싱과 비슷한 개념이다.

  • 분산 계층 데이터베이스
    루트 DNS 서버, 최상위 레벨 도메인(TLD) 서버, 책임 DNS 서버 총 3가지 유형의 DNS 서버가 존재한다.
    도메인 네임과 IP의 매핑은 책임 DNS 서버에서 이루어진다.

  • DNS 캐싱
    로컬 DNS 서버에 캐시가 존재하는 경우 상위 DNS 서버까지 접근하지 않고도 빠르게 IP 주소를 반환할 수 있다. 보통 일정 시간이 지나면 캐시가 삭제된다.

 

 

3) DNS 레코드와 메시지

DNS 서버들은 호스트 네임을 IP 주소로 매핑하기 위해 자원 레코드를 저장한다.

자원 레코드는 Name, Value, Type, TTL 4가지 필드를 포함한다.

Type에 따라 Name과 Value의 의미가 달라진다.

Type=A : Name-호스트 네임, Value-IP 주소

Type=NS : Name-도메인, Value-도메인을 관장하는 호스트 네임

Type=CNAME : Name-별칭 호스트 네임, Value-정식 호스트 네임

Type=MX : Name-별칭 호스트 네임, Value-메일 서버의 정식 이름

 

참고로 DNS는 UDP 연결을 사용한다.

 

 

2.7 소켓 프로그래밍: 네트워크 애플리케이션 생성

 

소켓은 OS에서 제공해주는 API이다.

소켓을 생성할 때 TCP/UDP를 선택할 수 있다.

 

TCP를 이용한 클라이언트-서버 애플리케이션

'이론 > 네트워크' 카테고리의 다른 글

네트워크 계층: 제어 평면  (0) 2022.11.20
네트워크 계층 : 데이터 평면  (0) 2022.11.19
트랜스포트 계층 (2)  (0) 2022.11.18
트랜스포트 계층 (1)  (0) 2022.11.18
컴퓨터 네트워크와 인터넷  (0) 2022.11.08

+ Recent posts