KR101987987B1 - 네트워크 디바이스 - Google Patents

네트워크 디바이스 Download PDF

Info

Publication number
KR101987987B1
KR101987987B1 KR1020157010640A KR20157010640A KR101987987B1 KR 101987987 B1 KR101987987 B1 KR 101987987B1 KR 1020157010640 A KR1020157010640 A KR 1020157010640A KR 20157010640 A KR20157010640 A KR 20157010640A KR 101987987 B1 KR101987987 B1 KR 101987987B1
Authority
KR
South Korea
Prior art keywords
address
network device
computing device
traffic
destination address
Prior art date
Application number
KR1020157010640A
Other languages
English (en)
Other versions
KR20150063466A (ko
Inventor
에드워드 토마스 링햄 하르디
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20150063466A publication Critical patent/KR20150063466A/ko
Application granted granted Critical
Publication of KR101987987B1 publication Critical patent/KR101987987B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 디바이스는 트래픽, 룩업 엔진을 위한 명령어들, 맵 관리자, 트래픽 포워더 및 맵을 저장하도록 구성된 유형의 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 상기 맵은 IPv4 및 IPv6 어드레스들을 관련시키는 룰들을 포함할 수 있다. 상기 트래픽 포워더는 상기 제2 디바이스에 아웃바운드 트래픽을 포워딩하도록 구성될 수 있다. 상기 룩업 엔진은, 프로세서로 하여금 상기 맵이 상기 제2 디바이스의 제2 어드레스와 상기 제1 디바이스의 제1 어드레스를 관련시키는 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하게 하는 명령어들을 포함할 수 있다. 만약 포함한다면, 상기 명령들은 상기 프로세서로 하여금 상기 제2 디바이스로부터 상기 제1 디바이스로 인바운드 트래픽을 포워딩하도록 할 수 있다. 상기 맵이 이 룰을 포함하지 않으면, 상기 명령어들은 상기 프로세서로 하여금 제2 네트워크 디바이스가 상기 제2 및 제1 어드레스를 관련시키는 룰을 포함하는지를 물어보는 질의를 상기 제2 네트워크 디바이스에 전송하도록 할 수 있다.

Description

네트워크 디바이스{NETWORK DEVICE}
[관련 출원들의 상호 참조]
본 출원은 2012년 9월 25일자로 출원된 발명의 명칭이 "네트워크 디바이스"인 미국 특허 출원 제13/626,719호의 이득을 주장하며, 상기 출원의 내용은 모든 목적들로 그 전체가 본 명세서에 참조로서 통합된다.
[배경기술]
인터넷 프로토콜의 현재 버전, IPv4(인터넷 프로토콜 버전 4)은 새로운 어드레스들을 디플로이(deploy)하기 위한 어드레스 공간을 소진(run out)하고 있다. 훨씬 많은 어드레스 공간을 가진 새로운 버전, IPv6가 개발되어 왔으며, 디플로이먼트의 초기 단계(early phase)에 있다. 이 IPv4 및 IPv6의 활용의 기간 동안, 디플로이먼트를 달성하는 일 방법은 "듀얼-스택(dual-stack)", 즉 노드가 IPv4 및 IPv6 어드레스 모두를 가지는 것을 특징으로 하는 접근법을 실행하는 것이었다. 이 접근법은 노드로 하여금 IPv4-전용(IPv4-only) 목적지들에 도달하게 하지만, 궁극적으로는, 어떤 IPv4 어드레스 공간도 절약(save)하지 않는다. 대안적으로는, 공공 IPv6 어드레스들과 함께 (RFC 1918(코맨트에 대한 요청) 어드레스들로도 지칭되는) 비고유한(non-unique) 프라이빗 IPv4 어드레스들의 사용이 개발되어 왔지만, 이러한 접근법은 호스트들에서 이 프라이빗 어드레스들을 분배 및 관리하기 위한 모든 일반적인(usual) 방법들과 함께 네트워크에서 표준 IPv4 NAT(Network Address Translation)을 요할 수 있다.
"듀얼-스택 라이트" 즉 "DS-라이트"로 지칭되는 다른 접근법이 개발 및 RFC 6333 (http://tools.ietf.org/html/rfc6333 (2012.05.24))에 표준화되었다. DS-라이트에 대해, 호스트는 AFTR(Address Family Translator)에 도달하기 위해 IPv6 트랜스포트를 이용하는 바, AFTR은 IPv4 어드레스들에 연결된다(그리고 잠재적으로는 또한, NAT로서 역할을 한다). AFT는 독립적인 디바이스일 수 있지만, 또한 네트워크에 이미 디플로이된 네트워크 디바이스(예컨대, 라우터) 내의 기능(function)일 수 있다. DS-라이트 캡슐화 패킷(DS-lite encapsulated packet)이 AFTR에 도달할 때, 이는 캡슐화를 제거하고, 요구되는 어떤 네트워크 어드레스 변환(translation)을 수행한 후 내부 패킷을 포워딩한다.
제1 네트워크 디바이스가 기술된다. 상기 네트워크 디바이스는 트래픽 정보, 룩업 엔진에 대한 명령어들, 맵 관리자, 트래픽 포워더 및 맵을 저장하도록 구성된 유형의 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 상기 네트워크 디바이스는 또한, 저장 매체에 정보를 저장하고 그리고 룩업 엔진에 저장된 명령어들을 실행하도록 구성된 프로세서를 포함할 수 있다. 제1 어드레스 입력은 제1 어드레스에서의 제1 디바이스로부터 아웃바운드 트래픽(outbound traffic)을 수신하도록 구성될 수 있다. 상기 아웃바운드 트래픽은 데이터 패킷 및 제2 디바이스에 대한 제2 어드레스를 포함할 수 있다.
상기 맵 관리자는 저장 매체에 저장되는 맵을 생성하도록 구성될 수 있다. 상기 맵은 제1 어드레스와 제2 어드레스를 관련시키는 룰들을 포함할 수 있다. 상기 트래픽 포워더는 제2 디바이스에 아웃바운드 트래픽을 포워딩하도록 구성될 수 있다. 상기 제2 어드레스는 제1 디바이스로 지향되는(directed) 리턴 트래픽을 제2 디바이스로부터 수신하도록 구성될 수 있다.
상기 룩업 엔진은, 프로세서로 하여금 맵이 제2 디바이스의 제2 어드레스 및 제1 디바이스의 제1 어드레스를 관련시키는 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하도록 하는 명령어들을 포함할 수 있다. 상기 맵이 이러한 관련성을 포함하면, 상기 엔진 내의 명령어들은 프로세서로 하여금 상기 제2 디바이스로부터 제1 디바이스 리턴 트래픽을 포워딩하도록 할 수 있다. 상기 맵이 이러한 관련성을 포함하지 않으면, 명령어들은 프로세서로 하여금 제2 네트워크 디바이스에 질의를 전송하게 할 수 있다. 상기 질의는 제2 네트워크 디바이스가 상기 제2 어드레스와 제1 어드레스의 관련성을 갖는 룰을 포함하는지를 상기 제2 네트워크 디바이스에게 물어볼 수 있다.
네트워크 디바이스는 제2 네트워크 디바이스로부터 질의에 대한 응답을 수신하도록 구성된 네트워크 디바이스 입력을 포함할 수 있다. 상기 네트워크 디바이스는 또한, 상기 질의로부터의 응답에 근거하여 상기 맵을 갱신하도록 구성된 맵 갱신자를 포함할 수 있다.
도 1a 및 1b는 네트워크 디바이스의 예시적인 컴포넌트도들이다.
도 2는 네트워크 디바이스를 통한 데이터의 예시적인 프로세스 흐름이다.
도 3은 네트워크의 예시적인 도해이다.
도 4는 두 개의 네트워크 디바이스들을 특징으로 하는 네트워크의 예시적인 도해이다.
도 5는 마스터 제어기를 특징으로 하는 네트워크의 예시적인 도해이다.
도 6은 두 개의 네트워크 디바이스들을 특징으로 하는 네트워크의 예시적인 도해이다.
IPv4 어드레스에서의 제1 디바이스로부터 IPv6 어드레스에서의 제2 디바이스로 패킷들을 전달하는 네트워크가 제공되며, 반드시 동일한 네트워크 디바이스(예컨대, 라우터들, 스위치들, 로드 밸런서들, 등)을 통해 흐르는 리턴 경로없이 패킷들을 제2 디바이스로부터 IPv4 디바이스로 리턴할 수 있다. 다시 말해, IPv4 → IPv6 경로가 IPv6 → IPv4 경로와 다를 수 있는 양방향 IPv4-IPv6 통신을 제공하는 네트워크가 기술된다.
트래픽 요소들을 방출하는 네트워크(인출 트래픽의 소스들)는 패킷이 향하는 어드레스를 보유(hold)하는 네트워크로의 최단 경로를 스스로 계산한다. 이 계산들이 서로 독립적이기 때문에, 제1 패킷의 소스는 일 라우트를 최적(최단) 경로로서 결정하고, (소스 및 목적지가 플립되는) 응답 패킷의 방출 네트워크는 다른 라우트를 최단 경로로서 결정할 수 있다. 이는 두 개의 네트워크들이 복수의 장소들에 연결될 때 빈번하게 발생하는 바, 그 이유는 일 네트워크가 상호연결점(interconnection point) 1을 향해 라우팅할 수 있고 다른 네트워크는 상호연결점 2를 향해 라우팅할 수 있기 때문이다. 상호연결점은 두 개의 네트워크들이 연결되고 라우트들/트래픽을 교환하는 위치이다. 일부 상호연결점들은 시설(facility)들에 의해 제공되지만, 다른 연결점들은 프라이빗 쌍방 상호연결점들일 수 있다. IPv6 → IPv4 경로에서의 네트워크 디바이스들이 IPv6와 IPv4 어드레스들 사이의 매핑 데이터를 포함하지 않으면(또는 적어도 이를 획득하는 방식을 가지지 않으면) 네트워크 디바이스는 IPv6 디바이스로부터 IPv4 디바이스로 리턴 패킷을 배송할 수 없을 것인 바, 그 이유는 IPv4 어드레스와 IPv6 어드레스 사이에는 어떤 상관성(correlation)도 없기 때문이다.
예시적인 구성에서, 네트워크는 N 개의 네트워크 디바이스들, M 개의 스위치들 및 X 개의 디바이스들을 포함한다. 네트워크는 적어도 하나의 네트워크 디바이스 및 하나의 스위치를 통해 제1 디바이스로부터 제2 디바이스로의 양방향 경로를 제공한다. 일부 구현들에서, 제1 디바이스는 IPv6 어드레스를 가지고, 제2 디바이스는 IPv4 어드레스를 가진다. 네트워크 디바이스는 제1 및 제2 디바이스들의 어드레스들을 관련시키는 룰을 레코드하도록 구성될 수 있다. 네트워크 디바이스는 이 룰을 이용하여 제2 디바이스로부터 제1 디바이스로 인바운드 트래픽을 포워딩할 수 있다. 인바운드 트래픽에 대한 경로(즉, 리턴 전송)는 아웃바운드 트래픽이 통과한 것과 동일한 네트워크 디바이스를 통해 패스될 수 있거나 또는 패스되지 않을 수 있다. 일부 구현들에서, 인바운드 트래픽에 대해 선택되는 네트워크 디바이스는 질의 생성기를 포함하며, 상기 질의 생성기는 다른 네트워크 디바이스들이 제1 및 제2 디바이스의 어드레스들을 관련시키는 룰을 포함하는지를 결정하기 위해 이들에게 질의들을 생성하도록 구성된다.
네트워크 디바이스가 어떻게 이러한 질의를 생성 및 전달할 수 있을지 구성하기 위한 많은 방식들이 존재한다. 예를 들어, 네트워크 디바이스는 필요한 룰을 획득할 때까지 또는 네트워크 디바이스들 중 어느 것으로부터 룰이 이용가능하지 않음을 결정할 때까지 각각의 네트워크 디바이스에게 순차적으로 질의할 수 있다. 다른 구성은 링 토폴로지를 이용하는 것이며, 여기서 제1 네트워크 디바이스는 제2 네트워크 디바이스에게 상기 제2 네트워크 디바이스가 특정된 룰을 가지는 맵을 포함하는지를 물어본다. 상기 제2 네트워크 디바이스가 상기 룰을 포함하지 않으면, 상기 제2 네트워크 디바이스는 제3 네트워크 디바이스에게 요청을 전송할 수 있다. 상기 제3 네트워크 디바이스가 룰을 포함하면, 이는 상기 제1 네트워크 디바이스에게 상기 룰의 카피를 전송하도록 구성될 수 있다.
마스터 제어기가 이용될 수 있고, 상기 마스터 제어기는 모든 룰들을 갖는 맵을 포함할 수 있으며, 각각의 네트워크 디바이스는 이들이 저장한 어떤 새로운 룰들의 카피를 전송해서, 각각의 네트워크 디바이스가 네트워크 디바이스에 국부적으로 저장되지 않은 룰의 카피를 획득하기 위해 마스터 제어기를 체크하기만 하면 되게 한다. 이들 및 다른 구성이 하기 도면들을 참조하여 기술된다.
일부 구현들에서, 오픈플로우 스위칭 사양(OpenFlow Switching Specification)이, 네트워크 디바이스들이 서로와 그리고/또는 마스터 제어기와 통신할 수 있는 프로토콜을 제공하기 위해 이용될 수 있다. 오픈플로우는 스플릿 제어 플래인 및 데이터 플래인을 이용하는 통신 프로토콜이다. 즉, 오픈플로우를 구현하는 네트워크는 예컨대 "이 패킷 특성이 요소 X와 매치되면, 기능 Y를 수행하라"와 같은 룰들을 가진 테이블들의 세트를 이들 내에 포함할 수 있다.
도 1a는 네트워크 디바이스(10)의 컴포넌트도를 예시한다. 도 1a에 예시된 컴포넌트들은 맵 관리자(105), 맵 갱신자(105), 룩업 엔진(110), 제1 어드레스 입력(120), 트래픽 포워더(130), 제2 어드레스 입력, 네트워크 디바이스(N.D.) 입력(150), 질의 생성기(155) 및 캡슐화해제기(decapsulator)(170)이다. 도 1b를 참조하면, 이들 컴포넌트들은 특정 컴퓨터화된 명령어들의 형태를 취할 수 있고, 이들은 유형의 컴퓨터 판독가능 저장 매체(20) 상에 저장될 수 있다. 프로세서(30)는 하기에 논의된 다수의 서로 다른 기능들을 구현하기 위해 이들 컴포넌트들을 실행하도록 구성될 수 있다. 상기 컴포넌트들은 또한, 이들 기능들을 구현하기 위해 특수화된 회로망의 형태를 취할 수 있다.
도 2는 제1 네트워크 디바이스(10A)를 예시한다. 이 구현에서, 상기 제1 네트워크 디바이스(10A) 박스 내부에 도시된 박스들 및 화살표들은 상기 제1 네트워크 디바이스에 의해 수행되는 컴포넌트들 및 프로세스들인 반면, 상기 제1 네트워크 디바이스(10A) 외부에 도시된 박스들 및 화살표들은 상기 제1 네트워크 디바이스(10A)에 의해 수행되지 않는다. 제1 디바이스(100)는 네트워크에 연결될 수 있다. 제1 디바이스(100)는 제1 네트워크 어드레스(105)를 가진다. 제1 네트워크 어드레스는 IPv4 어드레스일 수 있다. 상기 제1 디바이스는 제2 어드레스(205)를 가지는 제2 디바이스(200)에 데이터 패킷을 전송하도록 프로그래밍될 수 있다. 제2 어드레스는 IPv6 어드레스일 수 있다. 도시된 바와 같이, 제1 디바이스(100)는 제1 어드레스 입력(120)에서 제1 N.D.(네트워크 디바이스)(10A)에 의해 수신되는 데이터 패킷을 전송할 수 있다.
제1 네트워크 디바이스(10A)는 맵(107)을 생성 또는 갱신하기 위해 맵 관리자(105)를 실행할 수 있다. 맵(107)은 하나 이상의 어드레스들 사이의 관련성들을 포함하는 룰들을 포함할 수 있다. 맵 관리자(105)가 제1 디바이스(100)로부터 데이터 패킷을 수신할 때, 이는 다음의 룰을 생성할 수 있다: 패킷이 어드레스(205)에서의 제2 디바이스(200)로부터 수신되면, 어드레스(105)에서의 제1 디바이스로 패킷을 전달하라. 트래픽 포워더(130)는 제1 및 제2 디바이스들(및 도시되지 않은 추가적인 디바이스들)에 그리고 이들로부터 데이터 패킷들을 포워딩하도록 구성될 수 있다. 어느 어드레스에 전송할지에 관한 명령어들은 맵(107)으로부터 획득될 수 있다.
일단, 트래픽 포워더(130)가 제2 디바이스(200)에 패킷들을 포워딩(131)하면, 제2 디바이스는 데이터를 프로세스할 수 있다. 제2 디바이스는 제1 디바이스(또는 도시되지 않은 제3 디바이스)에 데이터 패킷을 다시 전송할 수 있다. 제2 디바이스로부터의 통신은 제2 디바이스 입력(140)에서 수신될 수 있다. 룩업 엔진(110)은 맵(107)에서 룰들에 대해 체크될 질의를 생성할 수 있다. 이 경우, 상기 질의는 맵이, 제1 디바이스(100)에 어떻게 메시지를 배송할지에 관한 룰들을 포함하는지를 결정하도록 맵 관리자(105)에게 요청할 수 있다. 구현에 따라, 답변은 예 또는 아니오일 수 있다. 답변이 예이면(111), 맵 관리자는 트래픽 포워더(130)에게 패킷을 전송하도록 룩업 엔진에게 명령할 수 있다. 맵 관리자는 트래픽 포워더(또는 룩업 엔진(110))에 제1 디바이스(100)의 어드레스를 공급할 수 있다. 일부 구현들에서, 룩업 엔진은 맵 관리자(105)에 액세스함이 없이 맵(107)에 액세스할 수 있다. 맵이 제1 디바이스(100)에 어떻게 메시지를 배송할지에 관한 명령어들을 포함하지 않으면(즉, "아니오" 결정(112)), 제1 네트워크 디바이스(10A)는 질의 생성기(155)를 이용하여 질의를 생성할 수 있다. 질의는 하나 이상의 다른 네트워크 디바이스들에 전송(160)될 수 있다.
도 2에서, 질의는 제2 네트워크 디바이스에 전송될 수 있다. 제1 네트워크 디바이스(10A)는 제2 네트워크 디바이스(10B)로부터 응답을 수신(165)할 수 있지만, 다른 실시예들에서 응답은 제3, 제4, 제5 또는 제N 네트워크 디바이스로부터 올 수 있다. 제2 네트워크 디바이스로부터의 응답은 필요한 룰을 포함할 수 있거나 또는 이는 제2 네트워크 디바이스(10B)가 요청된 룰을 포함하지 않음을 나타내는 응답을 포함할 수 있다. 전자(former)가 수신됨을 가정하여, 맵 갱신자(109)는 새로운 룰로 맵(107)을 갱신할 수 있다. 새로운 룰을 이용하여, 제1 네트워크 디바이스(10A)는 제1 디바이스(100)에 데이터 패킷을 배송할 것을 트래픽 포워더(130)에 명령(direct)할 수 있다.
IPv6 어드레스에서의 제1 디바이스로부터 전송된 IPv4 데이터 패킷들은 캡슐화될 수 있다. 캡슐화는 네트워크 내의 기능들을 추상화(abstraction)를 통해 이들의 기저 구조(underlying structure)로부터 국부적으로 분리하는 방식을 제공할 수 있다. 캡슐화된 통신 경로에서, 더 높은 계층 객체들이 기저 구조들에 포함될 수 있고 그럼으로써, 기저 구조들로부터의 정보를 숨길 수 있다. 예시적인 예에서, IPv6 어드레스를 가지는 듀얼 스택 라이트 디바이스가 AFTR에 의해 IPv4 어드레스에서의 제2 디바이스에 데이터 패킷을 전송하도록 구성된다. 듀얼 스택 라이트 디바이스는 출력 트래픽 내로 리턴 데이터를 캡슐화하도록 구성될 수 있어서, AFTR은 IPv4 디바이스로부터 듀얼 스택 라이트 디바이스로 트래픽을 리턴할 수 있다. AFTR은 매핑을 구성하기 위해 이 리턴 데이터를 이용할 수 있어서, AFTR이 IPv4 디바이스로부터 수신하는 향후의 통신들은 요구되는 IPv6 디바이스에 라우팅될 수 있다. 리턴 데이터는 IPv4 어드레스 공간 내의 "메일박스" 어드레스 및 듀얼 스택 라이트 디바이스 상의 실제 IPv6 어드레스를 포함할 수 있다. AFTR은 저장 매체 상에 "메일박스" IPv4 어드레스 및 IPv6의 이러한 매핑을 저장할 수 있어서, AFTR은 어떤 IPv6 디바이스가 IPv4 어드레스로 어드레싱된 패킷들을 수신해야 하는지를 결정할 수 있다. 듀얼 스택 라이트와 IPv4 디바이스 사이의 네트워크 인프라스트럭쳐가, 상기 듀얼 스택 라이트 디바이스로부터 인출 트래픽을 수신하는 AFTR가 상기 듀얼 스택 라이트 디바이스로 인바운드 트래픽을 수신하는 AFTR과 다를 수 있는 상황을 만들 수 있기 때문에, AFTR들은 AFTR 간의 통신들을 지원하기 위해 오픈플로우 프로토콜을 구현할 수 있다. 이러한 통신들은, 예컨대 AFTR이 인바운드 트래픽을 수신하고 IPv4 디바이스에 의해 특정된 IPv4 어드레스와 관련된 IPv6 어드레스에 대한 매핑을 포함하지 않는 경우, 일 AFTR로부터 제2 AFTR로의 매핑 정보의 전달을 지원하기 위해 이용될 수 있다.
예시적인 구성에서, 데이터 패킷은 데이터를 물리적으로 전송하도록 구성된 물리 게층을 포함한다. UDP(사용자 데이터그램 프로토콜, 즉 출력 포트를 선택하는 능력을 어플리케이션에 제공하도록 설계된 프로토콜), (로컬 영역 네트워킹을 제공하기 위한) 링크 캡슐화 및 (글로벌 어드레스 정보를 개인 클라이언트들에게 제공하기 위한) 인터넷 프로토콜과 같은 추가적인 특징들이 캡슐화를 통해 물리 계층에 추가될 수 있다.
아웃바운드 트래픽, 즉 IPv4 어드레스에서의 디바이스로부터 IPv6 어드레스에서의 디바이스로 전송된 데이터 패킷들은 캡슐화된 데이터를 포함할 수 있다. 네트워크 디바이스는 아웃바운드 캡슐화 데이터 패킷들을 캡슐화해제하기 위한 캡슐화해제기(170)를 포함할 수 있다. 예를 들어, 제1 디바이스로부터 데이터 패킷들은 캡슐화된 IPv4 트래픽을 포함할 수 있고, 캡슐화해제기는 IPv4 트래픽을 캡슐화해제하도록 구성될 수 있다.
도 3은 예시적인 구현에 따른 네트워크(3)를 도시한다. 네트워크(3)의 이 구성에는, 여섯 개의 디바이스들(100, 200, 300, 400, 500, 및 600), 4 개의 디바이스들(10A, 10B, 10C, 및 10D), 그리고 세 개의 스위치들(40A, 40B, 40C)이 존재한다. 디바이스들(100, 300, 및 500)은 제1 스위치(40A)에 연결되고, 제4 디바이스(400) 및 제2 디바이스(200)는 스위치(40B)를 통해 네트워크에 연결되며, 그리고 제6 디바이스(600)는 오직 스위치(40C)를 통해 연결된다.
예시적인 통신에서, 제1 디바이스(100)는 제2 디바이스(200)에 통신을 전송한다. 이 통신은 제1 스위치(40A)에서 수신되고, 상기 제1 스위치에서, 이는 네트워크 디바이스들(10A 내지 10D) 중 하나에 전달된다. 통신이 네트워크 디바이스(10B)를 통과함을 가정하여, 네트워크 디바이스(10B)는 룰을 생성하고 자신의 맵에 상기 룰을 저장할 수 있다. 데이터의 패킷은 제2 스위치(40B)에 배송될 수 있고, 상기 제2 스위치에서, 이는 그 다음, 제2 디바이스(200)에 포워딩된다.
제2 디바이스(200)가 제1 디바이스(100)에 통신을 다시 전송하면, 상기 통신은 제2 스위치(40B)를 통과할 것이다. 이 포인트에서, 제2 스위치(40B)는 네트워크 디바이스(10A 또는 10B)에 정보를 전송할 수 있다. 스위치(40B)는 어느 네트워크 디바이스가 초기 통신을 처리했는지를 결정하도록 구성되지 않을 수 있다. 스위치는 어느 네트워크 디바이스가 인바운드 트래픽을 수신해야 할지를 결정할 때, (로드, 네트워크 디바이스와 스위치 간의 거리, 시간 데이터, 등과 같은) 다른 기준을 이용할 수 있거나 또는 어떤 기준도 이용하지 않을 수 있다. 제2 스위치(40B)가 제1 네트워크 디바이스(10A)에 패킷을 전송함을 가정하여, 제1 네트워크 디바이스(10A)가 자신의 맵을 체크할 때, 상기 제1 네트워크 디바이스는 상기 맵이 제1 및 제2 디바이스들 사이의 어드레스 관련성에 관계된 어떤 룰들도 포함하지 않음을 결정할 것이다. 상기 제1 네트워크 디바이스는 이 관련성에 관계된 어떤 룰들도 포함하지 않는 바, 그 이유는 아웃바운드 트래픽이 제2 네트워크 디바이스를 통과했기 때문이다. 도 3에 도시된 구성에 따르면, 네트워크 디바이스(10A)는, 제2 네트워크 디바이스가 필수 룰(requisite rule)을 포함하는지를 알기 위해 네트워크 디바이스(10B)에 질의를 전송할 것이다. 네트워크 디바이스(10B)의 통신 경로는 오픈플로우 기술을 특징으로 할 수 있다.
도 4에 도시된 바와 같이, 네트워크 디바이스들은 서로와 통신하기 위해 오픈플로우 제어기(50)를 이용하여 통신할 수 있다. 이 예시적인 예에서, 제1 디바이스(전송자)(100)는 인터넷(60)을 통해 제2 디바이스(응답자)(200)와 통신할 수 있다. 예시된 바와 같이, (IPv4 어드레스에 위치될 수 있는) 제1 디바이스로부터 시작하여 (IPv6 어드레스에 위치될 수 있는) 제2 디바이스로의 트래픽의 경로는 리턴 경로와 다르다. 그 결과 응답자(200)로부터의 트래픽이 제2 네트워크 디바이스(10B)에 도달할 때, 제2 네트워크 디바이스(10B)는 제1 디바이스로부터 제2 디바이스로의 매핑을 포함하지 않는 바(그 반대 역시 동일), 그 이유는 제1 디바이스(100)로부터 제2 디바이스(200)로의 트래픽이 제1 네트워크 디바이스(10A)를 통과했기 때문이다. 매핑 정보 없이는, 제2 네트워크 디바이스는 제1 디바이스(100)에 트래픽을 포워딩할 수 없다. 그러나, 이 실시예에서, 제2 네트워크 디바이스는 오픈플로우 제어기(50)를 통해 제1 네트워크 디바이스와 통신할 수 있다. 오픈플로우 제어기는 제1 디바이스에 매핑 정보에 대한 요청을 제출하고 그리고/또는 제2 네트워크 디바이스(10B)로부터 트래픽을 전달할 수 있다. 전자의 구성에서, 제어되는 오픈플로우는 제1 네트워크 디바이스(10A)로부터 (제1 디바이스 및 제2 디바이스를 매핑하는) 매핑 데이터를 수신하고, 그 매핑 데이터를 제2 네트워크 디바이스(10B)에 제공할 수 있다. 제2 네트워크 디바이스(10B)는 일단 필수 매핑을 수신하면, 제1 디바이스에 트패픽을 다시 라우팅하도록 구성될 수 있다. 후자의 구성에서, 제2 네트워크 디바이스는 제2 디바이스로부터 제1 네트워크 디바이스(10A)에 트래픽을 전달할 수 있다. 자신만의 매핑 테이블들을 이용하여, 제1 네트워크 디바이스는 제1 디바이스(100)에 트래픽을 라우팅하도록 구성될 수 있다. 일부 실시예들에서, 오픈플로우 제어기는 제어기를 통과하는 모든 매핑 테이블들의 카피를 유지할 수 있다. 제2 네트워크 디바이스는 필수 룰을 포함한다. 제2 네트워크 디바이스(10B)는 제1 네트워크 디바이스로 하여금 제1 디바이스의 어드레스를 결정하도록 하기 위해 필요한 룰을 전송하는 데 오픈플로우를 이용하도록 구성될 수 있다.
도 5는 마스터 제어기(250)를 포함하는 네트워크(3)를 도시한다. 도 5에서, 각각의 네트워크 디바이스는 룰들이 저장됨에 따라 마스터 제어기에 상기 룰들을 분배하도록 구성된다. 그 결과, 마스터 제어기(250)는 네트워크를 통해 정보를 전송하는 모든 디바이스들에 대한 룰들을 포함한다. 네트워크 디바이스에 의해 질의될 때, 마스터 제어기(250)는 필요한 룰로 응답할 수 있다. 룰의 수신은 네트워크 디바이스로 하여금 특정 디바이스에 통신을 포워딩하도록 할 수 있다. 마스터 제어기와 네트워크 디바이스들 사이의 통신 경로들을 위해 오픈플로우가 이용될 수 있다.
예시적인 구성에서, (AFTR과 같은) 네트워크 디바이스는 업스트림 네트워크와 페이싱하는 인터페이스를 갖는 네트워크의 각각의 에지(즉, 네트워크 경계(border)로도 알려진 관리자 도메인의 에지)에 디플로이될 수 있다. 네트워크 디바이스(AFTR)는 독립적인 시스템들로서 또는 기존 피어링 라우터(peering router)들(피어링 라우터는 서로 다른 자율적인 시스템에서 라우터와 라우팅 정보를 교환하는 라우터이며, 라우팅 데이터 및 트래픽을 교환하는 두 개의 자율적인 시스템들이 피어들로 지칭된다) 상에서 이러한 기능을 동작하게 함으로써 존재할 수 있다. 네트워크 디바이스는 또한, 오픈플로우 클라이언트(예컨대, 오픈플로우 사양에 따라 매치-동작 테이블을 구현하는 네트워크 요소) 및 오픈플로우 제어기(예컨대, 오픈플로우 클라이언트들을 프로그래밍하는 네트워크 내의 디바이스) 코드를 포함할 수 있다. 추가적으로, 네트워크 디바이스는 경계 라우터, 즉 다른 자율 시스템(예컨대, 조직의 네트워크 경계)에서 라우터들로의 네트워크 연결을 가지고 그리고 경계 게이트웨이 프로토콜과 같은 외부 게이트 프로토콜을 이용하여 통신할 수 있는 네트워크 디바이스일 수 있다.
예를 들어, 도 6에서, 라우팅 디바이스(10A)는 또한, 경계 라우터, AFTR(AFTR1), 오픈플로우 클라이언트 1 및 오픈플로우 제어기 2일 수 있다. AFTR 즉 어드레스 군 변환기는 동일한 노드 상에서 구현되는 IPv4-인-IPv6 터널 종점(IPv4-in-IPv6 tunnel endpoint) 및 IPv4-IPv4 NAT(네트워크 어드레스 변환기)의 결합인 어떤 디바이스일 수 있다. 라우팅 디바이스(10B)는 또한, 경계 라우터 및 AFTR 2이다. 라우팅 디바이스(10B)는 또한, 오픈플로우 클라이언트 2 및 오픈플로우 제어기 1이다. 스위치들 1 및 2(스위치(40A 및 40B))뿐만 아니라 네 개의 IPv6 클라이언트들(700A 내지 700D) 및 IPv4 인터넷(800)이 도 6에 역시 도시된다.
다운스트림 트래픽의 수신 시, 네트워크 1은 다음 프로세스를 수행할 수 있다. 패킷은 IPv4 인터넷(800)으로부터 라우팅 디바이스로 경로 1 또는 경로 2를 통해 전송될 수 있다. 패킷이 경로 1을 통과함을 가정하여, 제1 AFTR 디바이스(AFTR1)는 유입 패킷의 목적지 필드에서 IPv4 어드레스/포트 투플 사이의 매핑에 대해 로컬 매핑 캐시를 체크할 수 있다. 제1 AFTR 디바이스가 캐시 내의 매핑을 아는 경우, 이는 자신의 캐시를 리매핑하고, FRC 6333에 정의된 바와 같이 맵에 의해 결정되는 목적지 IPv6(즉, 매핑 엔트리를 생성한 트래픽의 본래의 전송자)에 패킷을 포워딩한다. 제1 AFTR 디바이스가 캐시 미스(cache miss)를 알면(이는 제1 AFTR 디바이스가 매핑 테이블에서 어떤 매핑도 발견하지 못하는 것, 즉 테이블 미스를 의미한다), 이는 자신과 관련된 식별자로 패킷을 마킹한다. AFTR 디바이스는 패킷의 어느 필드들이 오픈플로우 통신에 대해 달리 사용되지 않는지에 따라, 디바이스의 내부 구성에 따라 다양하게 패킷을 마킹할 수 있다. 캐시 미스 시, AFTR은 그 다음, 제2 AFTR(AFTR 2)에 오픈플로우 제어 채널을 따라 패킷을 포워딩할 수 있다.
AFTR2가 적절한 매핑을 가지면, 이는 요구되는 매핑을 수행함으로써 최종 목적지에 패킷을 포워딩한다. AFTR 2는 마킹 시 식별되는 AFTR 제어기 내로 매핑을 인스톨하기 위해 오픈플로우 제어 메시지를 이용할 수 있다. 오픈플로우 제어 메시지는 매핑 테이블 엔트리로 삽입된다. AFTR2가 적절한 매핑을 가지지 않으면, 이는 자신에 대한 마킹을 추가하고, 프로세스를 반복할 수 있는 자신의 오픈플로우 제어기(AFTR3)로서 확립된 AFTR에 패킷을 포워딩할 수 있다.
패킷이 모든 이용가능한 AFTR들을 방문하고도 여전히 미스 상태(miss)이면(즉, 각각의 라우터가 매핑 테이블을 체크할 때 캐시 미스를 직면하면), 패킷은 드롭된다(즉, 삭제됨, 더이상 전송되지 않음). 일부 구성들에서, 통지가 자신의 캐시를 체크한 마지막 AFTR로부터 패킷의 소스로 배송되어 상기 소스가 패킷이 드롭되었음을 알게 할 수 있다.
일부 예시적인 구성들은 두 개의 AFTR들을 특징으로 할 것이지만, 네트워크는 두 개보다 많은 AFTR들을 특징으로 할 수 있다. 두 개보다 많은 AFTR들을 포함하는 네트워크들에서, AFTR들은 오픈플로우 클라이언트들과 오픈플로우 제어기들의 시퀀스를 통한 알려진 가까운 경로(closed path)가 존재하도록 구성될 수 있다(이 맥락에서, "가까운"은 로컬 토폴로지에서 모든 AFTR들을 터치(touch)하기 위해 알려진 루프가 없는 경로(loop-free path)를 의미한다). 두 개의 AFTR들을 특징으로 하는 구성들에 대해, AFTR1은 자신의 피어(오픈플로우와 통신하는 동일한 클래스의 디바이스)로부터 도착하는 패킷들에 대한 AFTR2의 오픈플로우 클라이언트로서 역할을 할 것이지만, AFTR1은 자신의 피어 AFTR3으로부터 도착하는 AFTR2 패킷들에 대해 오픈플로우 제어기로서 역할을 할 것이다. 두 개보다 많은 라우터들을 특징으로 하는 구성들에 대해, 가상 링 토폴로지가 이용될 수 있다.
본 명세서에 기술된 본 발명의 구현들 및 동작들은 디지털 전자 회로망에 또는 유형 매체 상에 수록된 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에 개시된 구조들 및 이들의 균등물들을 포함하는 하드웨어에, 또는 이들 중 하나 이상의 조합들에 구현될 수 있다. 본 명세서에 기술된 본 발명의 구현들은 유형 매체 상에 수록된 하나 이상의 컴퓨터 프로그램들로, 즉 데이터 프로세싱 장치에 의한 실행을 위한 또는 상기 데이터 프로세싱 장치의 동작을 제어하기 위한 하나 이상의 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 컴퓨터 저장 매체는, 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 시리얼 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 또는 이에 포함될 수 있다. 컴퓨터 저장 매체는 또한, 하나 이상의 개별 컴포넌트들 또는 매체(예컨대, 복수의 CD들, 디스크들, 또는 다른 저장 디바이스들)일 수 있거나 또는 이들에 포함될 수 있다. 컴퓨터 저장 매체는 유형이며 비일시적일 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들 상에 저장되거나 또는 다른 소스들로부터 수신된 데이터 상에서 데이터 프로세싱 장치에 의해 수행되는 동작들로 구현될 수 있다.
용어 "클라이언트" 또는 "서버"는 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩, 또는 복수의 전술한 것들 또는 전술한 것들의 조합을 포함하여 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 머신들을 포함한다. 장치는 특수용 로직 회로망, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)을 포함할 수 있다. 장치는 또한, 하드웨어에 추가적으로, 당해의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 유형 매체 상에 수록된 코드, 예컨대 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산형 컴퓨팅 및 그리드 컴퓨팅 인프라스트럭쳐와 같은 다양한 서로 다른 컴퓨팅 모델 인프라스트럭쳐들을 실현할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 또는 코드로도 알려진) 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들, 선언형 또는 절차형 언어들을 포함하여 프로그래밍 언어의 어떤 형태로 쓰여질 수 있고, 이는 독립형 프로그램 또는 컴퓨팅 환경에서 사용을 위해 적절한 모듈, 컴포넌트, 서브루틴, 객체 또는 다른 유닛으로서의 형태를 포함하여 어떤 형태로 디플로이될 수 있다. 컴퓨터 프로그램은 반드시 그러한 것은 아니지만, 파일 시스템 내의 파일에 대응할 수 있다. 프로그램은 다른 프로그램들 또는 데이터를 유지하는 파일의 일부(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)에, 당해의 프로그램에 전용인 단일 파일에 또는 복수의 조직화된 파일들(예컨대, 하나 이상의 모듈들, 서브-프로그램들 또는 코드의 일부들을 저장한 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 일 컴퓨터 상에서 또는, 일 사이트에 위치되거나 또는 복수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결된 복수의 컴퓨터들 상에서 실행되도록 디플로이될 수 있다.
본 명세서에 기술된 프로세스들 및 로직 흐름들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 동작들을 수행하도록 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램가능 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 장치에 의해 수행될 수 있고, 장치는 또한 특수용 로직 회로망, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은, 예로서, 범용 및 특수용 마이크로프로세서들 및 어떤 종류의 디지털 컴퓨터의 어떤 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들에 따라 동작들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 매스 저장 디바이스들, 예컨대 자기, 자기 광학 디스크들, 또는 광학 디스크들을 포함하거나 또는 이들로부터 데이터를 수신하거나 또는 이들에 데이터를 전달하거나 또는 이 두가지 모두를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터는 반드시 이러한 디바이스들을 가질 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 예컨대 몇가지 예를 들자면, 모바일 전화기, 개인용 디지털 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 포터블한 저장 디바이스(예컨대, USB 플래시 드라이브)에 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적절한 디바이스들은, 예로서 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM 및 플래시 메모리 디바이스들, 자기 디스크들, 예컨대 내부 하드 디스크들 또는 탈착가능 디스크들, 자기 광학 디스크들, 및 CD-ROM 및 DVD-ROM 디스크들을 포함하여 비 휘발성 메모리, 매체 및 메모리 디바이스들의 모든 형태를 포함한다. 프로세서 및 메모리는 특수용 로직 회로망에 의해 보충되거나 또는 이에 통합될 수 있다.
사용자와의 인터랙션을 제공하기 위해, 본 명세서에 기술된 본 발명의 구현들은 디스플레이 디바이스, 예컨대 CRT(cathode ray tube), LCD(liquid crystal display), OLED(organic light emitting diode), TFT(thin-film transistor), 플라즈마, 다른 플렉서블 구성 또는 사용자에게 정보를 디스플레이하기 위한 어떤 다른 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드, 포인팅 디바이스, 예컨대 마우스, 트랙볼, 등 또는 터치 스크린, 터치 패드, 등을 구비한 컴퓨터 상에 구현될 수 있다. 다른 종류의 디바이스들이 마찬가지로 사용자와의 인터랙션을 제공하기 위해 사용될 수 있는 바, 예를 들어 사용자에게 제공되는 피드백은 감각적 피드백, 예컨대 시각적 피드백, 청각적 피드백 또는 촉각적 피드백의 어떤 형태일 수 있고, 사용자로부터의 입력은 음향, 스피치 또는 촉각 입력을 포함하는 어떤 형태로 수신될 수 있다. 추가적으로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 상기 디바이스로부터 문서들을 수신함으로써 사용자와 인터랙션할 수 있는 바, 예컨대 웹 브라우져로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우져에 웹페이지들을 전송함으로써 사용자와 인터랙션할 수 있다.
본 명세서에 기술된 본 발명의 구현들은 컴퓨팅 시스템에 구현될 수 있는 바, 상기 컴퓨팅 시스템은 예컨대 데이터 서버로서 백-엔드 컴포넌트를 포함하거나 또는 미들웨어 컴포넌트 예컨대, 어플리케이션 서버를 포함하거나 또는 프론트-엔드 컴포넌트, 예컨대 사용자가 본 명세서에 기술된 본 발명의 구현과 인터랙션할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우져를 가진 클라이언트 컴퓨터 또는 하나 이상의 이러한 백-엔드, 미들웨어 또는 프론트-엔드 컴포넌트들의 어떤 조합을 포함한다. 시스템의 컴포넌트들은 디지털 데이터 통신, 예컨대, 통신 네트워크의 어떤 형태 또는 매체에 의해 상호연결될 수 있다. 통신 네트워크들의 예들은 로컬 영역 네트워크(LAN) 및 광역 네트워크(WAN), 인터-네트워크(예컨대, 인터넷) 및 피어-투-피어 네트워크들(예컨대, 애드혹 피어-투-피어 네트워크들)을 포함한다.
본 명세서에 개시된 특징들은 스마트 텔레비젼 모듈(또는 연결된 텔레비젼 모듈, 하이브리드 텔레비젼 모듈, 등) 상에 구현될 수 있으며, 상기 스마트 텔레비젼 모듈은 (예컨대, 케이블, 위성, 방송(over-the-air) 또는 다른 신호들을 통해 수신되는) 더욱 종래의 텔레비젼 프로그래밍 소스들과의 인터넷 연결성을 통합하도록 구성된 프로세싱 회로를 포함할 수 있다. 스마트 텔레비젼 모듈은 텔레비젼 셋 내로 물리적으로 통합될 수 있거나 또는 셋-탑 박스, 블루레이 또는 다른 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비젼 시스템, 및 다른 동반 디바이스와 같은 별개의 디바이스를 포함할 수 있다. 스마트 텔레비젼 모듈은, 뷰어들로 하여금 웹, 로컬 케이블 TV 채널, 위성 TV 채널 상의 또는 로컬 하드 드라이브 상에 저장된 비디오들, 영화들, 사진들 및 다른 컨텐트를 검색 및 발견할 수 있게 하도록 구성될 수 있다. 셋-탑 박스(STB) 또는 셋-탑 유닛(STU)은, 튜너를 포함하거나 또는 텔레비젼 셋 및 신호의 외부 소스에 연결될 수 있는 정보 어플리케이션 디바이스를 포함하여 신호를 컨텐트로 튜닝하는 바, 상기 컨텐트는 그 다음, 텔레비젼 스크린 또는 다른 디스플레이 디바이스 상에 디스플레이된다. 스마트 텔레비젼 모듈은 홈 스크린 또는, 웹 브라우져 및 복수의 스트리밍 미디어 서비스들, 연결된 케이블 또는 위성 미디어 소스, 다른 웹 "채널들" 등과 같은 복수의 서로 다른 어플리케이션들에 대한 아이콘들을 포함하는 탑 레벨 스크린을 제공하도록 구성된다. 스마트 텔레비젼 모듈은 또한, 사용자에게 전자 프로그래밍 가이드를 제공하도록 구성될 수 있다. 스마트 텔레비젼 모듈에 대한 동반 어플리케이션은 사용자에게 이용가능한 프로그램들에 관한 추가적인 정보를 제공하고, 사용자로 하여금 스마트 텔레비젼 모듈을 제어하게 하는 등을 위해 모바일 컴퓨팅 디바이스 상에서 동작가능할 수 있다. 대안적인 실시예들에서, 특징들은 랩탑 컴퓨터 또는 다른 개인용 컴퓨터, 스마트폰, 다른 모바일 폰, 핸드핼드 컴퓨터, 태블릿 PC 또는 다른 컴퓨팅 디바이스 상에 구현될 수 있다.
본 명세서가 많은 특정 구현 세부사항들을 포함하지만, 이들은 어떤 발명들의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특별한 발명들의 특별한 구현들에 특정한 특징들의 설명들로서 해석되어야 한다. 별개의 구현들의 맥락에서 본 명세서에 기술된 특정 특징들은 또한, 단일 구현에서 조합하여 구현될 수 있다. 역으로, 단일 구현의 맥락에서 기술된 다양한 특징들은 또한, 복수의 구현들에서 개별적으로 또는 어떤 적절한 부조합으로 구현될 수 있다. 더욱이, 비록 특징들이 특정 구현들에서 동작하는 것으로 상기에 기술되고 심지어는 그러하게 초기에 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 부조합 또는 부조합의 변형으로 유도될 수 있다.
유사하게, 동작들이 특별한 순서로 도면들에 도시되지만, 이는 바람직한 결과들을 달성하기 위해 이러한 동작들이 도시된 특별한 순서 또는 순차적인 순서로 수행되어야 하거나 또는 모든 예시된 동작들이 수행되어야 함을 요하는 것으로 해석되어서는 안된다. 특정 상황들에서, 멀티태스킹 및 병렬 프로세싱이 장점적일 수 있다. 더욱이, 상기 기술된 구현들에서 다양한 시스템 컴포넌트들의 분리가 모든 구현에서의 이러한 분리를 요하는 것으로 해석되어서는 안되며, 기술된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 물에 함께 통합되거나 또는 복수의 소프트웨어 물들 내로 패키징될 수 있음이 이해되어야 한다.
따라서, 본 발명의 특별한 구현들이 기술되었다. 다른 구현들이 다음의 특허청구범위 내에 있다. 일부 경우들에서, 특허 청구 범위에 기재된 동작들은 다른 순서로 수행될 수 있으며, 여전히 바람직할 결과들을 달성할 수 있다. 추가적으로, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 반드시 도시된 순서 또는 순차적인 순서를 요하지 않는다. 특정 구현들에서, 멀티태스킹 또는 병렬 프로세싱이 활용될 수 있다.

Claims (22)

  1. 제1 네트워크 디바이스로서,
    트래픽 정보, 룩업 엔진을 위한 명령어들, 맵 관리자, 트래픽 포워더 및 맵을 저장하도록 구성되는 유형의 컴퓨터 판독가능 저장 매체;
    상기 유형의 컴퓨터 판독가능 저장 매체에 데이터를 저장하고, 그리고 상기 룩업 엔진을 위한 명령어들을 실행하도록 구성되는 프로세서;
    제1 어드레스에서의 제1 컴퓨팅 디바이스로부터 비롯되고 제2 어드레스에서의 제2 컴퓨팅 디바이스로 향하는 아웃바운드 트래픽(outbound traffic)을 수신하도록 구성되는 제1 어드레스 입력 ― 상기 아웃바운드 트래픽은 데이터 패킷 및 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스를 포함함 ―;
    상기 제1 컴퓨팅 디바이스로부터 상기 제2 컴퓨팅 디바이스로 향하는 상기 아웃바운드 트래픽을 수신하는 것에 응답하여, 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스를 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 관련시키는 제1 룰(rule)로 상기 유형의 컴퓨터 판독가능 저장 매체에 저장된 상기 맵을 갱신하도록 구성되는 상기 맵 관리자;
    상기 아웃바운드 트래픽을 상기 제2 컴퓨팅 디바이스로 포워딩하도록 구성되는 상기 트래픽 포워더;
    리턴 트래픽(return traffic)을 수신하도록 구성되는 제2 어드레스 입력;
    상기 프로세서에 의해 실행가능하며, 상기 프로세서로 하여금,
    제1 소스 어드레스 및 제1 목적지 어드레스를 포함하는 제1 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제1 소스 어드레스를 상기 제1 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하고,
    상기 제1 목적지 어드레스가 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스와 매칭(match)하고 상기 제1 소스 어드레스가 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 매칭한다는 결정에 응답하여, 상기 제1 룰을 리턴하고 ― 상기 명령어들은 상기 프로세서로 하여금 상기 제1 룰에 근거하여 상기 제1 수신된 리턴 트래픽 패킷을 상기 제1 컴퓨팅 디바이스로 포워딩하도록 함 ―,
    제2 소스 어드레스 및 제2 목적지 어드레스를 포함하는 제2 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하며, 그리고
    상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 제2 네트워크 디바이스로 질의 ― 상기 질의는 상기 제2 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 물어봄 ―를 전송하게 하는 명령어들을 포함하는 상기 룩업 엔진;
    상기 질의에 대한 응답을 수신하도록 구성되는 네트워크 디바이스 입력 ― 상기 응답은 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 제2 룰을 포함함 ―; 및
    상기 질의에 대한 응답에 근거하여 상기 맵을 갱신하도록 구성되는 맵 갱신자를 포함하는, 제1 네트워크 디바이스.
  2. 제1항에 있어서,
    상기 제1 어드레스는 인터넷 프로토콜 버전 6(IPv6) 어드레스이고, 상기 제2 어드레스는 인터넷 프로토콜 버전 4(IPv4) 어드레이스인, 제1 네트워크 디바이스.
  3. 제1항에 있어서,
    상기 제1 어드레스는 IPv4 어드레스이고, 상기 제2 어드레스는 IPv6 어드레이스인, 제1 네트워크 디바이스.
  4. 제1항에 있어서,
    상기 제1 컴퓨팅 디바이스로부터 비롯되는 상기 아웃바운드 트래픽은 캡슐화된 IPv4 트래픽을 포함하는, 제1 네트워크 디바이스.
  5. 제1항에 있어서,
    IPv6 캡슐화 IPv4 트래픽(IPv6 encapsulated IPv4 traffic)을 캡슐화해제하도록 구성되는 캡슐화해제기를 포함하는, 제1 네트워크 디바이스.
  6. 적어도 제1 네트워크 디바이스 및 제2 네트워크 디바이스를 포함하는 N 개의 네트워크 디바이스들의 시스템으로서, 상기 제1 네트워크 디바이스는,
    트래픽 정보, 룩업 엔진을 위한 명령어들, 트래픽 포워더 및 맵을 저장하도록 구성되는 유형의 컴퓨터 판독가능 저장 매체;
    상기 유형의 컴퓨터 판독가능 저장 매체에 데이터를 저장하고, 그리고 상기 룩업 엔진을 위한 명령어들을 실행하도록 구성되는 프로세서;
    제1 어드레스에서의 제1 컴퓨팅 디바이스로부터 비롯되고 제2 어드레스에서의 제2 컴퓨팅 디바이스로 향하는 아웃바운드 트래픽을 수신하도록 구성되는 제1 어드레스 입력 ― 상기 아웃바운드 트래픽은 데이터 패킷 및 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스를 포함함 ―;
    상기 유형의 컴퓨터 판독가능 저장 매체에 저장된 맵 ― 상기 맵은 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스를 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 관련시키는 제1 룰을 포함함 ―;
    상기 아웃바운드 트래픽을 상기 제2 컴퓨팅 디바이스로 포워딩하도록 구성되는 트래픽 포워더;
    리턴 트래픽을 수신하도록 구성되는 제2 어드레스 입력;
    상기 프로세서에 의해 실행가능하며, 상기 프로세서로 하여금,
    제1 소스 어드레스 및 제1 목적지 어드레스를 포함하는 제1 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제1 소스 어드레스를 상기 제1 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하고,
    상기 제1 목적지 어드레스가 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스와 매칭하고 상기 제1 소스 어드레스가 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 매칭한다는 결정에 응답하여, 상기 제1 룰을 리턴하고 ― 상기 명령어들은 상기 프로세서로 하여금 상기 제1 룰에 근거하여 상기 제1 수신된 리턴 트래픽 패킷을 상기 제1 컴퓨팅 디바이스로 포워딩하게 함 ―,
    제2 소스 어드레스 및 제2 목적지 어드레스를 포함하는 제2 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하며, 그리고
    상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 제2 네트워크 디바이스로 질의 ― 상기 질의는 상기 제2 네트워크 디바이스에게 상기 제2 네트워크 디바이스가 상기 제2 소스 어드레스와 상기 제2 목적지 어드레스를 관련시키는 어떤 룰을 포함하는지를 물어봄 ―를 전송하게 하도록 구성되는 상기 룩업 엔진;
    상기 질의에 대한 응답을 수신하도록 구성되는 네트워크 디바이스 입력 ― 상기 응답은 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 제2 룰을 포함함 ―; 및
    상기 질의에 대한 응답에 근거하여 상기 맵을 갱신하도록 구성되는 맵 갱신자를 포함하고,
    N은 2 보다 크거나 같은 정수인, N 개의 네트워크 디바이스들의 시스템.
  7. 제6항에 있어서,
    상기 제2 네트워크 디바이스는, 상기 제2 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함한다는 결정에 응답하여, 상기 제2 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함하는 답신(reply)을 상기 제1 네트워크 디바이스로 포워딩하도록 구성되는, N 개의 네트워크 디바이스들의 시스템.
  8. 제7항에 있어서,
    상기 제1 네트워크 디바이스는 상기 제2 컴퓨팅 디바이스로부터 수신된 상기 리턴 트래픽을 상기 제1 컴퓨팅 디바이스에 연결된 스위치로 포워딩하는, N 개의 네트워크 디바이스들의 시스템.
  9. 제7항에 있어서,
    상기 제1 네트워크 디바이스는 상기 제2 컴퓨팅 디바이스로부터 수신된 상기 리턴 트래픽을 상기 제2 네트워크 디바이스로 포워딩하고, 그리고 상기 제2 네트워크 디바이스는 상기 리턴 트래픽을 상기 제1 컴퓨팅 디바이스에 연결된 스위치로 포워딩하는, N 개의 네트워크 디바이스들의 시스템.
  10. 제6항에 있어서,
    상기 제2 네트워크 디바이스는, 상기 제2 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 제2 네트워크 디바이스가 상기 질의를 제3 네트워크 디바이스로 포워딩하도록 구성되는, N 개의 네트워크 디바이스들의 시스템.
  11. 제7항에 있어서,
    상기 제1 네트워크 디바이스는 상기 리턴 트래픽을 상기 제1 컴퓨팅 디바이스로 포워딩하는, N 개의 네트워크 디바이스들의 시스템.
  12. 제7항에 있어서,
    상기 제1 네트워크 디바이스는 상기 제2 컴퓨팅 디바이스로부터 수신된 상기 리턴 트래픽을 상기 제2 네트워크 디바이스로 포워딩하고, 그리고 상기 제2 네트워크 디바이스는 상기 리턴 트래픽을 상기 제1 컴퓨팅 디바이스로 포워딩하는, N 개의 네트워크 디바이스들의 시스템.
  13. 제10항에 있어서,
    제3 네트워크 디바이스를 더 포함하며, 상기 제3 네트워크 디바이스는,
    상기 제3 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하고,
    상기 제3 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함한다는 결정에 응답하여, 상기 제3 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함하는 답신을 상기 제1 네트워크 디바이스로 포워딩하며,
    상기 제3 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 제3 네트워크 디바이스가 상기 질의를 제N 네트워크 디바이스로 포워딩하도록 구성되는, N 개의 네트워크 디바이스들의 시스템.
  14. 제13항에 있어서,
    상기 제N 네트워크 디바이스는,
    상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하고,
    상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 제2 룰을 포함한다는 결정에 응답하여, 상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함하는 답신을 상기 제1 네트워크 디바이스로 포워딩하며,
    상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 제N 네트워크 디바이스가 상기 N 개의 네트워크 디바이스들의 시스템이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 것을 나타내는 메시지를 상기 제1 네트워크 디바이스로 전송하도록 구성되는, N 개의 네트워크 디바이스들의 시스템.
  15. 제13항에 있어서,
    상기 제N 네트워크 디바이스는,
    상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하고,
    상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함한다는 결정에 응답하여, 상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함하는 답신을 상기 제1 네트워크 디바이스로 포워딩하며,
    상기 제N 네트워크 디바이스가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 제N 네트워크 디바이스가 상기 질의를 다시 상기 제1 네트워크 디바이스로 전송하도록 구성되는, N 개의 네트워크 디바이스들의 시스템.
  16. 제15항에 있어서,
    상기 제1 네트워크 디바이스는,
    상기 제N 네트워크 디바이스로부터 상기 질의의 카피(copy)를 수신하고,
    상기 시스템 내의 네트워크 디바이스들 중 어느 것도 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하지 않다는 것을 결정하고,
    상기 제1 네트워크 디바이스가 상기 트래픽을 상기 제1 컴퓨팅 디바이스로 포워딩할 수 없다는 통지를 상기 제2 컴퓨팅 디바이스로 전송하며, 그리고
    상기 리턴 트래픽을 드롭(drop)시키도록 구성되는, N 개의 네트워크 디바이스들의 시스템.
  17. 적어도 제1 네트워크 디바이스 및 제2 네트워크 디바이스를 포함하는 N 개의 네트워크 디바이스들의 네트워크로서, 상기 제1 네트워크 디바이스는,
    트래픽 정보, 룩업 엔진을 위한 명령어들, 트래픽 포워더 및 맵을 저장하도록 구성된 유형의 컴퓨터 판독가능 저장 매체;
    상기 유형의 컴퓨터 판독가능 저장 매체에 데이터를 저장하고, 그리고 상기 룩업 엔진을 위한 명령어들을 실행하도록 구성된 프로세서;
    제1 어드레스에서의 제1 컴퓨팅 디바이스로부터 비롯되고 제2 어드레스에서의 제2 컴퓨팅 디바이스로 향하는 아웃바운드 트래픽을 수신하도록 구성되는 제1 어드레스 입력 ― 상기 아웃바운드 트래픽은 데이터 패킷 및 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스를 포함함 ―;
    상기 유형의 컴퓨터 판독가능 저장 매체에 저장된 상기 맵 ― 상기 맵은 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스를 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 관련시키는 제1 룰을 포함함 ―;
    상기 아웃바운드 트래픽을 상기 제2 컴퓨팅 디바이스로 포워딩하도록 구성되는 상기 트래픽 포워더;
    리턴 트래픽을 수신하도록 구성되는 제2 어드레스 입력;
    상기 프로세서에 의해 실행가능하며, 상기 프로세서로 하여금,
    제1 소스 어드레스 및 제1 목적지 어드레스를 포함하는 제1 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제1 소스 어드레스를 상기 제1 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하고,
    상기 제1 목적지 어드레스가 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스와 매칭하고 상기 제1 소스 어드레스가 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 매칭한다는 결정에 응답하여, 상기 제1 룰을 리턴하고 ― 상기 명령어들은 상기 프로세서로 하여금 상기 제1 룰에 근거하여 상기 제1 수신된 리턴 트래픽 패킷을 상기 제1 컴퓨팅 디바이스로 포워딩하게 함 ―,
    제2 소스 어드레스 및 제2 목적지 어드레스를 포함하는 제2 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하며, 그리고
    상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 마스터 제어기로 질의 ― 상기 질의는 상기 마스터 제어기에게 상기 마스터 제어기가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 물어봄 ―를 전송하게 하도록 구성되는 상기 룩업 엔진;
    상기 질의에 대한 응답을 수신하도록 구성되는 네트워크 디바이스 입력 ― 상기 응답은 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 제2 룰을 포함함 ―; 및
    상기 질의에 대한 응답에 근거하여 상기 맵을 갱신하도록 구성되는 맵 갱신자를 포함하고,
    N은 2 보다 크거나 같은, N 개의 네트워크 디바이스들의 네트워크.
  18. 제17항에 있어서,
    상기 마스터 제어기가 상기 네트워크 내에서 통신하는 모든 디바이스들에 대한 매핑을 포함하도록 시스템 내의 모든 추가적인 네트워크 디바이스들은 상기 마스터 제어기로 디바이스 매핑 데이터를 전송하도록 구성되는, N 개의 네트워크 디바이스들의 네트워크.
  19. 제17항에 있어서,
    상기 마스터 제어기는,
    상기 마스터 제어기가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하고,
    상기 마스터 제어기가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함한다는 결정에 응답하여, 상기 마스터 제어기가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 상기 제2 룰을 포함하는 답신을 상기 제1 네트워크 디바이스로 포워딩하며,
    상기 마스터 제어기가 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 마스터 제어기가 상기 마스터 제어기는 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 것을 나타내는 답신을 상기 제1 네트워크 디바이스로 전송하도록 구성되는, N 개의 네트워크 디바이스들의 네트워크.
  20. 제17항에 있어서,
    상기 제1 네트워크 디바이스는 오픈플로우(OpenFlow) 및 AFTR(Address Family Translator Routing)을 구현하는, N 개의 네트워크 디바이스들의 네트워크.
  21. N 개의 네트워크 디바이스들의 네트워크와 통신하는 제1 네트워크 디바이스로서, 상기 제1 네트워크 디바이스는,
    IPv6 어드레스에서의 제1 컴퓨팅 디바이스로부터 IPv6 캡슐화 IPv4 트래픽을 수신하도록 구성된 IPv6 입력 ― 상기 IPv6 캡슐화 IPv4 트래픽은 IPv4 어드레스에서의 제2 컴퓨팅 디바이스로 지향됨 ―;
    상기 제1 컴퓨팅 디바이스의 상기 IPv6 어드레스를 상기 제2 컴퓨팅 디바이스의 상기 IPv4 어드레스와 관련시키는 제1 룰을 포함하는 맵을 생성하도록 구성되는 맵 생성기;
    상기 IPv6 캡슐화 IPv4 트래픽을 캡슐화해제하도록 구성되는 캡슐화해제기;
    캡슐화해제된 IPv4 트래픽을 포워딩하도록 구성되는 IPv4 트래픽 포워더;
    리턴 트래픽을 수신하도록 구성되는 IPv4 입력; 및
    룩업 엔진을 포함하고, 상기 룩업 엔진은,
    제1 IPv4 소스 어드레스 및 제1 IPv6 목적지 어드레스를 포함하는 제1 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제1 IPv4 소스 어드레스를 상기 제1 IPv6 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하고,
    상기 맵이 상기 제1 IPv4 소스 어드레스를 상기 제1 IPv6 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 룩업 엔진이 제2 네트워크 디바이스로 질의 ― 상기 질의는 상기 제2 네트워크 디바이스에게 상기 제2 네트워크 디바이스가 상기 제1 IPv4 소스 어드레스를 상기 제1 IPv6 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 물어봄 ―를 전송하고,
    제2 IPv4 소스 어드레스 및 제2 IPv6 목적지 어드레스를 포함하는 제2 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제2 IPv4 소스 어드레스를 상기 제2 IPv6 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하고,
    상기 제2 IPv6 목적지 어드레스가 상기 제1 컴퓨팅 디바이스의 상기 IPv6 어드레스와 매칭하고 상기 제2 IPv4 소스 어드레스가 상기 제2 컴퓨팅 디바이스의 상기 IPv4 어드레스와 매칭한다는 결정에 응답하여, 상기 제1 룰을 리턴하고 ― 상기 제1 네트워크 디바이스는 상기 제2 수신된 리턴 트래픽 패킷을 상기 제1 컴퓨팅 디바이스로 포워딩함 ―,
    상기 제2 네트워크 디바이스가 상기 제1 IPv4 소스 어드레스를 상기 제1 IPv6 목적지 어드레스와 관련시키는 제2 룰을 포함한다는 결정에 응답하여, 상기 제2 네트워크 디바이스가 상기 제1 IPv4 소스 어드레스를 상기 제1 IPv6 목적지 어드레스와 관련시키는 상기 제2 룰을 상기 제1 네트워크 디바이스로 포워딩하고, 상기 제1 네트워크 디바이스가 상기 제2 룰을 저장하며, 그리고 상기 제1 네트워크 디바이스가 상기 제2 리턴 트래픽 패킷을 상기 제1 IPv6 어드레스에 위치한 상기 제1 컴퓨팅 디바이스로 포워딩하고,
    상기 제2 네트워크 디바이스가 상기 제1 IPv4 소스 어드레스를 상기 제1 IPv6 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 제2 네트워크 디바이스가 상기 질의를 제3 네트워크 디바이스로 전송하도록 구성되는, 제1 네트워크 디바이스
  22. 제1 네트워크 디바이스로서,
    트래픽 정보, 룩업 엔진을 위한 명령어들, 맵 관리자, 트래픽 포워더 및 맵을 저장하도록 구성되는 유형의 컴퓨터 판독가능 저장 매체;
    상기 유형의 컴퓨터 판독가능 저장 매체에 데이터를 저장하고 그리고 상기 룩업 엔진을 위한 명령어들을 실행하도록 구성되는 프로세서;
    제1 어드레스에서의 제1 컴퓨팅 디바이스로부터 비롯되고 제2 어드레스에서의 제2 컴퓨팅 디바이스로 향하는 아웃바운드 트래픽을 수신하도록 구성되는 제1 어드레스 입력 ― 상기 아웃바운드 트래픽은 데이터 패킷 및 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스를 포함함 ―;
    상기 제1 컴퓨팅 디바이스로부터 상기 제2 컴퓨팅 디바이스로 향하는 상기 아웃바운드 트래픽을 수신하는 것에 응답하여, 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스를 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 관련시키는 제1 룰로 상기 유형의 컴퓨터 판독가능 저장 매체에 저장된 상기 맵을 갱신하도록 구성되는 상기 맵 관리자;
    상기 아웃바운드 트래픽을 상기 제2 컴퓨팅 디바이스로 포워딩하도록 구성되는 상기 트래픽 포워더;
    리턴 트래픽을 수신하도록 구성되는 제2 어드레스 입력;
    상기 프로세서에 의해 실행가능하며, 상기 프로세서로 하여금,
    제1 소스 어드레스 및 제1 목적지 어드레스를 포함하는 제1 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제1 소스 어드레스를 상기 제1 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하고,
    상기 제1 목적지 어드레스가 상기 제1 컴퓨팅 디바이스의 상기 제1 어드레스와 매칭(match)하고 상기 제1 소스 어드레스가 상기 제2 컴퓨팅 디바이스의 상기 제2 어드레스와 매칭한다는 결정에 응답하여, 상기 제1 룰을 리턴하고 ― 상기 명령어들은 상기 프로세서로 하여금 상기 제1 룰에 근거하여 상기 제1 수신된 리턴 트래픽 패킷을 상기 제1 컴퓨팅 디바이스로 포워딩하게 함 ―,
    제2 소스 어드레스 및 제2 목적지 어드레스를 포함하는 제2 수신된 리턴 트래픽 패킷에 대하여, 상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰을 포함하는지를 결정하기 위해 상기 맵을 체크하며, 그리고
    상기 맵이 상기 제2 소스 어드레스를 상기 제2 목적지 어드레스와 관련시키는 어떤 룰도 포함하지 않는다는 결정에 응답하여, 상기 리턴 트래픽의 적어도 하나의 패킷을 상기 제1 네트워크 디바이스와 관련되는 식별자로 마킹(mark)하고, 그리고 적어도 하나의 마킹된 패킷을 포함하는 상기 리턴 트래픽을 제2 네트워크 디바이스로 포워딩하게 하는 명령어들을 포함하는 상기 룩업 엔진을 포함하는, 제1 네트워크 디바이스.
KR1020157010640A 2012-09-25 2013-09-10 네트워크 디바이스 KR101987987B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/626,719 2012-09-25
US13/626,719 US9553801B2 (en) 2012-09-25 2012-09-25 Network device
PCT/US2013/059018 WO2014051995A1 (en) 2012-09-25 2013-09-10 Network device

Publications (2)

Publication Number Publication Date
KR20150063466A KR20150063466A (ko) 2015-06-09
KR101987987B1 true KR101987987B1 (ko) 2019-06-11

Family

ID=50338808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010640A KR101987987B1 (ko) 2012-09-25 2013-09-10 네트워크 디바이스

Country Status (8)

Country Link
US (1) US9553801B2 (ko)
EP (1) EP2901637B1 (ko)
JP (1) JP6283676B2 (ko)
KR (1) KR101987987B1 (ko)
CN (1) CN104704781B (ko)
DE (1) DE202013012474U1 (ko)
DK (1) DK2901637T3 (ko)
WO (1) WO2014051995A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5880315B2 (ja) * 2012-07-02 2016-03-09 富士通株式会社 システム管理装置、システムの管理方法、及びシステムの管理プログラム
CN103067534B (zh) * 2012-12-26 2016-09-28 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机
FI124398B (en) * 2013-01-04 2014-08-15 Tellabs Oy A method and apparatus for determining a lookup table implementation for a network element of a software configurable network
JP2014135592A (ja) * 2013-01-09 2014-07-24 Sony Corp 情報処理装置、情報処理方法及び情報処理システム
US9191318B1 (en) * 2013-04-29 2015-11-17 Cisco Technology, Inc. Transitioning between communication protocols between networks
US9009353B1 (en) 2014-04-11 2015-04-14 Cable Television Laboratories, Inc. Split network address translation
CN104734963B (zh) * 2015-03-24 2018-07-13 电子科技大学 一种基于SDN的IPv4和IPv6网络互连方法
US10135791B2 (en) * 2015-08-25 2018-11-20 Anchorfree Inc. Secure communications with internet-enabled devices
US10164836B2 (en) * 2015-12-22 2018-12-25 Amazon Technologies, Inc. Shifting network traffic from a network device
US10740710B2 (en) 2016-03-25 2020-08-11 Nebbiolo Technologies, Inc. Fog computing facilitated flexible factory
US10798063B2 (en) * 2016-10-21 2020-10-06 Nebbiolo Technologies, Inc. Enterprise grade security for integrating multiple domains with a public cloud
CN109120601A (zh) * 2018-07-24 2019-01-01 深圳市天威视讯股份有限公司 基于点播信令的IPv4与IPv6互通方法和系统
US11121932B2 (en) * 2019-04-10 2021-09-14 Cisco Technology, Inc. Method and apparatus for model mapping and dynamically enabling external model on the network device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251335A1 (en) 2003-05-28 2010-09-30 Pyda Srisuresh Policy based network address translation
US20110310898A1 (en) 2010-06-17 2011-12-22 Microsoft Corporation 4to6 network stack for ipv4 applications
US20110317554A1 (en) 2010-06-28 2011-12-29 Microsoft Corporation Distributed and Scalable Network Address Translation

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1421810B1 (en) 2001-08-29 2007-10-31 Research In Motion Limited System and method for addressing a mobile device in an ip-based wireless network
JP3876741B2 (ja) * 2002-03-27 2007-02-07 株式会社日立製作所 プロトコル変換方法及び装置
US6865184B2 (en) 2003-03-10 2005-03-08 Cisco Technology, Inc. Arrangement for traversing an IPv4 network by IPv6 mobile nodes
US20060031506A1 (en) * 2004-04-30 2006-02-09 Sun Microsystems, Inc. System and method for evaluating policies for network load balancing
ATE400157T1 (de) * 2004-11-12 2008-07-15 Nokia Siemens Networks Gmbh Ein ringnetz für ein burst-geschaltetes netz mit verteiltem management
KR100666987B1 (ko) * 2004-11-15 2007-01-10 삼성전자주식회사 이중스택 전환 메커니즘을 이용한 IPv4-IPv6 전환시스템 및 그 방법
US20090292824A1 (en) * 2005-01-21 2009-11-26 Internap Network Services Corporation System And Method For Application Acceleration On A Distributed Computer Network
JP4591338B2 (ja) * 2005-12-16 2010-12-01 パナソニック電工株式会社 通信システム
US20090260023A1 (en) * 2008-04-11 2009-10-15 Hewlett-Parckard Development Commpany, Lp Multiplexing Reserved Ports
US8873545B2 (en) * 2009-02-16 2014-10-28 Nec Corporation Gateway apparatus, system and method
JP5333095B2 (ja) * 2009-09-10 2013-11-06 沖電気工業株式会社 アドレス変換・プロトコル変換システム、並びに、トランスレータ装置及びトランスレータプログラム
CN102025608B (zh) 2009-09-17 2013-03-20 中兴通讯股份有限公司 通信方法、通信过程中的数据报文转发方法及通信节点
JP5333599B2 (ja) * 2009-10-30 2013-11-06 富士通株式会社 アドレス変換装置、アドレス変換方法、およびアドレス変換プログラム
EP2494747B1 (fr) 2009-10-30 2023-08-16 Transpacific IP Group Limited PROCÉDÉS ET DISPOSITIFS DE ROUTAGE DE PAQUETS DE DONNÉES ENTRE RÉSEAUX IPv4 ET IPv6
CN102131233B (zh) * 2010-01-18 2015-07-22 中兴通讯股份有限公司 基于ds-lite的数据包发送方法及装置
US8451739B2 (en) * 2010-04-15 2013-05-28 Silver Spring Networks, Inc. Method and system for detecting failures of network nodes
CN102244688B (zh) * 2010-05-11 2014-07-16 华为技术有限公司 一种报文转发的方法、装置及系统
US8504722B2 (en) * 2010-06-14 2013-08-06 Telefonaktiebolaget Lm Ericsson Enhancing DS-lite with private IPV4 reachability
CN102137172B (zh) * 2010-11-24 2015-04-08 华为终端有限公司 一种dns服务器访问方法及一种访问设备
CN102546362A (zh) * 2010-12-20 2012-07-04 中兴通讯股份有限公司 报文处理方法、系统和用户前端设备
CN102170395A (zh) * 2011-04-21 2011-08-31 中兴通讯股份有限公司 数据的传输方法及网络设备
US9548959B2 (en) * 2012-03-23 2017-01-17 Cisco Technology, Inc. Address resolution suppression for data center interconnect
CN102685263B (zh) * 2012-04-26 2015-08-12 中兴通讯股份有限公司 恢复aftr的动态映射的方法、aftr及b4

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251335A1 (en) 2003-05-28 2010-09-30 Pyda Srisuresh Policy based network address translation
US20110310898A1 (en) 2010-06-17 2011-12-22 Microsoft Corporation 4to6 network stack for ipv4 applications
US20110317554A1 (en) 2010-06-28 2011-12-29 Microsoft Corporation Distributed and Scalable Network Address Translation

Also Published As

Publication number Publication date
EP2901637A1 (en) 2015-08-05
EP2901637A4 (en) 2016-05-25
JP2015533050A (ja) 2015-11-16
DE202013012474U1 (de) 2017-01-17
CN104704781A (zh) 2015-06-10
US9553801B2 (en) 2017-01-24
JP6283676B2 (ja) 2018-02-21
WO2014051995A1 (en) 2014-04-03
CN104704781B (zh) 2018-01-23
DK2901637T3 (en) 2019-04-01
US20140086254A1 (en) 2014-03-27
EP2901637B1 (en) 2018-12-19
KR20150063466A (ko) 2015-06-09

Similar Documents

Publication Publication Date Title
KR101987987B1 (ko) 네트워크 디바이스
US9281955B2 (en) Interoperability of data plane based overlays and control plane based overlays in a network environment
US9686194B2 (en) Adaptive multi-interface use for content networking
Melazzi et al. An openflow-based testbed for information centric networking
JP6367371B2 (ja) ネットワークパケットカプセル化およびルーティング
CN106105135B (zh) 命名数据网络中可扩展内容路由和移动性的方法和装置
US20130332619A1 (en) Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking
US20170034055A1 (en) Handling Consumer Mobility in Information-Centric Networks
JP6544401B2 (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
Guimaraes et al. Experimenting content-centric networks in the future internet testbed environment
JP2014507916A5 (ko)
JP5754506B2 (ja) 通信システム、コントローラ、スイッチ、ストレージ管理装置、及び通信方法
WO2015186366A1 (ja) データ転送システム、データ転送サーバ、データ転送方法、および、プログラム記録媒体
KR20160002154A (ko) Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치
CN104518959A (zh) 一种设备间通信的方法及装置
JP4432626B2 (ja) マルチキャストツリー構築システム及び方法、ネットワークノード装置並びにサーバ装置
US10033642B2 (en) System and method for making optimal routing decisions based on device-specific parameters in a content centric network
JP4642649B2 (ja) 中継装置
JP6251654B2 (ja) 通信システム、識別子管理装置、及び識別子割り当て方法
KR20130138670A (ko) 컨텐츠 중심 네트워크의 인트라 도메인(intra domain) 및 인터 도메인(inter domain)에서 노드가 컨텐츠를 검색하는 방법 및 그 노드
US11616716B1 (en) Connection ownership gossip for network packet re-routing
KR20170011323A (ko) 식별자 기반의 소스 라우팅 방법 및 이를 위한 장치
JP5810047B2 (ja) 通信システム、及びパケット通信方法
JP2014216680A (ja) 疎通確認装置、ネットワークシステム、疎通確認方法、および疎通確認プログラム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant