KR101688984B1 - 데이터 플로우 처리를 위한 방법 및 디바이스 - Google Patents
데이터 플로우 처리를 위한 방법 및 디바이스 Download PDFInfo
- Publication number
- KR101688984B1 KR101688984B1 KR1020157011759A KR20157011759A KR101688984B1 KR 101688984 B1 KR101688984 B1 KR 101688984B1 KR 1020157011759 A KR1020157011759 A KR 1020157011759A KR 20157011759 A KR20157011759 A KR 20157011759A KR 101688984 B1 KR101688984 B1 KR 101688984B1
- Authority
- KR
- South Korea
- Prior art keywords
- port
- credential
- data
- flow tag
- source device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000005111 flow chemistry technique Methods 0.000 title 1
- 230000002776 aggregation Effects 0.000 claims abstract description 72
- 238000004220 aggregation Methods 0.000 claims abstract description 72
- 238000013507 mapping Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 27
- 238000010200 validation analysis Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 6
- 238000007789 sealing Methods 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims 3
- 238000004891 communication Methods 0.000 abstract description 11
- 238000007726 management method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 239000004744 fabric Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
네트워크 환경에서 데이터 교환을 관리하기 위한 방법 및 시스템이 개시된다. 플로우태그는 소스 디바이스(112-1)에서의 데이터 패킷에 할당된다. 플로우태그는 취합 디바이스(200)에서의 포트(포트 2)에 대응하는 포트 아이디를 포함한다. 수신지 디바이스(112-2)는 취합 디바이스에서의 포트와 통신하고 있다. 데이터 패킷은 취합 디바이스에서 인증된다. 인증된 데이터 패킷의 플로우태그 내 포트 아이디에 따라 취합 디바이스를 통하여 소스 디바이스로부터 수신지 디바이스로 데이터 패킷이 출력된다.
Description
본 발명은 일반적으로는 데이터 네트워크에 관한 것으로, 더 구체적으로는, 데이터 네트워크 디바이스 간 데이터 플로우를 제어하기 위한 방법 및 시스템에 관한 것이다.
데이터 센터와 같은 대규모 네트워크 환경은 사업장 및 조직을 지원하는 인터넷 및 인트라넷 서비스를 제공할 수 있다. 전형적 데이터 센터는 컴퓨터, 도메인 네임 시스템(domain name system: DNS) 서버, 네트워크 스위치, 라우터(router), 데이터 저장 디바이스 등과 같은 다양한 유형의 전자 장비를 소장할 수 있다. 데이터 센터는 스위치, 라우터 등을 포함하는 스위칭 아키텍처를 통하여 서로 그리고 외부 디바이스와 통신하는 수백 또는 수천의 상호접속된 호스트 디바이스, 예를 들어, 서버 노드를 가질 수 있다. 호스트 디바이스와 네트워크 스위치 간 데이터 교환에 있어서, 호스트 디바이스는, 예를 들어, 이더넷 프레임으로 데이터 페이로드와 수신지 맥(MAC) 어드레스를 스위치에 송신한다. 차례로 스위치는 데이터 페이로드의 의도된 수신지를 결정하기 위해 MAC 어드레스를 디코딩한다. 관용적 네트워크 스위치는 전형적으로는 데이터를 수신지 디바이스에 출력하기 위해 수신지 디바이스 MAC 어드레스 및 스위치 포트 정보와 같은 정보를 포워딩하는 프레임을 포함하는 컨텐트 어드레싱가능한 메모리(CAM) 테이블로 구성된다.
일 태양에 의하면, 네트워크 환경에서 데이터 교환을 관리하기 위한 방법이 제공된다. 플로우태그(flowtag)는 소스 디바이스에 송신된다. 플로우태그는 취합 디바이스에서의 포트에 대응하는 포트 아이디(port identification)를 포함한다. 플로우태그를 포함하는 데이터 패킷이 소스 디바이스로부터 수신된다. 데이터 패킷은 취합 디바이스에서 인증된다. 인증된 데이터 패킷은 인증된 데이터 패킷의 플로우태그 내 포트 아이디에 따라 출력된다.
다른 일 태양에 의하면, 데이터 패킷을 처리(processing)하기 위한 방법이 제공된다. 소스 디바이스는 취합 디바이스에서 발생된 플로우태그 및 크리덴셜(credential)을 수신한다. 플로우태그는 라우팅 데이터(routing data)를 포함한다. 플로우태그를 포함하는 데이터 패킷 및 대응하는 데이터 유닛을 소스 디바이스로부터 취합 디바이스로 출력한다.
다른 일 태양에 의하면, 소스 디바이스, 수신지 디바이스 및 취합 디바이스를 포함하는 데이터 네트워크가 제공된다. 소스 디바이스는 데이터 전송 연산에서 플로우태그를 데이터 패킷에 할당한다. 수신지 디바이스는 데이터 전송 연산에서 데이터 패킷을 수신한다. 취합 디바이스는 소스 디바이스가 통신하고 있는 제1 포트 및 수신지 디바이스가 통신하고 있는 제2 포트를 갖는다. 취합 디바이스는 플로우태그 내 라우팅 데이터를 처리하고 플로우태그를 봉인하는 크리덴셜을 타당성 검증하는 패킷 관리 디바이스를 포함한다. 플로우태그 내 라우팅 데이터는 제2 포트에 대응하는 포트 아이디를 포함한다. 취합 디바이스는 플로우태그 내 포트 아이디에 따라 소스 디바이스로부터 수신지 디바이스로 데이터 패킷을 전송한다.
다른 일 태양에 의하면, 소스 디바이스와 통신하고 있는 제1 포트, 수신지 디바이스와 통신하고 있는 제2 포트, 및 매핑 테이블을 포함하는 패킷 관리 디바이스를 포함하는 취합 디바이스가 제공된다. 매핑 테이블은 제1 포트와 소스 디바이스 간 제1 매핑 및 제2 포트와 수신지 디바이스 간 제2 매핑을 포함한다. 패킷 관리 디바이스는 소스 디바이스로부터 데이터 유닛을 수신하고 데이터 유닛이 제공되는 제2 포트와 관련된 정보에 따라 데이터를 수신지 디바이스로 라우팅한다.
다른 일 태양에 의하면, 컴퓨터 판독가능 프로그램 코드가 내장되어 있는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 판독가능 프로그램 코드는 플로우태그를 소스 디바이스에서의 데이터 패킷에 할당하도록 구성된 컴퓨터 판독가능 프로그램 코드를 포함한다. 플로우태그는 취합 디바이스에서의 포트에 대응하는 포트 아이디를 포함한다. 수신지 디바이스는 취합 디바이스에서의 포트와 통신한다. 컴퓨터 판독가능 프로그램 코드는 취합 디바이스에서 데이터 패킷을 인증하도록 구성된 컴퓨터 판독가능 프로그램 코드 및 인증된 데이터 패킷 내 포트 아이디에 따라 취합 디바이스를 통하여 소스 디바이스로부터 수신지 디바이스로 데이터 패킷을 출력하도록 구성된 컴퓨터 판독가능 프로그램 코드를 더 포함한다.
본 발명의 상기 및 추가적 이점은, 첨부 도면과 함께 이하의 설명을 참조함으로써 더 잘 이해될 수 있으며, 첨부 도면에서 유사한 참조 부호는 다양한 도면에서 유사한 구조적 요소 및 특징을 나타낸다. 도면은 반드시 일정 축척으로 되어 있는 것은 아니며, 대신에 본 발명의 원리를 예시하는데 강조점을 둔다.
도 1은 본 발명의 개념의 실시예가 실시될 수 있는 컴퓨팅 환경의 블록 선도;
도 2는 일 실시예에 따라, 도 1의 취합 시스템의 패킷 관리 디바이스의 블록 선도;
도 3은 일 실시예에 따라, 네트워크 환경에서 데이터 교환을 관리하기 위한 방법의 순서도;
도 4는 다른 일 실시예에 따라, 네트워크 환경에서 데이터 교환을 관리하기 위한 방법의 순서도;
도 5는 일 실시예에 따라, 패킷을 인증하기 위한 방법의 순서도;
도 6은 일 실시예에 따라, 서버 노드로부터 취합 디바이스로 출력되는 패킷의 컨텐트를 예시하는 선도; 및
도 7은 일 실시예에 따라, 타당성 검증 프로세스를 예시하는 상세한 블록 선도.
도 1은 본 발명의 개념의 실시예가 실시될 수 있는 컴퓨팅 환경의 블록 선도;
도 2는 일 실시예에 따라, 도 1의 취합 시스템의 패킷 관리 디바이스의 블록 선도;
도 3은 일 실시예에 따라, 네트워크 환경에서 데이터 교환을 관리하기 위한 방법의 순서도;
도 4는 다른 일 실시예에 따라, 네트워크 환경에서 데이터 교환을 관리하기 위한 방법의 순서도;
도 5는 일 실시예에 따라, 패킷을 인증하기 위한 방법의 순서도;
도 6은 일 실시예에 따라, 서버 노드로부터 취합 디바이스로 출력되는 패킷의 컨텐트를 예시하는 선도; 및
도 7은 일 실시예에 따라, 타당성 검증 프로세스를 예시하는 상세한 블록 선도.
이하의 설명에서 특정 상세가 제시되기는 하지만, 그 시스템 및 방법은 그 상세 중 적어도 일부 없이 실시될 수 있음을 당업자라면 인식하여야 한다. 일부 경우에 있어서, 기지의 특징 및 프로세스는 본 발명을 모호하게 하지 않도록 상세히 설명되지는 않는다.
관용적 서버 노드는 데이터 패킷을 네트워크 스위치에 송신하고, 그것은 데이터 패킷이 제공되는 소스 및 수신지 MAC 어드레스에 따라 그 수신지 디바이스에 데이터 패킷을 포워딩한다. 그렇지만, 스위치의 CAM 테이블의 관리는 소정 세트의 로직-집약적 단계를 요구하며, 그것은 MAC 어드레스 룩업 또는 관련 디코딩 기능, MAC 어드레스-대-포트 매핑 등을 포함한다. 이러한 비용이 드는 처리는 가상 머신(VM)이 네트워크 스위치로의 각각의 접속에 대해 제공되는 경우 및 각각의 VM이 하나 이상의 MAC 어드레스를 요구하는 경우의 가상 네트워크 구성에서 확대될 수 있다.
본 발명의 개념의 일부 특징은 데이터 센터와 같은 네트워크 환경에서 취합 디바이스와 통신하고 있는 하나 이상의 서버 노드 간 교환되는 데이터 패킷, 프레임, 셀, 또는 다른 고정량 또는 가변량의 데이터의 라우팅을 효율적으로 제어하고, 데이터의 전송과 관련된 보안-관련 속성, 예를 들어, 소스 MAC 어드레스 타당성 검증, 가상 랜(VLAN) 멤버십, 및 수신지 MAC 어드레스 필터링을 집행하기 위한 접근법을 포함할 수 있다. 취합 디바이스는 취합 디바이스를 통하여 수신지 디바이스에 데이터 패킷을 라우팅하라는 요청을 소스 디바이스로부터 수신한다. 취합 디바이스는 수신지 디바이스의 MAC 어드레스에 매핑되는 포트 식별자 등을 포함하는 플로우태그를 발생시킨다. 취합 디바이스는 또한 플로우태그를 봉인하는데 사용될 수 있는 크리덴셜을 발생시킬 수 있다. 플로우태그는 소스 디바이스에 의해 수신되고 플로우태그 캐시에 저장된다. 크리덴셜에 부가하여, 플로우태그는 데이터를 수신지 디바이스로 라우팅하기 위해 MAC 어드레스 대신에 취합 디바이스에 의해 사용되는 다른 라우팅 정보 또는 스위치 포트 번호를 포함할 수 있다. 후속의 데이터 교환 동안, 취합 디바이스는 소스 디바이스로부터 수신된 패킷을 플로우태그 내 포트 번호 또는 관련 식별자에 대응하는 포트로 지향시킨다. 취합 디바이스는 MAC 어드레스 대신에 데이터를 라우팅하도록 수신된 플로우태그로부터의 포트 번호 등을 사용한다. 따라서, MAC 어드레스 룩업은 필요하지 않다. 이것은 디코딩 기능 등이 하드웨어-집약적 CAM 테이블 대신에 취합 디바이스에서 소프트웨어로 수행될 수 있게 하고, 그리하여 MAC 어드레스를 처리할 때 일반적으로 요구되는 하드웨어 수고를 감축한다.
본 발명의 개념의 관련, 부가적 또는 대안의 특징은 또한, 특히 가상화 애플리케이션에 있어서, 스푸핑 등에 MAC 어드레스의 노출 위험을 감축할 수 있다. 이것은 패킷을 수신지 디바이스로 라우팅하기 이전에, 플로우태그 컨텐트를 봉인하는, 플로우태그와 수신된 크리덴셜을 타당성 검증하는 취합 디바이스에 의해 달성될 수 있다. 크리덴셜은 취합 디바이스에서 크리덴셜을 재계산하고 그것을 수신된 크리덴셜에 비교함으로써 타당성 검증될 수 있다.
도 1은 본 발명의 개념의 실시예가 실시될 수 있는 컴퓨팅 환경(10)의 블록 선도이다. 컴퓨팅 환경(10)은 네트워크의 구성요소 간 데이터가 교환되는 데이터 네트워크를 포함할 수 있다. 컴퓨팅 환경(10)은 복수의 서버 노드(112-1 내지 112-N)(일반적으로는, 112)를 포함하며, 여기서 N은 0보다 큰 정수이다. 서버 노드(112)는 취합 디바이스(200)와의 통신 경로(116)를 확립하도록 주변 소자 상호연결 익스프레스(Peripheral Component Interconnect Express: PCIe) 커넥터 등에 의해 취합 디바이스(200)에 각각 결합된다. 서버 노드(112)는 PCIe 인터페이스 등에 의해 취합 디바이스(200)에 배속된 단일 소켓 서버 또는 관련 마이크로프로세서 디바이스를 포함할 수 있다. 다른 저-전력 호스트 디바이스가 취합 디바이스(200)와 통신하도록 구성 및 배열될 수 있다. 서버 노드(112)는 프로세서 클러스터 또는 다른 주지의 배열로서 구성 및 배열될 수 있다. 하나 이상의 서버 노드(112)는 가상화형 또는 비-가상화형일 수 있다
서버 노드(112)는 하나 이상의 네트워크 인터페이스, 예를 들어, NIC들을 포함한다. 가상화형 서버 노드 및/또는 취합 디바이스(200)는 다수의 가상 네트워크 인터페이스 카드(virtual network interface card: vNIC)를 포함할 수 있다.
서버 노드(112)는 프로세서(102)를 포함하며, 그것은 하나 이상의 마이크로프로세서, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 메모리 컨트롤러, 멀티-코어 프로세서, 또는 다른 유형의 데이터 처리 디바이스, 또는 이들 및 다른 디바이스의 일부 및 조합을 포함할 수 있다.
서버 노드(112)는 또한 메모리를 포함한다(도시되지 않음). 메모리는 비-휘발성 또는 휘발성 메모리, 예를 들어, DRAM 또는 정적 RAM(SRAM)일 수 있다. 메모리(104)는 프로세서(102)에 의해 실행되는 운영 체제, 하나 이상의 애플리케이션 또는 다른 소프트웨어 프로그램의 프로그램 코드를 저장하여 포함한다. 또한 메모리(104)는 노드 인터페이스(122), 디바이스 드라이버(124), 플로우태그 캐시(126) 및 네트워크 스택(128) 중 일부 또는 전부를 저장하여 포함할 수 있다.
노드 인터페이스(122)는 PCIe 포트 또는 관련 네트워크 커넥터를 포함하고, 취합 디바이스(200)와의 통신 경로(116)를 확립하도록 디바이스 드라이버(124)와 통신할 수 있다.
플로우태그 캐시(126)는 MAC 어드레스-대-라우팅 정보 맵 데이터를 저장한다. 라우팅 정보는 수신지 디바이스에 대응하는 출구 포트 또는 다른 식별자를 포함할 수 있다. 일 실시예에 있어서, 플로우태그 캐시(126)는 투플, 예를 들어, {수신지 MAC 어드레스, VLAN 태그(존재하는 경우)}을 가변 길이 플로우태그에 매핑한다. 예를 들어, 플로우태그 캐시(126)는 취합 디바이스(200)에서의 포트 2와 서버 노드(112-2)의 MAC 어드레스를 매핑할 수 있다. 플로우태그는 취합 디바이스(200)에 이더넷 프레임 또는 다른 데이터 유닛, 예를 들어, 셀, 패킷 등과 송신되는 헤더 내에 삽입될 수 있다.
호스트 드라이버라고도 지칭되는 드라이버(124)는 플로우태그 캐시(126)를 관리할 수 있다. 일 실시예에 있어서, 드라이버(124)는 취합 디바이스(200)에서의 vNIC에 의해 지원되는 가상 큐, 또는 가상 큐(218)와 통신하는 가상 큐 인터페이스(132)를 포함한다.
네트워크 스택(128)은 네트워크 통신을 위한 다-계층 소프트웨어 스택을 포함할 수 있다. 네트워크 스택(128)은 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 또는 인터넷 프로토콜(IP) 스위트에 포함된 관련 프로토콜을 포함할 수 있다. 네트워크 스택(128)은, 예를 들어, 개방형 시스템 상호접속(OSI) 모델을 준수하는 다른 네트워크, 전송, 및/또는 링크 계층, 또는 다른 추상화 계층을 포함할 수 있다. 예를 들어, 네트워크 스택(128)의 링크 계층은 소스 및 수신지 MAC 어드레스를 배속시킬 수 있어서, 데이터 패킷이 서버 노드(112-1) 상의 특정 네트워크 인터페이스, 예를 들어, 인터페이스(122)로 지향될 수 있게 한다.
위에서 설명된 바와 같이, 서버 노드(112-1)는 가상화형일 수 있다. 가상화형 서버 노드(112-1)는 하나 이상의 가상 머신(도시되지 않음) 또는 게스트, 하이퍼바이저, 및/또는 다른 가상화 구성요소를 포함할 수 있어서, 서버 노드(112-1)가, 취합 디바이스(200)와 통신하고 있는 물리적 NIC(242), 및/또는 BIOS, HBA 또는 다른 하드웨어 디바이스와 같은, 하드웨어를 공유할 수 있게 한다.
취합 디바이스(200)는, 서버 노드(112)가 하나 이상의 원격 전자 디바이스(152)와 통신할 수 있도록, 서버 노드(112)와 하나 이상의 네트워크 인터페이스 카드(NIC)(242) 또는 관련 네트워크 어댑터 사이에 결합될 수 있다. 취합 디바이스(200)는 관용적 서버 랙에서 사용되는 전통적 이더넷 스위칭 요건 중 일부 또는 전부를 대체하는, 클러스터 내에 조직될 수 있는, 서버 노드(112)에 대한 접속 패브릭으로서 사용될 수 있다.
취합 디바이스(200)는 스위치 패브릭(202), 입/출력(I/O) 프로세서(204), 패킷 관리 디바이스(210), 복수의 포트 1-N, 및 대응하는 복수의 포트 프로세서(216-1 내지 216-N)를 포함할 수 있고, 여기서 N은 1보다 큰 정수이다.
포트 1-N은 입력 포트 및/또는 출력 포트일 수 있다. 포트 프로세서(216)는 서버 노드(112)와의 통신 경로(116)를 형성하는 PCIe 링크 등을 제공할 수 있다. 포트 프로세서(216)는 서버 노드(112)로부터의 인커밍 패킷을 처리하도록 송신 및/또는 수신 제어 로직 및 디코딩 로직을 포함할 수 있다.
스위치 패브릭(202)은 서버 노드(112) 간 데이터 플레인 상호접속을 제공하여, 하나 이상의 NIC(242)을 통해 취합 시스템(200)과 통신하고 있는 하나 이상의 원격 전자 디바이스(152) 및/또는 서버 노드(112) 간 데이터를 교환한다.
I/O 프로세서(204)는 취합 시스템(200)과 서버 노드(112) 및/또는 원격 컴퓨팅 디바이스(252) 간 전송된 데이터를 처리한다. I/O 프로세서(204)는 서버 노드(112) 및/또는 하나 이상의 원격 컴퓨팅 디바이스(152) 간 데이터 패킷의 전송을 감시할 수 있다. 일 실시예에 있어서, I/O 프로세서(204)는 서버 노드(112) 및/또는 원격 전자 디바이스(152) 간 데이터를 교환하기 위한 네트워크 프로세서를 포함한다. 다른 일 실시예에 있어서, I/O 프로세서(204)는, 예를 들어, 복수의 vNIC이 제공될 수 있는 제어 플레인 프로세서(도시되지 않음)에 따라 스위치 패브릭(202) 내외로 데이터 전송을 수행하도록 멀티플렉서 및 다른 로직을 포함한다. 여기서, I/O 프로세서(204)는, 예를 들어, 2개 이상의 서버 노드(112) 간, 또는 서버 노드(112)와 원격 컴퓨팅 디바이스(152) 간, 취합 디바이스(200) 내외로 데이터를 송신하기 위한 임시보관 구역(staging area)으로서 역할할 수 있다.
도 2는, 일 실시예에 따라, 도 1의 취합 시스템의 패킷 관리 디바이스(210)의 블록 선도이다. 패킷 관리 디바이스(210)는 매핑 테이블(222), 구성 관리 모듈(224), 크리덴셜 처리 엔진(226), 크리덴셜 타당성 검증 모듈(228) 및 순환 키 선택기(232)를 포함한다.
매핑 테이블(222)은 취합 시스템 포트 1-N 및 취합 디바이스(200)와 통신하고 있는 소스 서버 노드의 MAC 어드레스 간 소정 세트의 매핑을 포함한다. 매핑 테이블(222)은 취합 디바이스(200)와 통신하고 있는 서버 노드(112) 및/또는 다른 디바이스의 MAC 어드레스 및 서버 노드(112) 및/또는 다른 디바이스가 걸려 있는 포트를 추적 및 관리하는 소프트웨어 애플리케이션의 일부분일 수 있다. 예를 들어, 도 2를 참조하면, 서버 노드(212A, 212B)에 각각 할당된 MAC 어드레스는 각각 스위치 포트 1-N 중 어느 스위치 포트와 연관될 수 있어서, 하드웨어-집약적 CAM 테이블보다 더 적은 처리를 요구한다.
구성 관리 모듈(224)은 MAC 어드레스와 관련된 구성 변경을 검출할 수 있다. 예를 들어, 구성 관리 모듈(224)은 디바이스가 취합 디바이스(200)에서의 다른 포트로 변경되었을 때를 검출할 수 있다. 여기서, 외부 컨트롤러와 같은 관리 디바이스는 디바이스의 MAC 어드레스와 새로운 포트 간 매핑으로 매핑 테이블(222)을 업데이트할 수 있다.
크리덴셜 처리 엔진(226)은 취합 디바이스(200)와 서버 노드(112) 간 교환에 있어서 포트 번호 등과 같은 라우팅 정보를 보호하도록 사용될 수 있는 크리덴셜을 발생시킨다. 이것은, 예를 들어, MAC 어드레스와 같은 플로우태그 및 헤더 정보와 같은 데이터 패킷의 구성요소를 봉인하는 크리덴셜에 의해 달성될 수 있다. 크리덴셜 처리 엔진(226)은 가상 머신-당 또는 포트-당 단위로 크리덴셜을 발생시킬 수 있다. 크리덴셜의 캐시는 호스트 드라이버(124)에 의해 유지될 수 있다. 크리덴셜은 플로우태그 및 관련 헤더 정보의 단방향 해시를 컴퓨팅함으로써 크리덴셜 처리 엔진(226)에 의해 구성될 수 있다, 예를 들어: {포트당 시드, 포트 번호, 링크 번호, 가상 큐 태그}. 크리덴셜 처리 엔진(226)은, 크리덴셜이 한 번보다 많이 사용될 수 있도록, 크리덴셜을 순환시키는데 사용되는, 크리덴셜의 포트 시드 또는 순환 값, 또는 가상 큐(VQ) 태그, VLAN 멤버십, 및/또는 현재 활성 키에 기반하여 하나 이상의 크리덴셜을 할당할 수 있다.
플로우태그 데이터를 인증하는 크리덴셜 타당성 검증 모듈(228)은, 취합 디바이스(200)에서의 입구 포트에서, 플로우태그와 수신된 크리덴셜을 발생 또는 재계산된 사본에 대비하여 타당성 검증할 수 있다. 크리덴셜이 타당성 검증되고 나면, 플로우태그 컨텐트는 패킷을 적합한 수신지 가상 큐(218)로 라우팅하는데 사용될 수 있다.
여기서 설명되는 바와 같이, 크리덴셜은 취합 디바이스(200)에서 재활용될 수 있다. 순환 키 선택기(232)는 소정 기준으로 크리덴셜을 재활용할 수 있고, 크리덴셜의 상태를 유지할 수 있다. 이것은 권한 없는 호스트 또는 다른 스누핑 디바이스가 크리덴셜을 전복시키지 않게 방지하거나 그렇지 않으면 그 위험을 감축하도록 순환 키 선택기(232)에 의해 주기적으로 순환되는 키, 예를 들어, VQ-당 키에 의해 달성될 수 있다.
도 3은, 일 실시예에 따라, 네트워크 환경에서 데이터 교환을 관리하기 위한 방법(300)의 순서도이다. 방법(300)을 설명함에 있어서는, 도 1 및 도 2의 구성요소를 참조한다.
블록(302)에서, 플로우태그 캐시 맵이 생성된다. 플로우태그 캐시 맵은 서버 노드 MAC 어드레스와 취합 디바이스(200)에서의 디바이스 포트 간 매핑을 포함할 수 있다. 예를 들어, 도 1을 참조하면, 캐시(126)에서의 플로우태그 캐시 맵은 서버 노드(112-1)의 MAC 어드레스와 취합 디바이스(200)의 포트 1 간 제1 매핑 및 서버 노드(112-2)의 MAC 어드레스와 취합 디바이스의 포트 2 간 제2 매핑을 포함할 수 있다. 플로우태그 캐시 맵은 MAC 어드레스-대-포트 매핑과 관련된 취합 디바이스(200), 예를 들어, 취합 디바이스(200)에 결합된 새로운 디바이스에서 수집된 데이터에 의해 파퓰레이팅될(populated) 수 있다.
결정 마름모(304)에서는, 소스 노드 드라이버, 예를 들어, 서버 노드(112-1)의 드라이버(124)가 수신지 MAC 어드레스, 예를 들어, 수신지 서버 노드(112-2)의 MAC 어드레스와 출구 포트 아이디(ID), 예를 들어, 수신지 서버(112-2)가 통신하고 있는 포트 2 간 매핑을 식별할 수 있는지 결정한다. 소스 드라이버(124)가 수신지 서버 노드(112-2)의 MAC 어드레스와 수신지 서버 노드(112-2)와 통신하고 있는 취합 디바이스(200)에서의 포트, 즉, 포트 2 간 매핑을 결정하면, 그때 방법(300)은 블록(312)으로 진행하고, 거기에서 취합 디바이스(200)는, 수신지 MAC 어드레스 대신에, 수신지 서버 노드(112-2)의 포트 ID, 즉, 포트 2에 따라 소스 서버 노드(112-1)로부터 수신지 서버 노드(112-2)로 보내지는 패킷을 처리한다.
소스 드라이버(124)가 수신지 서버 노드(112-2)의 MAC 어드레스와 수신지 포트, 즉, 포트 2 간 매핑을 식별하지 못하면, 그때 방법(300)은 블록(306)으로 진행하고, 거기에서는 수신지 MAC 어드레스가 패킷 관리 디바이스(210)에 포워딩된다.
블록(308)에서, 패킷 관리 디바이스(210)는 수신된 수신지 MAC 어드레스에 대응하는 포트 번호 또는 관련 식별자를 소스 서버 노드(112-1)에 보낼 수 있다. 포트 번호는 바람직하게는 수신지 MAC 어드레스를 갖는 수신지 서버 노드(112-2)가 통신하고 있는 출구 포트와 관련된다. 포트 번호 또는 관련 식별자는, 요청에 응답하여 소스 서버 노드(112-1)에 보내지는, 패킷 관리 디바이스에서 발생된 플로우태그의 일부분일 수 있다. 플로우태그는 플로우태그 캐시(126)에 저장될 수 있다.
블록(310)에서, 소스 서버 노드(112-1)는 그 수신지로 라우팅하도록 플로우태그를 포함하는 데이터 패킷을 취합 디바이스(200)에 출력한다. 데이터 패킷은 이더넷 패킷 등일 수 있다.
블록(312)에서, 취합 디바이스(200)는 수신지 서버 노드(112-2)의 포트 번호 또는 관련 식별자, 즉, 포트 2에 따라 소스 서버 노드(112-1)로부터 수신지 서버 노드(112-2)로 보내지는 패킷을 처리한다. 라우팅이 포트 번호에 따라 일어나므로, 라우팅이 MAC 어드레스에 따라 일어나는 구성보다 더 적은 처리가 요구된다.
도 4는, 다른 일 실시예에 따라, 전자 통신 환경에서 데이터 교환을 관리하기 위한 방법(400)의 순서도이다. 방법(400)을 설명함에 있어서는, 도 1 내지 도 3의 구성요소를 참조한다.
블록(402)에서는, 구성 변경이 검출된다. 구성 변경은 서버 노드(112)에 의한 다른 포트로의 변경을 포함할 수 있다. 서버 노드(112) 또는 외부 디바이스(152)는 다른 MAC 어드레스로 재구성될 수 있거나, MAC 어드레스가 다른 서버 노드(112) 또는 외부 디바이스(152)에 재할당될 수 있다. 여기에서, 소스 서버 노드(112-1)에서의 캐시(126)는 취합 디바이스(200)의 포트 2에 매핑된 MAC 어드레스를 가리키는 엔트리를 갖고 있을 수 있다. 그렇지만, 취합 디바이스(200), 더 구체적으로는, 패킷 관리 디바이스(210)의 구성 매니저(228)는 다른 MAC 어드레스가 포트 2와 통신하고 있음, 또는 캐시(126)에 저장된 MAC 어드레스가 다른 MAC 어드레스로 변경되었음을 검출할 수 있다. 다른 일례에 있어서, 취합 디바이스(200)는 서버 노드(112)에서의 가상 머신에 다른 MAC 어드레스가 할당되어 있음을 검출한다.
블록(404)에서, 패킷 관리 디바이스(210)는 소스 서버 노드(112-1)에 요청을 보낸다. 그 요청은 수신지 MAC 어드레스와 포트 2의 이전 매핑이 더 이상 유효하지 않음을 소스 서버 노드(112-1)에 나타내는 무효화 요청을 포함할 수 있다. 다른 일 실시예에 있어서, 그 요청은 소스 서버 노드(112-1)에 대한 업데이트 요청을 포함한다. 소스 서버 노드(112-1)는 플로우태그 캐시(126)에서 이전 매핑 정보를 소거하고 새로운 매핑 정보를 처리한다. 따라서, 플로우태그 캐시(126)에서의 이전 매핑을 무효화하라는 요청이 패킷 관리 디바이스(210)에 의해 보내질 수 있거나, 또는 대안으로, 매핑의 무효화 및 후속 업데이트를 수행하는 표시자가 소스 서버 노드(112-1))에 보내질 수 있다.
블록(406)에서, 플로우태그 캐시(126)는 블록(402)에서 검출된 구성 변경을 반영하는 MAC 어드레스-대-포트 매핑 정보를 포함하도록 업데이트된다. MAC 어드레스-대-포트 매핑 정보는 패킷 관리 디바이스(210)의 매핑 테이블(222)로부터 제공된다.
도 5는, 일 실시예에 따라, 패킷 데이터를 타당성 검증하기 위한 방법(500)의 순서도이다. 방법(500)을 설명함에 있어서는, 도 1 내지 도 4의 구성요소를 참조한다. 방법(500)은, 예를 들어, 가상화형 서버 노드의 게스트 드라이버에서의 MAC 어드레스와 같은 라우팅 정보가 스푸핑을 위해 취득되거나 또는 다른 권한 없는 사용 또는 불법 사용되기 쉬울 수 있는 어드레스 보안-관련 문제에 적용되어, 예를 들어, 타인이 서버 노드로의 액세스를 피하여 데이터를 취득하는 것을 방지할 수 있다.
블록(502)에서, 소스 서버 노드(112-1)는 취합 디바이스(200)에 라우팅 요청 메시지를 보낼 수 있다. 라우팅 요청 메시지는 수신지 MAC 어드레스 또는 다른 라우팅 데이터에 대한 요청을 포함할 수 있다.
블록(504)에서, 취합 디바이스(200)의 패킷 관리 디바이스(210)는 블록(502)에서 이루어진 요청에 응답하여 라우팅 데이터를 보낼 수 있다. 일 실시예에 있어서, 취합 디바이스(200)는 매핑 테이블(222)에서의 매핑 정보에 따라 요청된 수신지 MAC 어드레스 대신에 플로우태그를 갖는 크리덴셜을 보낸다.
취합 디바이스(200)는 또한 라우팅 데이터와 VLAN 멤버십 데이터와 같은 크리덴셜 및/또는 다른 정보를 요청 소스 서버 노드(112-1)에 보낼 수 있다. 크리덴셜은 크리덴셜 처리 엔진(226)에 의해 생성될 수 있다. 크리덴셜은, 아래에서 설명되는 바와 같이 크리덴셜을 재활용하도록 사용될 수 있는, 포트-당 시드, 포트 번호, 링크 번호, 가상 큐 식별자 또는 태그, 및/또는 세대 아이디와 같은 플로우태그 데이터 및/또는 패킷 헤더 정보의 단방향 해시를 컴퓨팅함으로써 구성될 수 있다. 일 실시예에 있어서, 크리덴셜은 서버 노드(112)의 각각의 가상 머신에 대해 생성된다. 다른 일 실시예에 있어서, 크리덴셜은 서버 노드(112) 또는 다른 전자 디바이스가 결합되는 각각의 포트 1-N에 대해 생성된다. 크리덴셜 처리 엔진(226)은, 도 7을 참조하여 아래에서 설명되는, 가상 큐 태그, 소스에 대한 VLAN 멤버십, 및/또는 현재 활성 키에 기반하여 크리덴셜을 할당할 수 있다.
블록(506)에서, 서버 노드(112)는 플로우태그를 포함하는 패킷 또는 관련 데이터 유닛을 송신한다. 플로우태그는, 예를 들어, 여기에서 설명되는 수신지 포트, VLAN 데이터, 및/또는 다른 라우팅 데이터와 관련된 데이터를 포함할 수 있다. 플로우태그는 블록(504)에서 설명된 취합 디바이스(200)에 의해 제공된 세대 아이디 또는 위상 아이디 및/또는 크리덴셜을 포함할 수 있다. 플로우태그가 제공된 패킷은 이더넷 패킷 등일 수 있다.
블록(508)에서, 패킷 관리 디바이스(210)는 플로우태그와 수신된 크리덴셜을 타당성 검증한다. 크리덴셜 타당성 검증 모듈(228)은, 예를 들어, 크리덴셜을 재계산함으로써, 예를 들어, 단방향 해시를 수행함으로써, 입구 포트에서 발생된 사본에 대비하여 수신된 크리덴셜을 타당성 검증할 수 있다. 일 실시예에 있어서, 크리덴셜 타당성 검증 모듈(228)은 게스트가 데이터 버퍼를 가리키는 기술자를 서버 노드(112)에 게시할 수 있게 하는, 그리고 서버 노드(112)가 기술자를 재사용을 위해 게스트에 다시 풀어줄 수 있게 하는 취합 디바이스(200)에서의 하나 이상의 가상 큐와 통신한다. 여기에서, 플로우태그 및 패킷을 취합 디바이스(200)를 통해 이동시키도록 요청 서버 노드 가상 머신의 NIC과 플로우 경로가 확립될 수 있다.
블록(510)에서, 타당성 검증이 완료되고 나면, 취합 디바이스 출구 포트 번호와 같은 플로우태그 컨텐트는 패킷을 그 수신지로 라우팅하도록 사용될 수 있다. 패킷은, 예를 들어, 데이터 버퍼링을 위해 취합 디바이스(200)에서의 수신지 가상 큐(218)로 라우팅될 수 있다. 다른 실시예에 있어서, 패킷은 수신지 서버 노드(112) 또는 원격 디바이스로의 출력을 위해 출구 포트 1-N로 직접 라우팅된다.
도 6은, 일 실시예에 따라, 서버 노드(112)로부터 취합 디바이스(200)로 출력되는 패킷(600)의 컨텐트를 예시하는 선도이다.
데이터 유닛(600)은 패킷, 프레임, 셀 등일 수 있다. 데이터 유닛(600)은 플로우태그(602), 헤더(604) 및 데이터 페이로드(606)를 포함한다. 플로우태그(602)는 여기에서의 실시예에 따라 설명된 것들과 동일 또는 유사할 수 있다. 헤더(604)는 이더넷 헤더 등일 수 있고, 프리앰블, 소스 MAC 어드레스, 수신지 MAC 어드레스, VLAN ID, 및/또는 이더넷 유형 필드를 포함할 수 있다.
플로우태그(602)는 포트 ID 필드, 크리덴셜 필드, 및/또는 세대 ID 필드를 포함할 수 있다. 포트 ID 필드는 수신지 포트 번호를 포함할 수 있다. 포트 ID 필드 내 포트 번호는 네트워크 패킷(604)을 수신지 디바이스로 라우팅하는데 사용될 수 있다. 크리덴셜 필드는, 예를 들어, 여기에서 설명된 방법에 따라 취합 디바이스(200)에 의해 발생되어 데이터 교환 동안 서버 노드(112-1)에 제공되는 크리덴셜을 포함할 수 있다.
세대 ID 필드는 세대 아이디 또는 포트 시드를 포함할 수 있는데, 그것은 스누퍼가 시간에 걸쳐 정보를 모으는 것을 방지하도록 사용될 수 있으며 그렇지 않았더라면 해시를 약화시켰을 것이다. 세대 ID는 취합 디바이스(200)가 생성된 크리덴셜의 상태를 유지할 수 있게 하고, 크리덴셜이, 예를 들어, 크리덴셜을 추적함으로써 주기적으로 재활용될 수 있게 한다.
도 7은, 일 실시예에 따라, 패킷 타당성 검증 플로우를 예시하는 상세한 블록 선도이다. 패킷 타당성 검증 플로우를 설명함에 있어서는 도 1 내지 도 6의 구성요소, 특히, 도 5의 블록(508)에서 설명된 크리덴셜 타당성 검증 단계를 참조한다.
서버 노드(112)는 패킷(702) 등을 취합 디바이스(200)에 송신한다. 패킷(702)은 플로우태그(712), 이더넷 헤더(714) 및 페이로드(716)를 포함한다. 플로우태그(712)는 도 6에서 설명된 플로우태그(602)와 유사할 수 있다. 다른 실시예에 있어서는, 도 7에 도시된 바와 같이, 플로우태그(712)가 키 선택 필드(722), 크리덴셜 필드(724) 및 VQ_DestTag 필드(726)를 포함한다.
키 선택 필드(722)는, 유효한 암호화 키(키 0, 키 1)를 선택하도록, 세대 아이디(ID)라고도 지칭되는, 순환 키 선택기(704)에 의해 사용되는 키 선택 값을 포함한다. 선택된 암호화 키(734)는 타당성 검증 프로세스 동안 플로우태그(712) 내 크리덴셜(724)에 비교되는 크리덴셜이 발생될 때 사용될 수 있다. 키(키 0, 키 1)는 취합 디바이스(200)에서 저장될 수 있고, 스누퍼와 같은 권한 없는 당사자가 크리덴셜을 발생 및 타당성 검증하기 위한 메커니즘을 전복시킬 위험을 감축하기 위하여, 소정 기준으로 예를 들어 매 4초마다 크리덴셜 처리 엔진(226)에 의해 순환될 수 있다.
크리덴셜(724)은 여기에서 설명된 실시예에 따라 발생되어 플로우태그(712)에 삽입될 수 있다, 예를 들어, 크리덴셜 처리 엔진(226)에 의해 발생될 수 있다. 크리덴셜(724)은 일부는 크리덴셜 처리 엔진(226)이, 이더넷 헤더(714)의 VLAN 멤버십 아이디(VLAN_ID)(730)와 같은, 인커밍 패킷(702)으로부터 수신된 데이터(740)를 사용하여 크리덴셜을 재계산하는 것에 의하여 크리덴셜 타당성 검증 모듈(228)에 의해 타당성 검증된다.
VQ_DestTag(726)는 패킷 데이터를 수신하도록 수신지 디바이스를 식별하는 가상 큐에 관한 것이다. VQ_DestTag(726)는 수신지 디바이스에 의한 수신을 위해 취합 디바이스(200)에서 버퍼 등에 패킷 데이터의 저장과 관련된 MMIO 메일박스 기록 어드레스 및 데이터를 디코딩함으로써 생성될 수 있다.
이더넷 헤더(714)는 프리앰블, 소스 MAC 어드레스, 수신지 MAC 어드레스, VLAN ID, 및 이더넷 유형 필드와 같이 당업자에게 주지되어 있는 하나 이상의 필드를 포함할 수 있다.
패킷 타당성 검증 연산 동안, 크리덴셜 타당성 검증 모듈(228)은 패킷(702)의 크리덴셜(724)에 비교되는 크리덴셜을 발생시킨다. 이더넷 헤더(714)의 VQ_DestTag(726) 및 VLAN ID는, 타당성 검증 결과를 산출하도록 수신된 플로우태그(702) 내 크리덴셜(724)에 비교될 수 있는 크리덴셜을 발생시키기 위해 순환 키 선택기(232)로부터 출력된 VQ_SrcTag 및 키(키 0, 키 1)와 조합될 수 있다. 타당성 검증이 실패하면, 그때는 패킷이 누락될 수 있고, 결과에 대한 로그가 생성될 수 있다. 타당성 검증이 통과되면, 패킷 프로세서는 수신된 데이터를 처리할 수 있다.
당업자에 의해 인식될 바와 같이, 본 발명의 태양은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구체화될 수 있다. 따라서, 본 발명의 태양은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함) 또는 여기서 일반적으로는 전부 "회로", "모듈" 또는 "시스템"이라고 지칭될 수 있는 하드웨어 및 소프트웨어 태양을 조합하는 실시예의 형태를 취할 수 있다. 더욱, 본 발명의 태양은 컴퓨터 판독가능 프로그램 코드를 구체화해 놓은 하나 이상의 컴퓨터 판독가능 매체(들)에 구체화된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독가능 매체(들)의 어떠한 조합이라도 이용될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 국한되는 것은 아니지만, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치 또는 디바이스, 또는 상기의 어느 적합한 조합이라도 될 수 있다. 컴퓨터 판독가능 저장 매체의 더 구체적 예(빠짐없는 것은 아닌 리스트)는 이하의 것을 포함할 것이다: 하나 이상의 유선을 갖는 전기 커넥션, 휴대용 컴퓨터 디스켓, 하드 디스크, 램(RAM), 롬(ROM), 이피롬(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 롬(CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스, 또는 상기의 어느 적합한 조합. 본 문서의 맥락에 있어서, 컴퓨터 판독가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스와 연관되는 또는 그에 의한 사용을 위한 프로그램을 포함 또는 저장할 수 있는 어느 유형적 매체라도 될 수 있다.
컴퓨터 판독가능 신호 매체는, 예를 들어 기저대역으로 또는 반송파의 일부분으로서, 컴퓨터 판독가능 프로그램 코드가 내부에 구체화되어 있는 전파되는 데이터 신호를 포함할 수 있다. 그러한 전파되는 신호는, 국한되는 것은 아니지만, 전기-자기, 광학 또는 그 어느 적합한 조합을 포함하는 각종 형태를 취할 수 있다. 컴퓨터 판독가능 신호 매체는 명령 실행 시스템, 장치 또는 디바이스와 연관되는 또는 그에 의한 사용을 위한 프로그램을 통신, 전파 또는 송출할 수 있는 그리고 컴퓨터 판독가능 저장 매체가 아닌 어느 컴퓨터 판독가능 매체라도 될 수 있다. 컴퓨터 판독가능 매체 상에 구체화된 프로그램 코드는, 국한되는 것은 아니지만, 무선, 유선, 광섬유 케이블, RF 등 또는 상기의 어느 적합한 조합이라도 포함하는 어느 적합한 매체를 사용하여 송신될 수 있다.
본 발명의 태양의 연산을 수행하기 위한 컴퓨터 프로그램 코드는 자바(Java), 스몰토크(Smalltalk), C++ 등과 같은 객체 지향형 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 관용적 프로시저 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 어느 조합으로라도 작성될 수 있다. 프로그램 코드는 전적으로 사용자의 컴퓨터 상에서, 일부는 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 일부는 사용자의 컴퓨터 상에서 그리고 일부는 원격 컴퓨터 상에서 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 후자의 시나리오에 있어서, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함하는 어느 유형의 네트워크라도 통하여 사용자의 컴퓨터에 접속될 수 있거나, 또는 커넥션이 (예를 들어, 인터넷 서비스 제공자를 사용하는 인터넷을 통해) 외부 컴퓨터에 이뤄질 수 있다.
본 발명의 태양은 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 예시적 순서도 및/또는 블록 선도를 참조하여 여기에서 설명된다. 예시적 순서도 및/또는 블록 선도의 각각의 블록, 및 예시적 순서도 및/또는 블록 선도 내 블록의 조합은 컴퓨터 프로그램 명령어에 의해 구현될 수 있음을 이해할 것이다. 이들 컴퓨터 프로그램 명령어는, 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 장치의 프로세서를 통하여 실행될 수 있는 명령어가 순서도 및/또는 블록 선도 블록 또는 블록들에 명시된 기능/작용을 구현하기 위한 수단을 생성하게 되도록, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 머신을 산출하는 다른 프로그래밍 가능한 데이터 처리 장치의 프로세서에 제공될 수 있다.
이들 컴퓨터 프로그램 명령어는 또한, 컴퓨터 판독가능 매체에 저장된 명령어가 순서도 및/또는 블록 선도 블록 또는 블록들에 명시된 기능/작용을 구현하는 명령어를 포함하는 제조 물품을 산출하게 되도록, 컴퓨터에 지시할 수 있는 컴퓨터 판독가능 매체, 다른 프로그래밍 가능한 데이터 처리 장치, 또는 특정 방식으로 기능하는 다른 디바이스에 저장될 수 있다. 이들 컴퓨터 프로그램 명령어는 또한, 컴퓨터 또는 다른 프로그래밍 가능한 장치 상에서 실행되는 명령어가 순서도 및/또는 블록 선도 블록 또는 블록들에 명시된 기능/작용을 구현하기 위한 프로세스를 제공하게 되도록, 일련의 연산 단계가 컴퓨터, 다른 프로그래밍 가능한 장치 또는 다른 디바이스 상에 수행되게 하기 위해 컴퓨터, 다른 프로그래밍 가능한 데이터 처리 장치 또는 다른 디바이스 상에 로딩될 수 있다.
도면에서의 순서도 및 블록 선도는 본 발명의 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 아키텍처, 기능성 및 연산을 예시한다. 이와 관련하여, 순서도 또는 블록 선도에서의 각각의 블록은 명시된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능한 명령어를 포함하는 모듈, 세그먼트, 또는 코드 일부를 표현할 수 있다. 일부 대안의 구현에서는, 블록에 언급된 기능이 도면에 언급된 순서와 다르게 일어날 수 있음을 또한 주목해야 한다. 예를 들어, 연속으로 도시된 2개의 블록은 실제로는 실질적으로 동시다발적으로 실행될 수도 있고, 블록들은 때로는, 관련 기능성에 의존하여, 역순으로 실행될 수도 있다. 예시적 순서도 및/또는 블록 선도의 각각의 블록, 및 예시적 순서도 및/또는 블록 선도 내 블록의 조합은 명시된 기능 또는 작용을 수행하는 특수 목적 하드웨어-기반 시스템, 또는 특수 목적 하드웨어 및 컴퓨터 명령어의 조합에 의해 구현될 수 있다.
본 발명이 특정 실시예를 참조하여 도시 및 설명되었지만, 본 발명의 취지 및 범위로부터 벗어남이 없이 형태 및 상세의 다양한 변화가 거기에 이뤄질 수 있음을 당업자는 이해해야 한다.
Claims (31)
- 네트워크 환경에서 데이터 교환을 관리하기 위한 방법으로서,
취합 디바이스로부터 소스 디바이스로 플로우태그(flowtag)를 송신하는 단계, 상기 플로우태그는 상기 취합 디바이스에서의 포트를 식별하는 포트 아이디(port identification)를 포함하고, 상기 포트는 MAC(Media Access Control) 어드레스를 갖는 수신지 디바이스에 통신가능하게 접속되며;
상기 취합 디바이스에서 데이터 패킷 및 상기 플로우태그를 상기 소스 디바이스로부터 수신하는 단계;
상기 취합 디바이스에서 상기 데이터 패킷을 인증하는 단계; 및
상기 데이터 패킷을 인증하면, 상기 플로우태그 내의 상기 포트 아이디에 따라 상기 데이터 패킷을 상기 취합 디바이스로부터 상기 수신지 디바이스로 출력하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 포트 아이디는 상기 MAC 어드레스에 대하여 상기 취합 디바이스 내의 매핑 테이블에 매핑되는 것인 방법. - 제1항에 있어서, 상기 소스 디바이스는 서버 노드를 포함하는 것인 방법.
- 제1항에 있어서,
상기 소스 디바이스로부터 상기 취합 디바이스로 상기 포트 아이디에 대한 요청을 보내는 단계, 상기 요청은 상기MAC 어드레스를 포함하며;
상기 MAC 어드레스를 상기 포트 아이디와 연관시키는 상기 취합 디바이스에서의 매핑 테이블 엔트리에 따라, 상기 포트를 식별하는 포트 아이디를 포함하는 상기 플로우태그를 상기 취합 디바이스로부터 상기 소스 디바이스로 보내는 단계를 더 포함하는 방법. - 제4항에 있어서,
상기 취합 디바이스에서 상기 플로우태그를 발생시키는 단계를 더 포함하는 방법. - 제1항에 있어서,
상기 취합 디바이스에서 구성 변경을 검출하는 단계;
상기 구성 변경과 관련된 데이터를 포함하는 요청을 상기 취합 디바이스로부터 상기 소스 디바이스로 보내는 단계; 및
상기 구성 변경과 관련된 상기 데이터를 포함하도록 상기 요청에 응답하여 상기 소스 디바이스에서 상기 플로우태그를 업데이트하는 단계를 더 포함하는 방법. - 제1항에 있어서,
상기 데이터 패킷을 인증하는 단계는,
라우팅 요청 메시지(routing request message)를 상기 소스 디바이스로부터 상기 취합 디바이스로 보내는 단계;
상기 플로우태그를 봉인(seal)하는 크리덴셜(credential)을 상기 취합 디바이스로부터 상기 소스 디바이스에서 수신하는 단계;
상기 플로우태그와 상기 데이터 패킷을 상기 소스 디바이스로부터 상기 취합 디바이스로 송신하는 단계, 상기 플로우태그는 상기 크리덴셜을 포함하고; 그리고
상기 취합 디바이스에서 상기 크리덴셜을 타당성 검증함으로써 상기 데이터 패킷을 인증하는 단계를 포함하는 것인 방법. - 제7항에 있어서,
상기 플로우태그는 상기 취합 디바이스에서 발생된 복수의 크리덴셜 중에서 상기 크리덴셜에 대응하는 세대 ID(generation ID)를 포함하는 것인 방법. - 제7항에 있어서,
상기 크리덴셜을 타당성 검증하는 것은,
상기 취합 디바이스에서 제 2 크리덴셜을 발생시키는 단계;
상기 소스 디바이스로부터 보내진 상기 크리덴셜과 상기 제 2 크리덴셜을 상기 취합 디바이스에서 비교하는 단계; 및
상기 소스 디바이스로부터 보내진 상기 크리덴셜이 상기 제 2 크리덴셜과 매칭되면 상기 소스 디바이스로부터 보내진 상기 크리덴셜을 유효라고 결정하고 또는 상기 소스 디바이스로부터 보내진 상기 크리덴셜이 상기 제 2 크리덴셜과 매칭되지 않으면 상기 소스 디바이스로부터 보내진 상기 크리덴셜을 무효라고 결정하는 단계를 포함하는 것인 방법. - 제9항에 있어서,
상기 소스 디바이스로부터 보내진 상기 크리덴셜이 무효라는 결정에 응답하여 상기 데이터 패킷을 폐기하고 타당성 검증 결과의 로그를 생성하는 단계를 더 포함하는 방법. - 제7항에 있어서,
상기 취합 디바이스에서 순환 키 선택기로부터 키를 제공하는 단계; 및
상기 취합 디바이스에서 복수의 발생된 크리덴셜로부터 상기 크리덴셜을 선택하도록 상기 키를 사용하는 단계를 더 포함하는 방법. - 제1항에 있어서,
상기 소스 디바이스에서 플로우태그 캐시를 유지하는 단계를 더 포함하며, 상기 플로우태그 캐시는 하나 이상의 플로우태그들을 저장하도록 구성되는 것인 방법. - 데이터 패킷을 처리하기 위한 방법으로서,
취합 디바이스에서 발생된 플로우태그를, 상기 취합 디바이스로부터 소스 디바이스에서 수신하는 단계, 상기 플로우태그는 라우팅 데이터 및 크리덴셜을 포함하고, 상기 라우팅 데이터는 상기 취합 디바이스에서의 포트에 대응하는 포트 아이디를 포함하며, 상기 포트는 MAC 어드레스를 갖는 수신지 디바이스에 통신가능하게 접속되며; 그리고
상기 플로우태그를 포함하는 데이터 패킷 및 대응하는 데이터 유닛을 상기 소스 디바이스로부터 상기 취합 디바이스로 보내는 단계를 포함하는 방법. - 삭제
- 제13항에 있어서, 상기 플로우태그는 상기 취합 디바이스에서 발생된 복수의 크리덴셜 중에서 상기 크리덴셜에 대응하는 세대 ID를 포함하는 것인 방법.
- 제13항에 있어서,
상기 소스 디바이스로부터 보내진 상기 크리덴셜이 무효라는 결정에 응답하여 타당성 검증 결과의 로그를 상기 취합 디바이스에서 생성하는 단계를 더 포함하는 방법. - 제13항에 있어서,
상기 취합 디바이스에서 순환 키 선택기로부터 키를 제공하는 단계; 및
상기 취합 디바이스에서 복수의 발생된 크리덴셜로부터 상기 크리덴셜을 선택하도록 상기 키를 사용하는 단계를 더 포함하는 방법. - 제13항에 있어서,
상기 취합 디바이스에서 상기 크리덴셜을 타당성 검증함으로써 상기 데이터 패킷을 인증하는 단계; 및
상기 크리덴셜을 타당성 검증하는 것에 응답하여 상기 플로우태그 내 상기 라우팅 데이터에 따라 상기 데이터 유닛을 처리하는 단계를 더 포함하는 방법. - 데이터 네트워크로서,
데이터 전송 연산에서 플로우태그를 데이터 패킷에 할당하는 소스 디바이스;
상기 데이터 전송 연산에서 상기 데이터 패킷을 수신하는 수신지 디바이스; 및
상기 소스 디바이스가 통신하고 있는 제 1 포트 및 상기 수신지 디바이스가 통신하고 있는 제 2 포트를 갖는 취합 디바이스를 포함하며,
상기 취합 디바이스는 상기 플로우태그 내의 라우팅 데이터를 처리하고 상기 플로우태그를 봉인하는 크리덴셜을 타당성 검증하는 패킷 관리 디바이스를 포함하고, 상기 플로우태그 내의 상기 라우팅 데이터는 상기 제 2 포트에 대응하는 포트 아이디를 포함하고,
상기 취합 디바이스는 상기 데이터 패킷 및 상기 플로우태그를 상기 소스 디바이스로부터 수신하고 그리고 상기 플로우태그 내의 상기 포트 아이디에 기초하여 상기 데이터 패킷을 상기 수신지 디바이스로 포워딩하도록 구성되는 것을 특징으로 하는 데이터 네트워크. - 제19항에 있어서,
상기 소스 디바이스는 복수의 엔트리, 상기 소스 디바이스의 MAC 어드레스와 상기 제 1 포트에 대응하는 포트 아이디 간 매핑을 포함하는 제 1 엔트리, 및 상기 수신지 디바이스의 MAC 어드레스와 상기 제 2 포트에 대응하는 상기 포트 아이디 간 매핑을 포함하는 제 2 엔트리를 포함하는 플로우태그 캐시를 포함하는 것인 데이터 네트워크. - 제20항에 있어서,
상기 패킷 관리 디바이스는 상기 소스 디바이스로부터 보내진 요청에 응답하여 상기 수신지 디바이스의 상기 MAC 어드레스와 상기 제2 포트에 대응하는 상기 포트 아이디 간 매핑을 제공하는 매핑 테이블을 포함하는 것인 데이터 네트워크. - 제21항에 있어서, 상기 패킷 관리 디바이스는 포트 구성 변경을 검출하는 구성 관리 모듈을 포함하고, 상기 매핑 테이블은 상기 포트 구성 변경에 응답하여 업데이트되는 것인 데이터 네트워크.
- 제19항에 있어서, 상기 패킷 관리 디바이스는 상기 크리덴셜을 발생시키는 크리덴셜 처리 엔진을 포함하는 것인 데이터 네트워크.
- 제23항에 있어서, 상기 패킷 관리 디바이스는 상기 소스 디바이스로부터 수신된 상기 크리덴셜을 타당성 검증하는 크리덴셜 타당성 검증 모듈을 포함하는 것인 데이터 네트워크.
- 제23항에 있어서, 상기 패킷 관리 디바이스는 복수의 크리덴셜로부터 상기 크리덴셜을 선택하기 위한 키를 제공하는 순환 키 선택기를 포함하는 것인 데이터 네트워크.
- 취합 디바이스로서,
소스 디바이스와 통신하는 제 1 포트;
MAC 어드레스를 갖는 수신지 디바이스와 통신하는 제 2 포트; 및
매핑 테이블을 포함하는 패킷 관리 디바이스를 포함하며,
상기 매핑 테이블은 상기 제 1 포트와 상기 소스 디바이스 사이의 제 1 매핑 및 상기 제 2 포트와 상기 수신지 디바이스 사이의 제 2 매핑을 포함하며, 상기 패킷 관리 디바이스는 상기 소스 디바이스로부터 데이터 유닛을 수신하고 상기 데이터 유닛과 함께 제공되는 상기 제 2 포트와 관련된 정보에 따라 상기 데이터 유닛을 상기 수신지 디바이스로 라우팅하며, 상기 제 2 포트와 관련된 상기 정보는 상기 데이터 유닛과 함께 수신되는 플로우태그 내에 포함된 상기 제 2 포트에 대한 아이디(identification)인 것을 특징으로 하는 취합 디바이스. - 제26항에 있어서, 상기 패킷 관리 디바이스는 포트 구성 변경을 검출하는 구성 관리 모듈을 포함하고, 상기 매핑 테이블은 상기 포트 구성 변경에 응답하여 업데이트되는 것인 취합 디바이스.
- 제27항에 있어서,
상기 패킷 관리 디바이스는 상기 데이터 유닛을 인증하기 위한 크리덴셜을 발생시키는 크리덴셜 처리 엔진을 포함하는 것인 취합 디바이스. - 제28항에 있어서, 상기 패킷 관리 디바이스는 발생된 상기 크리덴셜을 사용하여 상기 소스 디바이스로부터 상기 플로우태그와 수신된 크리덴셜을 타당성 검증하는 크리덴셜 타당성 검증 모듈을 포함하는 것인 취합 디바이스.
- 제28항에 있어서, 상기 패킷 관리 디바이스는 상기 크리덴셜을 발생시키기 위한 키를 제공하는 순환 키 선택기를 포함하는 것인 취합 디바이스.
- 컴퓨터 판독가능 프로그램 코드가 내장되어 있는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 판독가능 프로그램 코드는,
플로우태그를 소스 디바이스에서의 데이터 패킷에 할당하도록 구성된 컴퓨터 판독가능 프로그램 코드, 상기 플로우태그는 취합 디바이스에서의 포트를 식별하는 포트 아이디 및 크리덴셜을 포함하고, 상기 포트는 MAC 어드레스를 갖는 수신지 디바이스에 통신가능하게 접속되며;
상기 소스 디바이스로부터 상기 취합 디바이스로 상기 데이터 패킷 및 상기 플로우태그를 전송하도록 구성된 컴퓨터 판독가능 프로그램 코드;
상기 크리덴셜에 기초하여 상기 취합 디바이스에서 상기 데이터 패킷을 인증하도록 구성된 컴퓨터 판독가능 프로그램 코드; 및
상기 플로우태그 내의 상기 포트 아이디에 기초하여, 상기 포트로부터 상기 데이터 패킷을 상기 취합 디바이스로부터 상기 수신지 디바이스로 출력하도록 구성된 컴퓨터 판독가능 프로그램 코드
를 포함하는 것인 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/675,401 US8875256B2 (en) | 2012-11-13 | 2012-11-13 | Data flow processing in a network environment |
US13/675,401 | 2012-11-13 | ||
PCT/US2013/069572 WO2014078271A1 (en) | 2012-11-13 | 2013-11-12 | Method and device for data flow processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150082282A KR20150082282A (ko) | 2015-07-15 |
KR101688984B1 true KR101688984B1 (ko) | 2016-12-22 |
Family
ID=49679637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157011759A KR101688984B1 (ko) | 2012-11-13 | 2013-11-12 | 데이터 플로우 처리를 위한 방법 및 디바이스 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8875256B2 (ko) |
EP (1) | EP2920940B1 (ko) |
JP (1) | JP2016502795A (ko) |
KR (1) | KR101688984B1 (ko) |
CN (1) | CN104769912B (ko) |
WO (1) | WO2014078271A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023038387A1 (ko) * | 2021-09-07 | 2023-03-16 | 프라이빗테크놀로지 주식회사 | 데이터 플로우 기반 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9374305B2 (en) * | 2013-10-24 | 2016-06-21 | Dell Products L.P. | Packet transfer system |
US9672512B1 (en) * | 2014-01-02 | 2017-06-06 | Sprint Communications Company L.P. | Processor routing number for mobile communication service provider billing |
EP3314828A4 (en) * | 2015-06-26 | 2018-12-19 | McAfee, LLC | Systems and methods for routing data using software-defined networks |
US10187218B2 (en) * | 2015-09-15 | 2019-01-22 | Google Llc | Systems and methods for processing packets in a computer network |
US9606959B1 (en) * | 2015-11-12 | 2017-03-28 | International Business Machines Corporation | Indicating a sending buffer and receiving buffer in a message to use to validate the message in the receiving buffer |
US10454930B2 (en) | 2017-07-14 | 2019-10-22 | EMC IP Holding Company LLC | System and method for local data IP based network security for preventing data breach attempts in a multi-tenant protection storage deployment |
US10146953B1 (en) * | 2017-07-14 | 2018-12-04 | EMC IP Holding Company LLC | System and method for physical data packets isolation for different tenants in a multi-tenant protection storage environment |
US20190109789A1 (en) * | 2018-12-06 | 2019-04-11 | Intel Corporation | Infrastructure and components to provide a reduced latency network with checkpoints |
CN110691074B (zh) * | 2019-09-20 | 2022-04-22 | 西安瑞思凯微电子科技有限公司 | 一种IPv6数据加密方法、IPv6数据解密方法 |
US11477048B2 (en) * | 2021-01-15 | 2022-10-18 | BlackBear (Taiwan) Industrial Networking Security Ltd. | Communication method for one-way transmission based on VLAN ID and switch device using the same |
KR102345866B1 (ko) * | 2021-05-13 | 2022-01-03 | 주식회사 엠엘소프트 | 서버시스템 및 서버시스템에서 수행되는 사용자단말에 대한 통신 보안방법 |
CN113312656B (zh) * | 2021-07-29 | 2022-04-15 | 阿里云计算有限公司 | 数据轮转方法、装置、设备及系统 |
CN113382024B (zh) * | 2021-08-12 | 2021-12-21 | 阿里云计算有限公司 | 凭据的轮转方法、计算设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040258062A1 (en) | 2003-01-27 | 2004-12-23 | Paolo Narvaez | Method and device for the classification and redirection of data packets in a heterogeneous network |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5291482A (en) | 1992-07-24 | 1994-03-01 | At&T Bell Laboratories | High bandwidth packet switch |
JP2570963B2 (ja) * | 1993-05-31 | 1997-01-16 | 日本電気株式会社 | パケット網における中継経路情報を用いたシグナリング方式 |
US6031842A (en) | 1996-09-11 | 2000-02-29 | Mcdata Corporation | Low latency shared memory switch architecture |
US6370605B1 (en) | 1999-03-04 | 2002-04-09 | Sun Microsystems, Inc. | Switch based scalable performance storage architecture |
US6850987B1 (en) | 1999-06-01 | 2005-02-01 | Fastforward Networks, Inc. | System for multipoint infrastructure transport in a computer network |
US6785892B1 (en) | 2000-06-23 | 2004-08-31 | Unisys | Communications between partitioned host processors and management processor |
US6823453B1 (en) | 2000-10-06 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Apparatus and method for implementing spoofing-and replay-attack-resistant virtual zones on storage area networks |
US20020069317A1 (en) | 2000-12-01 | 2002-06-06 | Chow Yan Chiew | E-RAID system and method of operating the same |
US6795886B1 (en) | 2000-12-22 | 2004-09-21 | Ncr Corporation | Interconnect switch method and apparatus |
US7154885B2 (en) | 2001-12-31 | 2006-12-26 | Stmicroelectronics Ltd. | Apparatus for switching data in high-speed networks and method of operation |
US7421532B2 (en) | 2003-11-18 | 2008-09-02 | Topside Research, Llc | Switching with transparent and non-transparent ports |
US8688834B2 (en) * | 2004-07-09 | 2014-04-01 | Toshiba America Research, Inc. | Dynamic host configuration and network access authentication |
US8095600B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US7694167B2 (en) | 2004-10-22 | 2010-04-06 | Microsoft Corporation | Maintaining routing consistency within a rendezvous federation |
US7480303B1 (en) | 2005-05-16 | 2009-01-20 | Pericom Semiconductor Corp. | Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports |
US7568074B1 (en) | 2005-10-25 | 2009-07-28 | Xilinx, Inc. | Time based data storage for shared network memory switch |
US8549098B2 (en) | 2006-01-12 | 2013-10-01 | Broadcom Israel Research, Ltd. | Method and system for protocol offload and direct I/O with I/O sharing in a virtualized network environment |
US8397284B2 (en) | 2006-01-17 | 2013-03-12 | University Of Maryland | Detection of distributed denial of service attacks in autonomous system domains |
JP2007328461A (ja) | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
WO2007144702A1 (en) | 2006-06-13 | 2007-12-21 | Freescale Semiconductor, Inc. | Method for processing information fragments and a device having information fragment processing capabilities |
US8140719B2 (en) | 2007-06-21 | 2012-03-20 | Sea Micro, Inc. | Dis-aggregated and distributed data-center architecture using a direct interconnect fabric |
US7925802B2 (en) | 2007-06-21 | 2011-04-12 | Seamicro Corp. | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric |
EP2224339A3 (en) | 2007-09-12 | 2011-03-16 | Citrix Systems, Inc. | Methods and systems for generating desktop environments providing integrated access to remote and local resources |
JP5096905B2 (ja) | 2007-12-20 | 2012-12-12 | 株式会社日立製作所 | サーバ装置及びそのリンク回復処理方法 |
US8249072B2 (en) | 2009-03-12 | 2012-08-21 | Oracle America, Inc. | Scalable interface for connecting multiple computer systems which performs parallel MPI header matching |
WO2010002411A1 (en) | 2008-07-03 | 2010-01-07 | Hewlett-Packard Development Company, L.P. | Memory server |
KR101539297B1 (ko) | 2009-01-05 | 2015-07-24 | 삼성전자주식회사 | 반도체 장치, 이를 포함하는 반도체 시스템, 및 반도체 장치의 전압 공급방법 |
US8732258B2 (en) * | 2009-03-20 | 2014-05-20 | Oracle America, Inc. | Method and system for transporting telemetry data across a network |
US7913027B2 (en) | 2009-04-07 | 2011-03-22 | Lsi Corporation | Configurable storage array controller |
US8352669B2 (en) | 2009-04-27 | 2013-01-08 | Lsi Corporation | Buffered crossbar switch system |
JP5449543B2 (ja) * | 2009-06-09 | 2014-03-19 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ネットワークにおけるパケットルーティング |
TW201115458A (en) | 2009-10-29 | 2011-05-01 | Ralink Technology Corp | Buffer space allocation method and related packet switch |
US8463934B2 (en) | 2009-11-05 | 2013-06-11 | Rj Intellectual Properties, Llc | Unified system area network and switch |
WO2011115168A1 (ja) * | 2010-03-17 | 2011-09-22 | 日本電気株式会社 | 通信システム、ノード、制御サーバ、通信方法およびプログラム |
JP2011234063A (ja) * | 2010-04-27 | 2011-11-17 | Fujitsu Ltd | 中継装置、及び、転送方法 |
KR101509145B1 (ko) | 2011-03-03 | 2015-04-07 | 가부시키가이샤 무라타 세이사쿠쇼 | 적층 세라믹 콘덴서 |
US8989009B2 (en) * | 2011-04-29 | 2015-03-24 | Futurewei Technologies, Inc. | Port and priority based flow control mechanism for lossless ethernet |
US9021475B2 (en) * | 2011-05-04 | 2015-04-28 | Citrix Systems, Inc. | Systems and methods for SR-IOV pass-thru via an intermediary device |
US8490113B2 (en) | 2011-06-24 | 2013-07-16 | International Business Machines Corporation | Messaging in a parallel computer using remote direct memory access (‘RDMA’) |
US9137173B2 (en) | 2012-06-19 | 2015-09-15 | Advanced Micro Devices, Inc. | Devices and methods for interconnecting server nodes |
US8930595B2 (en) | 2012-06-21 | 2015-01-06 | Advanced Micro Devices, Inc. | Memory switch for interconnecting server nodes |
-
2012
- 2012-11-13 US US13/675,401 patent/US8875256B2/en active Active
-
2013
- 2013-11-12 WO PCT/US2013/069572 patent/WO2014078271A1/en active Application Filing
- 2013-11-12 CN CN201380057816.1A patent/CN104769912B/zh active Active
- 2013-11-12 KR KR1020157011759A patent/KR101688984B1/ko active IP Right Grant
- 2013-11-12 JP JP2015541998A patent/JP2016502795A/ja active Pending
- 2013-11-12 EP EP13798469.6A patent/EP2920940B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040258062A1 (en) | 2003-01-27 | 2004-12-23 | Paolo Narvaez | Method and device for the classification and redirection of data packets in a heterogeneous network |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023038387A1 (ko) * | 2021-09-07 | 2023-03-16 | 프라이빗테크놀로지 주식회사 | 데이터 플로우 기반 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20140137215A1 (en) | 2014-05-15 |
CN104769912B (zh) | 2018-10-02 |
JP2016502795A (ja) | 2016-01-28 |
EP2920940B1 (en) | 2018-12-26 |
KR20150082282A (ko) | 2015-07-15 |
EP2920940A1 (en) | 2015-09-23 |
US8875256B2 (en) | 2014-10-28 |
CN104769912A (zh) | 2015-07-08 |
WO2014078271A1 (en) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101688984B1 (ko) | 데이터 플로우 처리를 위한 방법 및 디바이스 | |
US10949379B2 (en) | Network traffic routing in distributed computing systems | |
US20210344692A1 (en) | Providing a virtual security appliance architecture to a virtual cloud infrastructure | |
US9413554B2 (en) | Virtual network overlays | |
US8856518B2 (en) | Secure and efficient offloading of network policies to network interface cards | |
US20200344088A1 (en) | Network interoperability support for non-virtualized entities | |
US8295275B2 (en) | Tagging network I/O transactions in a virtual machine run-time environment | |
US10666617B2 (en) | Intercepting network traffic routed by virtual switches for selective security processing | |
US20190273718A1 (en) | Intercepting network traffic routed by virtual switches for selective security processing | |
US20110274110A1 (en) | Method for preventing mac spoofs in a distributed virtual switch | |
US20180367518A1 (en) | Device identification and authentication in a network | |
US20070162619A1 (en) | Method and System for Zero Copy in a Virtualized Network Environment | |
US10911493B2 (en) | Identifying communication paths between servers for securing network communications | |
US10469529B2 (en) | Address checking to protect against denial of service attack | |
US20200351286A1 (en) | Configuring an island virtual switch for provisioning of network security services | |
US20200351306A1 (en) | Configuring security policies in response to detecting a pivot of an intrusion | |
CN114008979B (zh) | 具有隔离虚拟网络集成的无服务器分组处理服务 | |
US20140068088A1 (en) | Systems and methods for processing media access control (mac) addresses | |
WO2019165274A1 (en) | Systems and methods for preventing malicious network traffic from accessing trusted network resources | |
US20220353180A1 (en) | Inter-tunneling endpoint (inter-tep) overlay forwarding | |
WO2022146586A1 (en) | Layer-2 networking information in a virtualized cloud environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |