IT 127

[Network] Transport Layer (트랜스포트 계층) - 3.2 다중화와 역다중화

3.2 Multiplexing and Demultiplexing 네트워크 계층이 제공하는 host-to-host delivery service에서 host에서 동작하는 애플리케이션에 대한 process-to-process delivery service로 확장하는 것을 transport 계층의 다중화 (multiplexing)와 역다중화 (demultiplexing)라고 한다. 목적지 호스트에서의 트랜스포트 계층은 바로 아래의 네트워크 계층으로부터 세그먼트를 수신한다. 트랜스포트 계층은 호스트에서 동작하는 해당 애플리케이션 프로세스에게 이 세그먼트의 데이터를 전달하는 의무를 가진다. 네트워크 애플리케이션의 한 부분으로서 프로세스는 socket 을 가진다. 이를 이용해서 네트워크에서 프로세스로 데이터를 전달..

IT/Network 2018.01.15

[Python] import this

[Python] import thispython을 다루다가 이스터에그처럼 보이는 모듈을 만났다. 바로 import this이다. 이스터에그처럼 보였지만, 읽어보고 나면 굉장히 철학적인 글을 보았다는 생각이 들지도 모른다. 12345678910111213141516171819202122232425> python> import this The Zen of Python, by Tim Peters Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than d..

IT/Python 2018.01.14

[Network] Transport Layer (트랜스포트 계층) - 3.1 트랜스포트 계층 서비스 및 개요

3.1 Introduction and Transport-Layer ServicesTransport Layer Protocol은 서로 다른 호스트에서 동작하고 있는 애플리케이션 프로세스에 논리적 통신(logical communication)을 제공한다. Logical communication 을 통해 애플리케이션의 관점에서 프로세스가 실행 중인 두 호스트가 직접 연결되어 있는 것처럼 느끼게 한다. 물론 현실적으로는 서로 정반대에 서서 셀 수 없이 많은 라우터와 다양한 링크들을 통해 연결되어 있는 것이지만 말이다. 애플리케이션 프로세스는 Transport layer가 제공하는 Logical communication을 이용하며, 서로에게 message를 보낼 수 있다. 그리고 이를 통해 애플리케이션 프로세스는..

IT/Network 2018.01.13

[Network] Application Layer (애플리케이션 계층) - 2.6 비디오 스트리밍 및 DASH 정리

2.6 Video Streaming and Content Distribution Networks현재 스트리밍 영상은 북미 지역의 가정 ISP의 트래픽 대다수를 차지하고 있다. 특히, 2015년 가정 ISP의 트래픽 중 Netflix나 YouTube 서비스는 그 자체만으로도 엄청나게도 각각 37%와 16%를 차지하고 있다.2.6.1 Internet Video스트리밍 비디오 애플리케이션은 영화나 TV 쇼나 녹화된 스포츠 경기나 Youtube에서 흔히 보이는 유저들이 직접 만든 영상과 같은 사전에 녹화된 비디오를 기반으로 한다. 이렇게 녹화된 영상은 서버에 위치하며, 사용자는 필요에 따라 비디오를 보기 위해 서버로 요청을 보낸다. Netflix, YouTube(Google), Amazon, Youku와 같은 ..

IT/Network 2018.01.12

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.3 DNS Records and Messages

180111_CN_2_4_3 2.4.3 DNS Records and Messages 분산된 DNS 데이터베이스를 수행하는 DNS servers는 "Resource Records (RRs)" 를 저장한다. RR에는 hostname과 IP address를 이어주는 mapping도 포함하고 있다. 각각의 DNS reply message는 하나 이상의 resource records를 싣고 간다.Resource Records는 다음 4개의 필드를 4-tuple로 포함한다. (Name, Value, Type, TTL) • TTL은 RR의 수명 (Time to Live)으로 cache에서 해당 resource가 언제 지워져야 하는지 나타낸다. 일단 이 예제에서는 TTL은 무시하기로 한다. Name과 Value fie..

IT/Network 2018.01.11

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.2 Overview of How DNS Works

2.4.2 Overview of How DNS Works 가령 사용자의 host에서 동작하는 웹 브라우저나 메일 앱이 hostname을 IP address로 변환할 필요가 있다고 가정하자. 이 애플리케이션은 변환되어야 하는 hostname을 담아 client side의 DNS를 호출할 것이다. 호출된 사용자의 host에 위치한 DNS는 네트워크로 query message를 보낼 것이다. 모든 DNS query와 reply message는 port 53을 통해 UDP datagram이 되어 전송된다. 수 ms에서 sec의 시간이 흐른 잠시 후, 사용자의 host에 위치한 DNS는 가장 바람직한 mapping을 DNS reply message를 통해 받는다. 그리고 해당 mapping을 자신을 호출한 애플리..

IT/Network 2018.01.10

[Python] "Python API tutorial - An Introduction to using APIs" - 파이썬 API 튜토리얼 (번역)

Python API tutorial - An Introduction to using APIs API라고 불리는 Application Program Interfaces는 원격 웹 사이트에서 데이터를 검색해오는데 흔히 사용된다. Reddit이나 Twitter, Facebook은 모두 그들의 API를 활용해 특정 데이터를 제공한다. API를 사용하기 위해서는 원격 웹 서버에 요청하고, 필요한 데이터를 검색해야 한다. 하지만 왜 쉽게 다운로드할 수 있는 static dataset 대신에 API를 이용할까? APIs는 다음과 같은 케이스에 유용하다. 데이터가 빠르게 변화하는 경우이다. 주식 가격 데이터를 예로 들 수 있다. 생각해보면, 그 데이터 셋을 매분마다 새로 생성하고 새로 다운로드 받는다는 것은 상식적이지..

IT/Python 2018.01.10

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.1 Services Provided by DNS

2.4 DNS - The Internet's Directory Service2.4.1 Services Provided by DNShost를 알아내는 데는 두 가지 방법이 있다.hostnameIP address사람들은 기억하기 쉬운 hostname 식별자를 더 선호한다. 반면, 라우터는 IP address의 고정된 길이와 계층적인 구조를 선호한다.이런 요구를 만족시키기 위해서 우리는 hostname을 IP address로 변환해주는 directory service가 필요하다. Domain Name System (DNS)의 주요 작업이 바로 이것이다.DNS는DNS Server의 계층 구조에 구현된 "분산 데이터베이스" 이다.이 "분산 데이터베이스"에 host가 query를 보낼 수 있게 해주는 "Applic..

IT/Network 2018.01.09

[Wiki] ruby(루비) 실행 시(irb), Ignoring .... 경고가 잔뜩 발생하는 경우 해결 방법

[Wiki] ruby(루비) 실행 시, Ignoring 경고 해결 방법 macOS에서 ruby를 실행해보기 위해 irb 명령어를 입력하니 다음과 같은 에러가 5개 정도 발생하였다.Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2구글링을 통해 해결 방법을 알아보았다. 아래의 코드를 터미널에 입력하니 바로 해결되었다. 12unset GEM_HOMEunset GEM_PATHcs 솔직히 너무 간단해서 조금 당황했다. [1] https://groups.google.com/forum/#!msg/snowplow-user/LYaB3MTaGNM/yOuMdT..

IT/IT WIKI 2018.01.08