2.5 P2P 파일 분배 클라이언트-서버 파일 분배에서 서버는 파일 복사본을 각 피어들에게 보내야 한다. 서버에서 커다란 부하를 주고 많은 양의 서버 대역폭을 소비한다. P2P 파일 분배에서 각 피어는 수신한 파일의 임의의 부분을 다른 피어들에게 재분배할 수 있어서 서버의 분배 프로세스를 도울 수 있다. P2P 파일 분배 프로토콜 중 유명한 것으로 비트토렌트가 있다. P2P의 핵심은 데이터가 어디있는지 알아내는 것이다! 1. P2P 구조의 확장성 분배 시간(distribution time) 모든 N개의 피어들이 파일의 복사본을 얻는 데 걸리는 시간이다. 클라이언트-서버 피어의 수가 증가함에 따라 분배 시간이 선형적으로 그리고 한계 없이 증가하는 것을 알 수 있다. P2P 구조 최소 분배 시간이 클라이언트..
2.4 DNS - 인터넷 디렉터리 서비스 사람을 이름, 주민번호 등으로 식별하는 것과 마찬가지로 인터넷 호스트에 대한 하나의 식별자를 호스트 네임(hostname)이라고 한다. 예) www.facebook.com, www.google.com, gaia.cs.umass.edu 호스트 네임 호스트 위치에 대한 정보를 거의 제공하지 않는다. 가변 길이의 알파뉴메릭 문자로 구성되므로 라우터가 처리하는 데 어려움이 있다. 호스트는 흔히 말하는 IP 주소로도 식별된다. IP 주소 4바이트로 구성되고 계층구조를 갖는다. 0~255의 십진수로 표현하는 각 바이트는 점으로 구분한다. IP주소는 계층구조여서 주소를 왼쪽에서 오른쪽으로 조사함으로써, 그 호스트가 인터넷의어디에 위치하는지에 대한 자세한 정보를 얻을 수 있다...
2.3 인터넷 전자메일 아래 그림은 인터넷 메일 시스템의 상위 레벨 개념을 보여 준다. 사용자 에이전트, 메일 서버, SMTP(Simple Mail Transfer Protocol)라는 3개 주요 요소가 있음을 알 수 있다. 이제 이들 각 요소들은 송신자 앨리스가 수신자 밥에게 전자메일을 보내는 상황에서 기술한다. 사용자 에이전트 사용자가 메시지를 읽고, 응답하고, 전달하고, 저장하고, 구성하게 해준다. MS 아웃룩과 애플 메일은 전자메일을 위한 사용자 에이전트의 예이다. 앨리스가 메시지 작성을 끝내면 사용자 에이전트는 메시지를 메일 서버로 보내고 거기서 메시지는 메일 서버의 출력 메시지 큐에 들어간다. 밥이 메시지를 읽고 싶을 때, 그의 사용자 에이전트는 메일 서버에 있는 메일박스에서 메시지를 가져온다..
2.2 웹과 HTTP 2.2.1 HTTP 개요 HTTP: HyperText Transfer Protocol 클라이언트 프로그램과 서버 프로그램 두가지 프로그램으로 구현된다. 서로 다른 종단 시스템에서 수행되는 클라이언트 프로그램과 서버 프로그램은 서로 HTTP 메시지를 교환하여 통신한다. HTTP는 메시지의 구조 및 클라이언트와 서버가 메시지를 어떻게 교환하는지에 대해 정의하고 있다. 웹 페이지의 구성 대부분의 웹 페이지는 기본 HTML 파일과 여러 참조 객체로 구성된다. 객체 단순히 단일 URL로 지정할 수 있는 하나의 파일이다. 기본 HTML 파일 페이지 내부의 다른 객체를 그 객체의 URL로 참조한다. 각 URL은 2개의 요소, 즉 객체를 갖고 있는 서버의 호스트 네임과 객체의 경로 이름을 갖고 있..
TCP/IP 5계층 모델에서 가장 상위 층에 해당되는 애플리케이션 계층에 대해 살펴보자. 애플리케이션 계층은 최상위층으로 이 위에는 이를 사용하는 사용자가 있다. 2.1 네트워크 애플리케이션의 원리 네트워크 애플리케이션을 위한 통신은 아래 그림과 같이 종단 시스템 간의 애플리케이션 계층에서 발생한다. 2.1.1 네트워크 애플리케이션 구조 애플리케이션 개발자 관점에서 네트워크 구조는 고정되어 있고 애플리케이션에 특정 서비스 집합을 제공한다. 애플리케이션 구조(application architecture)는 애플리케이션 개발자에 의해 설계되고 애플리케이션이 다양한 종단 시스템에서 어떻게 조직되어야 하는지를 지시한다. 현대 애플리케이션에 사용되는 두 가지 우수한 구조를 살펴보자. 애플리케이션 개발자는 이 두 ..
인터넷은 여러 요소들로 이루어진 매우 복잡한 시스템이다. 그런데 이렇게 아주 복잡하다면 네트워크 구조를 어떻게 조직해야 할까 ❓❔❓ 우리는 이러한 복잡한 구조를 쉽게 파악하기 위해 "계층화" 라는 개념을 이용한다. 항공 시스템을 통한 계층화의 이해 우선 이해하기 쉽게 항공 시스템을 살펴보자. 아래는 항공 여행 과정을 계층화해서 나타낸 것이다. 티켓, 수하물, 게이트, 이륙/착륙, 비행기 라우팅 총 5개의 층으로 나눌 수 있다. 각 계층은 그 계층에서 어떤 동작을 취하고 그 계층 바로 아래 계층 서비스를 이용함으로써 서비스를 제공한다. 예) 티켓 계층에서 티켓을 구입하고 수화물 계층에서 티켓을 구매한 승객을 대상으로 수하물 전송 서비스를 제공한다. 계층화의 필요성 위의 항공 여행 과정을 통해 살펴봤듯이 계..