목록컴퓨터 네트워크 (32)
Shine's dev log
1. 유튜브와 넷플릭스 최근 유튜브나 넷플릭스같은 비디오 스트리밍 사이트가 폭팔적으로 늘어나고 있고, 그 수요도 엄청나게 늘어나고 있다. 해당 서비스를 제공하는 사업자는 늘어난 수요를 맞추기 위해서 다양한 기술을 사용해야 한다. 기본적으로 하나의 서버를 사용하여 클라이언트의 요청에 응답하는 방식은 데이터의 양이 엄청나게 큰 비디오 파일에서는 적합하지 않을 것이다. 이번에는 과연 유튜브나 넷플릭스같은 회사가 어떻게 사용자에게 유연하게 컨텐츠를 제공할 수 있는지 알아보자. 2. DASH (Dynamic, Adaptive Streaming over HTTP) 우선, DASH라는 기술을 알아보자. DASH는 컨텐츠 파일을 서로 다른 rate의 덩어리로 만들어 제공하는 기술이다. 대표적으로 유튜브에서 하나의 영상..
1. 이메일 프로토콜 최근에는 다양한 메신저와 어플리케이션을 통해 서로 대화를 주고받지만, 과거에는 주로 이메일을 통해 인터넷 상에서 대화를 주고받았다. 사실 이메일 프로토콜 자체가 기술적으로 큰 의미가 있는 것은 아니지만, 그래도 기본적으로 어떤 원리로 이메일이 전송되고 수신되는지 간단하게 알아보자. 2. 이메일을 위한 구성요소 이메일을 주고받기 위해서는 크게 4가지 구성요소가 필요하다. 1) User agent - 메일을 송수신하기 위한 어플리케이션으로, 과거에는 전문 프로그램을 사용하기도 했지만 최근에는 그냥 브라우저에서 사용하는 경우가 많다. ex) thunderbird, Outlook, 인터넷 브라우저 2) Mail server - 메일을 송/수신하기 위한 서버. 사용자들이 보낸 메일들을 처리하..
0. DHT란? DHT (Distributed Hash Table)은 파일을 공유하는 방법 중 하나이다. 앞서 살펴본 P2P모델의 Gnutella는 중앙 서버가 없지만 속도가 느리다는 단점이 있고, Napster는 중앙 서버가 있어 속도는 빠르지만 중앙 서버의 부담이 크다는 단점이 있었다. DHT는 위의 약점들을 보완할 수 있는 방식으로, Gnutella와 유사하다고 볼 수 있지만, 해시 테이블을 사용해 더 효율적으로 처리한다는 특징이 있다. 자세한 원리를 살펴보자. 1. 해시테이블 DHT의 핵심은 해시테이블이다. 해시 함수는 Key와 Value로 구성되어 있고, 해시함수에 Key값을 넣으면 테이블의 index가 나오는 형태이다. 해시 테이블에서 index의 값은 범위가 지정되어 있는 경우가 많은데, 주..
1. P2P 구조 앞서 인터넷을 통해 여러 서비스를 이용할 때, 기본적으로 서버 - 클라이언트 모델을 살펴보았다. 서버가 서비스를 제공하고 클라이언트는 서비스를 이용하는 서버 - 클라이언트 모델은 가장 기본적이면서도 널리 사용되는 통신 모델이다. 하지만, P2P (Peer 2 Peer) 모델도 실생활에서 심심치않게 찾아볼 수 있다. P2P는 서버가 컨텐츠를 제공하는 것이 아니라 임의의 end system 들끼리 직접 컨텐츠를 송/수신하는 구조이다. 대표적으로 파일을 공유하는 서비스인 BitTorrent, 음성 서비스를 제공하는 Skype, 스트리밍 서비스를 제공하는 Kankan 등이 P2P 모델을 이용한다. 2. P2P의 역사 1980년대에 Usenet이라는 서비스가 P2P의 시초라고 볼수도 있겠지만, ..
1. DNS (Domain Name System)란? DNS는 한마디로 말해서 사람들이 쓰기 편한 호스트 네임(www.naver.com)을 컴퓨터가 알아들을 수 있는 아이피 주소(125.209.222.141)로 바꿔주는 서비스이다. 세상에 있는 모든 서버의 주소는 IP 주소를 가지고 있다. 따라서 사용자들이 해당 서버에 접속하기 위해서는 그 서버의 IP 주소를 외우고 입력해야 한다. 하지만, IP 주소는 보다시피 그냥 숫자와 점의 조합으로 이루어진 주소로, 사람들이 외우고 사용하기 매우 불편하다. 그래서 DNS 라는 서비스를 이용해 영문 주소와 IP 주소를 쉽게 매핑(mapping)하여 사용할 수 있는 것이다. 즉, 우리는 인터넷을 사용할 때 항상 DNS 서비스를 이용하는 셈이다. 유튜브를 보려고 www..
1. Cookie 쿠키는 문자와 숫자의 조합으로 된 작은 파일이다. 서버는 쿠키를 통해서 클라이언트를 식별하고 이에 맞춰 다양한 서비스를 제공한다. 아마존 사이트에 들어가면 내가 보았던 상품 목록들을 보여 주는데, 이런 것들이 모두 쿠키를 이용하기 때문에 가능한 것이다. 사용자가 특정 사이트에 처음 접속하면, 그 사이트 서버는 사용자에게 Cookie header라는 숫자를 부여해준다. 브라우저는 부여받은 Cookie header와 사이트 이름을 조합하여 만들어진 쿠키 파일을 사용자의 컴퓨터에 저장한다. 이후 사용자가 그 사이트에 접속할 때마다 해당 쿠키파일을 보내주면 서버는 이를 통해 사용자를 식별할 수 있다. 전체적인 동작 과정은 아래 그림과 같다. 위의 내용들을 종합해보았을 때, 쿠키를 사용하려면 다..