KR102367307B1 - 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들 - Google Patents

컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR102367307B1
KR102367307B1 KR1020207000164A KR20207000164A KR102367307B1 KR 102367307 B1 KR102367307 B1 KR 102367307B1 KR 1020207000164 A KR1020207000164 A KR 1020207000164A KR 20207000164 A KR20207000164 A KR 20207000164A KR 102367307 B1 KR102367307 B1 KR 102367307B1
Authority
KR
South Korea
Prior art keywords
packet
mac address
port
packet forwarding
forwarding device
Prior art date
Application number
KR1020207000164A
Other languages
English (en)
Other versions
KR20200003948A (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 KR20200003948A publication Critical patent/KR20200003948A/ko
Application granted granted Critical
Publication of KR102367307B1 publication Critical patent/KR102367307B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Landscapes

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

Abstract

본 개시내용은 패킷들을 프로세싱하기 위한 시스템들 및 방법들을 제공한다. 시스템은 제1 컴퓨팅 디바이스, 제2 컴퓨팅 디바이스 및 제1 패킷 포워딩 디바이스를 포함할 수 있다. 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스 각각은 제1 패킷 포워딩 디바이스의 개개의 포트에 통신가능하게 커플링될 수 있다. 제1 패킷 포워딩 디바이스의 각각의 포트에는 고유한 MAC 어드레스가 할당될 수 있다. 제1 컴퓨팅 디바이스로부터 수신된 제1 패킷에 대해, 제1 패킷 포워딩 디바이스는, 제1 패킷의 목적지 MAC 어드레스가, 제1 패킷이 수신되었던 포트에 할당된 MAC 어드레스와 매칭함을 결정하고, 그리고 결정에 대한 응답으로, 제1 패킷을 제2 컴퓨팅 디바이스로 포워딩하도록 구성될 수 있다. 제2 컴퓨팅 디바이스로부터 수신된 제2 패킷에 대해, 제1 패킷 포워딩 디바이스는, 제2 패킷을 MAC 어드레스가 제2 패킷의 소스 MAC 어드레스와 매칭하는 포트를 통해 포워딩하도록 구성될 수 있다.

Description

컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR PROCESSING PACKETS IN A COMPUTER NETWORK}
[0001] 본 출원은 2015년 9월 15일자로 출원되고 "SYSTEMS AND METHODS FOR PROCESSING PACKETS IN A COMPUTER NETWORK"라는 명칭을 가진 미국 특허 출원 번호 제 14/854,939 호에 대한 우선권을 주장하고, 상기 출원의 내용들은 인용에 의해 본원에 포함된다.
[0002] 정보는 컴퓨터 네트워크들을 통해 송신된다. 정보는 패킷들로 분할된 비트들로서 표현된다. 패킷들은 컴퓨터 네트워크들을 통해 정보를 전파하는 네트워크 디바이스들, 이를테면, 스위치들 및 라우터들 사이에서 전달된다. 각각의 패킷은, 그것의 소스로부터, 개개의 패킷 내의 헤더 정보에 의해 특정되는 목적지를 향해 송신된다. 패킷의 소스 및 목적지는 네트워크의 상이한 부분들 내에 각각 있을 수 있다. 소스와 목적지 사이의 다수의 가능한 루트들이 존재할 수 있다.
[0003] 일부 양상들에서, 본 개시내용은 시스템에 관한 것이다. 시스템은 제1 컴퓨팅 디바이스, 제2 컴퓨팅 디바이스 및 제1 패킷 포워딩 디바이스를 포함할 수 있다. 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스 각각은 제1 패킷 포워딩 디바이스의 개개의 포트에 통신가능하게 커플링될 수 있다. 제1 컴퓨팅 디바이스로부터 수신된 제1 패킷에 대해, 제1 패킷 포워딩 디바이스는, 제1 패킷의 목적지 MAC 어드레스가, 제1 패킷이 수신되었던 포트와 연관됨을 결정하도록 구성될 수 있다. 제1 패킷 포워딩 디바이스는 또한, 제1 패킷의 목적지 MAC 어드레스가, 제1 패킷이 수신되었던 포트와 연관된다는 결정에 대한 응답으로, 제1 패킷을 제2 컴퓨팅 디바이스로 포워딩하도록 구성될 수 있다. 제2 컴퓨팅 디바이스로부터 수신된 제2 패킷에 대해, 제1 패킷 포워딩 디바이스는 제2 패킷을 제2 패킷의 소스 MAC 어드레스와 연관된 포트를 통해 포워딩하도록 구성될 수 있다.
[0004] 일부 구현들에서, 제1 패킷 포워딩 디바이스는, 제2 패킷의 소스 MAC 어드레스가 제1 패킷 포워딩 디바이스의 임의의 포트와 연관되지 않는다는 결정에 대한 응답으로, 제2 패킷을 드롭(drop)하도록 추가로 구성된다. 일부 구현들에서, 제1 컴퓨팅 디바이스로부터 수신된 제3 패킷에 대해, 제1 패킷 포워딩 디바이스는, 제3 패킷이 브로드캐스트 패킷 및 멀티캐스트 패킷 중 하나임을 결정하고, 제3 패킷의 목적지 MAC 어드레스를 제3 패킷이 수신되었던 포트에 할당된 MAC 어드레스로 변경하고, 그리고 제3 패킷을 제2 컴퓨팅 디바이스로 포워딩하도록 구성된다.
[0005] 일부 구현들에서, 제1 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당된 MAC 어드레스는 제1 패킷 포워딩 디바이스의 IP 어드레스 및 적어도 하나의 포트를 고유하게 식별하는 번호에 기반한다. 일부 구현들에서, 제1 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당된 MAC 어드레스는 제1 패킷 포워딩 디바이스의 IP 어드레스 및 적어도 하나의 포트를 고유하게 식별하는 번호를 포함한다.
[0006] 일부 구현들에서, 제1 패킷 포워딩 디바이스는, 제1 컴퓨팅 디바이스로부터 수신된 제4 패킷의 목적지 MAC 어드레스가, 제4 패킷이 수신되었던 포트와 연관되지 않고, 제4 패킷의 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스도 멀티캐스트 MAC 어드레스도 아님을 결정하고, 그리고 제4 패킷의 목적지 MAC 어드레스가, 제4 패킷이 수신되었던 포트와 연관되지 않고, 제4 패킷의 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스도 멀티캐스트 MAC 어드레스도 아니라는 결정에 대한 응답으로, 제4 패킷을 드롭하도록 추가로 구성된다.
[0007] 일부 구현들에서, 시스템은 복수의 포트들을 포함하는 제3 컴퓨팅 디바이스를 포함할 수 있다. 제3 컴퓨팅 디바이스는, 제1 패킷 포워딩 디바이스의 개개의 포트에 통신가능하게 커플링될 수 있다. 제1 패킷 포워딩 디바이스는, 제3 컴퓨팅 디바이스로부터 수신된 제5 패킷의 목적지 MAC 어드레스가 제3 컴퓨팅 디바이스의 디바이스 ID와 연관됨을 결정하도록 추가로 구성될 수 있다. 제1 패킷 포워딩 디바이스는 또한, 제5 패킷의 목적지 MAC 어드레스가 제3 컴퓨팅 디바이스의 디바이스 ID와 연관된다는 결정에 대한 응답으로, 제5 패킷을 제2 컴퓨팅 디바이스로 포워딩하도록 추가로 구성될 수 있다.
[0008] 일부 구현들에서, 제3 컴퓨팅 디바이스는, 제1 패킷 포워딩 디바이스로부터 수신된 제6 패킷의 소스 MAC 어드레스가, 제3 컴퓨팅 디바이스가 통신가능하게 커플링된 제1 패킷 포워딩 디바이스의 포트와 연관됨을 결정하고, 그리고 제6 패킷을 제6 패킷의 소스 MAC 어드레스와 연관된 제3 컴퓨팅 디바이스의 포트를 통해 포워딩하도록 구성된다. 일부 구현들에서, 제1 컴퓨팅 디바이스는, 제2 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 제1 컴퓨팅 디바이스가 통신가능하게 커플링된 제1 패킷 포워딩 디바이스의 포트와 연관된 목적지 MAC 어드레스를 가지는 것을 보장하도록 추가로 구성된다. 일부 구현들에서, 제2 컴퓨팅 디바이스는, 제1 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 제1 컴퓨팅 디바이스가 통신가능하게 커플링된 제1 패킷 포워딩 디바이스의 포트와 연관된 소스 MAC 어드레스를 가지는 것을 보장하도록 추가로 구성된다.
[0009] 일부 양상들에서, 본 개시내용은 패킷들을 프로세싱하는 방법에 관한 것이다. 방법은, 제1 패킷 포워딩 디바이스가 제1 컴퓨팅 디바이스로부터 제1 패킷을 수신하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가, 제1 패킷의 목적지 MAC 어드레스가, 제1 패킷이 수신되었던 포트와 연관됨을 결정하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가, 제1 패킷의 목적지 MAC 어드레스가, 제1 패킷이 수신되었던 포트와 연관된다는 결정에 대한 응답으로, 제1 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계를 포함할 수 있다. 방법은, 제2 컴퓨팅 디바이스가 제2 패킷을 제1 패킷 포워딩 디바이스로 송신하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가 제2 패킷을 제2 패킷의 소스 MAC 어드레스와 연관된 포트를 통해 포워딩하는 단계를 포함할 수 있다.
[0010] 일부 구현들에서, 방법은, 제1 패킷 포워딩 디바이스가, 제2 패킷의 소스 MAC 어드레스가 제1 패킷 포워딩 디바이스의 임의의 포트와 연관되지 않음을 결정하는 단계, 및 제1 패킷 포워딩 디바이스가, 제2 패킷의 소스 MAC 어드레스가 제1 패킷 포워딩 디바이스의 임의의 포트와 연관되지 않는다는 결정에 대한 응답으로, 제2 패킷을 드롭하는 단계를 포함할 수 있다.
[0011] 일부 구현들에서, 방법은, 제1 패킷 포워딩 디바이스가 제1 컴퓨팅 디바이스로부터 제3 패킷을 수신하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가 제3 패킷이 브로드캐스트 패킷 및 멀티캐스트 패킷 중 하나임을 결정하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가, 제3 패킷의 목적지 MAC 어드레스를 제3 패킷이 수신되었던 포트에 할당된 MAC 어드레스로 변경하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가 제3 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계를 포함할 수 있다.
[0012] 일부 구현들에서, 제1 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당된 MAC 어드레스는 제1 패킷 포워딩 디바이스의 IP 어드레스 및 적어도 하나의 포트를 고유하게 식별하는 번호에 기반한다. 일부 구현들에서, 제1 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당된 MAC 어드레스는 제1 패킷 포워딩 디바이스의 IP 어드레스 및 적어도 하나의 포트를 고유하게 식별하는 번호를 포함한다.
[0013] 일부 구현들에서, 방법은, 제1 패킷 포워딩 디바이스가 제1 컴퓨팅 디바이스로부터 제4 패킷을 수신하는 단계를 포함할 수 있다. 방법은, 제4 패킷의 목적지 MAC 어드레스가, 제4 패킷이 수신되었던 포트와 연관되지 않고, 제4 패킷의 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스도 멀티캐스트 MAC 어드레스도 아님을 제1 패킷 포워딩 디바이스가 결정하는 단계를 포함할 수 있다. 방법은, 제4 패킷의 목적지 MAC 어드레스가, 제4 패킷이 수신되었던 포트와 연관되지 않고, 제4 패킷의 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스도 멀티캐스트 MAC 어드레스도 아니라는 결정에 대한 응답으로, 제1 패킷 포워딩 디바이스가 제4 패킷을 드롭하는 단계를 포함할 수 있다.
[0014] 일부 구현들에서, 방법은, 제1 패킷 포워딩 디바이스가 제3 컴퓨팅 디바이스로부터 제5 패킷을 수신하는 단계를 포함할 수 있다. 제3 컴퓨팅 디바이스는 복수의 포트들을 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가, 제3 컴퓨팅 디바이스로부터 수신된 제5 패킷의 목적지 MAC 어드레스가 제3 컴퓨팅 디바이스의 디바이스 ID와 연관됨을 결정하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스가, 제5 패킷의 목적지 MAC 어드레스가 제3 컴퓨팅 디바이스의 디바이스 ID와 연관된다는 결정에 대한 응답으로, 제5 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계를 포함할 수 있다.
[0015] 일부 구현들에서, 방법은, 제1 패킷 포워딩 디바이스가 제6 패킷을 제3 컴퓨팅 디바이스로 송신하는 단계를 포함할 수 있다. 방법은, 제1 패킷 포워딩 디바이스로부터 수신된 제6 패킷의 소스 MAC 어드레스가, 제3 컴퓨팅 디바이스가 통신가능하게 커플링된 제1 패킷 포워딩 디바이스의 포트와 연관됨을 제3 컴퓨팅 디바이스가 결정하는 단계를 포함할 수 있다. 방법은, 제3 컴퓨팅 디바이스가, 패킷을 제6 패킷의 소스 MAC 어드레스와 연관된 제3 컴퓨팅 디바이스의 포트를 통해 포워딩하는 단계를 포함할 수 있다.
[0016] 일부 구현들에서, 방법은, 제2 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 제1 컴퓨팅 디바이스가 통신가능하게 커플링된 제1 패킷 포워딩 디바이스의 포트와 연관된 목적지 MAC 어드레스를 가지는 것을 제1 컴퓨팅 디바이스가 보장하는 단계를 포함할 수 있다. 일부 구현들에서, 방법은, 제1 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 제1 컴퓨팅 디바이스가 통신가능하게 커플링된 제1 패킷 포워딩 디바이스의 포트와 연관된 소스 MAC 어드레스를 가지는 것을 제2 컴퓨팅 디바이스가 보장하는 단계를 포함할 수 있다.
[0017] 본 개시내용의 위의 그리고 관련된 목적들, 특징들 및 이점들은 첨부한 도면들과 함께 살펴볼 때, 다음의 상세한 설명에 대한 참조로 더 충분히 이해될 것이다.
[0018] 도 1a는 패킷들을 포워딩하기 위한 예시적 시스템의 블록 다이어그램이다.
[0019] 도 1b는 패킷들을 포워딩하기 위한 다른 예시적 시스템의 블록 다이어그램이다.
[0020] 도 2는 도 1a에 도시되는 예시적 패킷 포워딩 디바이스의 블록 다이어그램이다.
[0021] 도 3은 패킷들을 포워딩하기 위한 예시적 프로세스를 예시하는 흐름도이다.
[0022] 도 4는 패킷들을 포워딩하기 위한 다른 예시적 프로세스를 예시하는 흐름도이다.
[0023] 명료함을 위해, 모든 각각의 컴포넌트가 모든 각각의 도면에서 라벨링되는 것은 아닐 수 있다. 도면들은 실척대로 도시되도록 의도되는 것은 아니다. 다양한 도면들에서의 유사한 참조 번호들 및 표기들은 유사한 엘리먼트들을 표시한다.
[0024] 본 개시내용의 시스템 및 방법들은 패킷 프로세싱에 관한 것이다. 특히, 본 개시내용은 호스트 디바이스들과 라우팅 디바이스들 사이에서 전송된 패킷들의 포트-레벨 제어를 제공함으로써 네트워크 보안을 개선할 수 있는 패킷 포워딩 디바이스의 타입을 설명한다. 패킷 포워딩 디바이스는 다수의 다운워드 포트(downward port)들 및 단일 업워드 포트를 포함할 수 있으며, 상류(upstream) 디바이스가, 자신이 호스트 디바이스들로부터 수신한 각각의 패킷의 출처(provenance)를 확신하게 허용하는 방식으로 다운워드 포트들과 업워드 포트 사이에서 모든 패킷들을 포워딩할 수 있다. 일반적으로, 패킷의 출처는 패킷이 그의 경로를 따라 상류 디바이스로 이동하게 하는 패킷 포워딩 디바이스들의 다운워드 포트들의 세트 및 패킷의 근원(origin)을 지칭할 수 있다. 상류 디바이스 및 패킷 포워딩 디바이스들은 또한, 상류 디바이스가, 상류 디바이스에 의해 송신되는 패킷이 나가게 할 패킷 포워딩 디바이스들의 포트들의 세트를 선택하게 허용하도록 구성될 수 있다.
[0025] 도 1a는 패킷들을 포워딩하기 위한 예시적 시스템(100)의 블록 다이어그램이다. 시스템(100)은 복수의 호스트 디바이스들(102a-102h)(일반적으로 호스트 디바이스들(102)로 지칭됨), 3개의 패킷 포워딩 디바이스들(110a-110c)(일반적으로 패킷 포워딩 디바이스들(110)로 지칭됨), 및 라우팅 디바이스(122)를 포함한다. 시스템(100)은 또한, 라우팅 디바이스(122)에 연결된 네트워크(124)를 포함한다. 일부 구현들에서, 네트워크(124)는 인터넷과 같은 대형 외부 컴퓨터 네트워크일 수 있다. 예컨대, 라우팅 디바이스(122)는 인터넷 액세스를 호스트 디바이스들(102)에 제공하는 기업 네트워크의 게이트웨이 디바이스일 수 있다. 일부 다른 구현들에서, 네트워크(124)는 상이한 컴퓨터 네트워크일 수 있다.
[0026] 패킷 포워딩 디바이스(110a)는 3개의 다운워드 포트들(114a-114c) 및 하나의 업워드 포트(118a)를 포함한다. 유사하게, 패킷 포워딩 디바이스(110b)는 3개의 다운워드 포트들(114d-114f) 및 하나의 업워드 포트(118b)를 포함하고, 패킷 포워딩 디바이스(110c)는 3개의 다운워드 포트들(114g-114i) 및 하나의 업워드 포트(118c)를 포함한다. 다운워드 포트들(114a-114i)은 일반적으로, 다운워드 포트들(114)로 지칭되는 한편, 업워드 포트들(118a-118c)은 일반적으로, 업워드 포트들(118)로 지칭된다. "업워드" 포트 또는 "다운워드" 포트로서의 포트의 라벨링은 패킷들이 포트들을 통해 이동될 수 있는 방향을 지칭하지 않는다. 대신에, 그것은 시스템(100)의 전체 계층에 대한 포트들의 상대적 포지션을 지칭한다. 따라서, 업워드 포트들(118)은 라우팅 디바이스(122)에 더 가깝게 포지셔닝되는 반면, 다운워드 포트들(114)은 호스트 디바이스들(102)에 더 가깝게 포지셔닝된다.
[0027] 패킷 포워딩 디바이스들(110a 및 110b)은 그들 개개의 업워드 포트들(118a 및 118b)을 통해 라우팅 디바이스(122)에 직접적으로 연결된다. 패킷 포워딩 디바이스(110c)의 업워드 포트(118c)는 패킷 포워딩 디바이스(110b)의 다운워드 포트(114f)에 연결된다. 그에 따라서, 패킷 포워딩 디바이스(110b) 및 패킷 포워딩 디바이스(110c)는 "캐스케이드된(cascaded)" 어레인지먼트(arrangement)로 연결된다. 결과적으로, 라우팅 디바이스(122)와 패킷 포워딩 디바이스(110c) 사이에서 이동하는 패킷들은 또한, 패킷 포워딩 디바이스(110b)를 통과해야 한다. 패킷 포워딩 디바이스(110b)의 다운워드 포트(114f)는, 그것이 호스트 디바이스(102)보다는 캐스케이드된 패킷 포워딩 디바이스(110c)에 연결되기 때문에 캐스케이드 포트로 지칭될 수 있다. 패킷 포워딩 디바이스들(110b 및 110c)의 캐스케이드된 어레인지먼트는, 패킷 포워딩 디바이스(110c)가 추가적 호스트 디바이스(102)에 각각 연결될 수 있는 추가적 하류(downstream) 포트들(114)을 제공하기 때문에, 패킷 포워딩 디바이스(110b)만으로 가능한 것보다는 추가(more) 호스트 디바이스들(102)이 라우팅 디바이스(122)에 연결되게 허용할 수 있다. 일부 구현들에서, 시스템(100)은 2 개 초과의 레벨들의 캐스케이드된 패킷 포워딩 디바이스들(110)을 포함할 수 있다. 예컨대, 시스템(100)은 3 개, 4 개, 5 개 또는 그 초과의 레벨들의 캐스케이드된 패킷 포워딩 디바이스들(110)을 포함할 수 있다.
[0028] 일부 구현들에서, 다운워드 포트(114f)는 전용 캐스케이드 포트(즉, 패킷 포워딩 디바이스(110c)와 같은 캐스케이드된 패킷 포워딩 디바이스(110)에만 연결되어야 하고 호스트 디바이스(102)에는 직접적으로 연결되지 않아야 하는 포트)일 수 있다. 일부 다른 구현들에서, 패킷 포워딩 디바이스(110b)의 다운워드 포트들(114) 중 임의의 다운워드 포트는 캐스케이드 포트로서 구성될 수 있고, 캐스케이드 포트로서의 역할을 할 다운워드 포트(114f)의 선택은 임의적일 수 있다. 예컨대, 패킷 포워딩 디바이스(110b)는 자신의 다운워드 포트들(114) 중 어느 것이 캐스케이드 포트인지를 표시하는 표를 유지할 수 있다. 패킷 포워딩 디바이스(110)가 하류 포트(114)에 커플링되는 경우, 표는 캐스케이드된 패킷 포워딩 디바이스(110)가 연결되는 다운워드 포트(114)가 캐스케이드 포트임을 표시하도록 업데이트될 수 있다. 캐스케이드 포트로서의 역할을 하는 다운워드 포트(114)에 대응하는 정보를 유지하는 것은, 아래에서 추가로 설명되는 바와 같이, 라우팅 디바이스(122)로부터 수신된 패킷들의 프로세싱을 보조할 수 있다.
[0029] 각각의 호스트 디바이스(102)는 패킷 포워딩 디바이스들(110) 중 하나의 패킷 포워딩 디바이스의 개개의 다운워드 포트(114)에 연결된다. 각각의 패킷 포워딩 디바이스(110)는 3개의 다운워드 포트들(114)을 포함하는 것으로서 도시되지만, 이 구성은 단지 예시적이라는 것이 이해되어야 한다. 다른 구현들에서, 각각의 패킷 포워딩 디바이스(110)는 더 많은 수의 다운워드 포트들(114)을 포함할 수 있다. 예컨대, 일부 구현들에서, 각각의 패킷 포워딩 디바이스(110)는 16개, 32개, 64개 또는 128개의 다운워드 포트들(114)을 포함할 수 있다. 일부 구현들에서, 각각의 패킷 포워딩 디바이스(110)는 최대 255개의 다운워드 포트들(114)을 포함할 수 있다.
[0030] 패킷 포워딩 디바이스들(110)은, 라우팅 디바이스(122)가 착신 패킷(incoming packet)이 어느 다운워드 포트(114)로부터 도착하였는지를 확신할 수 있도록, 라우팅 디바이스(122)와 호스트 디바이스들(102) 사이의 네트워크 트래픽의 포트-레벨 제어를 제공하도록 구성될 수 있다. 이것은 라우팅 디바이스(122)가 패킷의 소스를 추적하게 허용할 수 있는데, 이는 시스템(100)에 개선된 보안을 제공할 수 있다. 예컨대, 라우팅 디바이스(122)가 악의적(malicious) 페이로드를 포함하는 패킷을 수신하면, 악의적 패킷을 전송하였던 호스트 디바이스(102)가 식별될 수 있다. 호스트 디바이스(102)를 식별하는 것은 시스템(100)으로부터 그 호스트 디바이스(102)를 제거하거나 또는 호스트 디바이스(102)를 수리하는 것과 같은 정정 액션이 취해지게 허용할 수 있다. 패킷 포워딩 디바이스들(110)은 또한, 라우팅 디바이스(122)가 발신 패킷(outgoing packet)이 어느 다운워드 포트(114)로 나갈 것인지를 선택하게 허용하도록 구성될 수 있다. 일부 구현들에서, 이것은 라우팅 디바이스(122)가 시스템(100) 내에서 로드 밸런싱을 구현하게 허용할 수 있다.
[0031] 라우팅 디바이스(122)가 착신 패킷들의 출처를 확인하고 각각의 발신 패킷이 나갈 다운워드 포트(114)를 선택하게 허용하기 위해, 패킷 포워딩 디바이스들(110)의 각각의 다운워드 포트(114)는 하나 또는 그 초과의 MAC 어드레스들과 연관될 수 있다. 예컨대, 호스트 디바이스(102)에 직접적으로 연결된 각각의 다운워드 포트(114)는 그 다운워드 포트(114)에 할당된 고유한 MAC 어드레스와 연관될 수 있다. 다운워드 포트(114)에 할당된 MAC 어드레스는, 동일한 패킷 포워딩 디바이스(110) 상의 다른 다운워드 포트들(114)의 MAC 어드레스들뿐만 아니라 다른 패킷 포워딩 디바이스들(110)의 다운워드 포트들(114)에 대해 고유할 수 있다. 각각의 호스트 디바이스(102)는, 호스트 디바이스들(102)이 연결된 개개의 다운워드 포트들(114)과 매칭하는 목적지 MAC 어드레스로 패킷 포워딩 디바이스(110)를 향해 지향되는 패킷들을 어드레싱하도록 구성될 수 있다. 패킷 포워딩 디바이스들(110a)과는 대조적으로, 스위치와 같은 통상적 네트워크 노드는 일반적으로, 단일 MAC 어드레스를 가지며, 호스트 디바이스들은, 호스트 디바이스들이 어느 포트들에 연결되는지와는 관계 없이 동일한 목적지 MAC 어드레스로 노드로 지향되는 패킷들을 어드레싱한다. 시스템(100) 내의 각각의 호스트 디바이스(102)가 개개의 다운워드 포트(114)에 연결되고, 호스트 디바이스(102)에 직접적으로 연결된 각각의 다운워드 포트(114)에 고유한 MAC 어드레스가 할당되기 때문에, 패킷 포워딩 디바이스들(110)을 통해 라우팅 디바이스(122)에 도착하는 패킷은 패킷의 헤더에 포함된 목적지 정보에 기반하여, 특정 호스트 디바이스(102)로부터 발신된 것으로 결정될 수 있다.
[0032] 일부 구현들에서, 패킷 포워딩 디바이스(110)의 다운워드 포트(114)에 할당된 MAC 어드레스는, 다른 패킷 포워딩 디바이스들(110)로부터 패킷 포워딩 디바이스(110)를 고유하게 식별하는 정보, 및 그 패킷 포워딩 디바이스(110) 상의 다른 다운워드 포트들(114)로부터 다운워드 포트(114)를 고유하게 식별하는 정보에 기반할 수 있다. 예컨대, 일부 구현들에서, 각각의 패킷 포워딩 디바이스(110)를 고유하게 식별하는 정보(때때로 디바이스 ID로 지칭됨)는 패킷 포워딩 디바이스(110)와 연관된 IPv4 어드레스일 수 있다. 일부 다른 구현들에서, 다른 식별 정보는 각각의 패킷 포워딩 디바이스(110)를 구별하기 위해 사용될 수 있다. 예컨대, 패킷 포워딩 디바이스들(110)은, 일련 번호들과 같은 값들에 의해, 또는 각각의 패킷 포워딩 디바이스(100)와 연관된 MAC 어드레스와 같은 다른 하드웨어 어드레스에 의해 서로 구별될 수 있다. 일부 구현들에서, 각각의 패킷 포워딩 디바이스(110) 상의 다운워드 포트들(114)을 고유하게 식별하는 정보는 주어진 패킷 포워딩 디바이스(110) 상의 각각의 다운워드 포트(114)에 고유한 임의적 번호일 수 있지만, 상이한 패킷 포워딩 디바이스(110)의 다운워드 포트(114)에 할당된 번호로부터 고유하지 않을 수 있다. 예컨대, 다운워드 포트(114)는, 1과 패킷 포워딩 디바이스(100) 상의 포트들의 수 사이의 정수에 의해 고유하게 식별될 수 있다. 일부 구현들에서, 각각의 포트에는 1 내지 255의 정수가 할당될 수 있다.
[0033] 일부 구현들에서, 시스템(100) 내의 모든 각각의 다른 다운워드 포트(114)로부터 다운워드 포트(114)를 고유하게 식별하는 정보의 세트(즉, 다른 패킷 포워딩 디바이스들(110)로부터 패킷 포워딩 디바이스(110)를 고유하게 식별하는 정보, 및 그 패킷 포워딩 디바이스(110) 상의 다른 다운워드 포트들(114)로부터 다운워드 포트(114)를 고유하게 식별하는 정보)는 호스트 디바이스(102)에 직접적으로 연결된 각각의 다운워드 포트(114)에 할당된 MAC 어드레스의 형태를 취할 수 있다. 이 정보의 세트는 시스템(100) 내의 각각의 다운워드 포트(114)에 고유하기 때문에, 그러한 MAC 어드레스들은 또한, 시스템(100) 내에서 고유할 수 있다. 예컨대, 일부 구현들에서, 다운워드 포트(114)에 할당된 MAC 어드레스는, 다운워드 포트(114)가 로케이팅된 패킷 포워딩 디바이스(110)에 할당된 IP 어드레스 및 그 패킷 포워딩 디바이스(110) 상의 다른 다운워드 포트들 중에서 다운워드 포트(114)를 고유하게 식별하는 번호에 기반할 수 있다.
[0034] 일부 구현들에서, 다운워드 포트(114)에 할당된 MAC 어드레스는, 다운워드 포트(114)가 로케이팅된 패킷 포워딩 디바이스(110)에 할당된 IP 어드레스, 및 그 패킷 포워딩 디바이스(110) 상의 다른 다운워드 포트들(114) 중에서 다운워드 포트(114)를 고유하게 식별하는 번호를 포함할 수 있다. 통상적으로, MAC 어드레스는 12개의 16진 디짓들의 스트링으로서 표현될 수 있는 48-비트 번호이다. 일부 구현들에서, MAC 어드레스의 처음 2개의 16진 디짓들은 소정의 값들로 제한될 수 있다. 다운워드 포트(114)에 할당된 MAC 어드레스는 처음 2개의 16진 디짓들에 대한 임의의 유효 값들을 포함할 수 있다. 예컨대, 다운워드 포트(114)에 할당된 MAC 어드레스의 처음 2개의 16진 디짓들에 대한 유효 값들은 02 또는 0E를 포함할 수 있다. 다운워드 포트(114)에 할당된 MAC 어드레스의 다음 8개의 16진 디짓들은 다운워드 포트(114)가 로케이팅된 패킷 포워딩 디바이스(110)의 IPv4 어드레스에 대응할 수 있고, 마지막 2개의 16진 디짓들은 1과 패킷 포워딩 디바이스(110)에 의해 지원되는 다운워드 포트들(114)의 수 사이의 수일 수 있다. 이 예에서, 특정 패킷 포워딩 디바이스(110)의 다운워드 포트들(114)에 할당된 MAC 어드레스들의 처음 10개의 16진 디짓들은 동일할 것이며, 그 패킷 포워딩 디바이스(110)의 모든 다운워드 포트들(114)에 대한 공통 프리픽스로서의 역할을 할 수 있다. 마지막 2개의 16진 디짓들은 그 패킷 포워딩 디바이스(110)의 각각의 다운워드 포트(114)에 대해 상이할 것이다.
[0035] 일부 구현들에서, 호스트 디바이스들(102)에 직접적으로 연결되기 보다는 캐스케이드된 방식으로 다른 패킷 포워딩 디바이스들(110)에 연결된 다운워드 포트들(114)(이를테면, 패킷 포워딩 디바이스(110c)에 연결된 다운워드 포트(114f))에는 개개의 MAC 어드레스가 할당되지 않을 수 있다. 대신에, 그러한 다운워드 포트들(114)은 자신들이 연결된 캐스케이드된 패킷 포워딩 디바이스(110)의 다운워드 포트들(114)의 MAC 어드레스들과 연관될 수 있다. 예컨대, 다운워드 포트(114f)에는 자기 자신의 MAC 어드레스가 할당되지 않을 수 있지만, 다운워드 포트(114f)는 캐스케이드된 패킷 포워딩 디바이스(110c)의 다운워드 포트들(114g-114i)의 MAC 어드레스들과 연관될 수 있다. 일부 구현들에서, 다운워드 포트(114)는 패킷 포워딩 디바이스들(110)의 멀티레벨 캐스케이드로 모든 다운워드 포트들(114)의 MAC 어드레스들과 연관될 수 있다. 따라서, 일반적으로, 주어진 다운워드 포트(114)는, 그 다운워드 포트(114)에 할당된 고유한 MAC 어드레스뿐만 아니라 그 다운워드 포트(114)에 연결된 캐스케이드된 패킷 포워딩 디바이스들(110) 상의 다운워드 포트들(114)의 MAC 어드레스들을 포함할 수 있는 하나 또는 그 초과의 MAC 어드레스들과 연관될 수 있다.
[0036] 일부 구현들에서, 패킷 포워딩 디바이스들(110)은, 상류 디바이스, 이를테면, 라우팅 디바이스(122)가 호스트 디바이스들(102)로부터 상류 디바이스로 송신된 각각의 패킷의 출처를 결정하게 허용하기 위해 선택된 규정들의 세트에 따라 패킷들을 프로세싱할 수 있다. 패킷들이 송신되게 하는 다운워드 포트들(114)과 연관된 MAC 어드레스들에 적어도 부분적으로 기반할 수 있는 이 규정들은 아래에서 추가로 논의된다.
[0037] 일부 구현들에서, 패킷 포워딩 디바이스들(110)은, 라우팅 디바이스(122)가 라우팅 디바이스(122)로부터 송신된 패킷이 나갈 다운워드 포트(114)를 선택하게 허용하도록 구성될 수 있다. 예컨대, 라우팅 디바이스(122)는, 호스트 디바이스(102a)가 연결된 다운워드 포트(즉, 다운워드 포트(114a))에 할당된 MAC 어드레스와 생성된 패킷들의 소스 MAC 어드레스가 매칭하도록, 호스트 디바이스(102a)를 목적지로 하는 패킷들을 생성하도록 구성될 수 있다. 패킷 포워딩 디바이스(110a)는 라우팅 디바이스(122)로부터 수신된 패킷의 소스 MAC 어드레스가 다운워드 포트(114a)에 할당된 MAC 어드레스와 연관됨(예컨대, 매칭함)을 결정하도록 구성될 수 있으며, 그 결정에 대한 응답으로, 패킷을 다운워드 포트(114a)를 통해 포워딩할 수 있다. 라우팅 디바이스(122)로부터 수신된 패킷의 소스 MAC 어드레스가 다운워드 포트들(114a-114c) 중 임의의 다운워드 포트와 연관되지 않음을 패킷 포워딩 디바이스(110a)가 결정하면, 패킷 포워딩 디바이스(110a)는 패킷을 드롭하도록 구성될 수 있다. 따라서, 이 예에서, 패킷 포워딩 디바이스(110a)는 패킷의 소스 MAC 어드레스에 기반하여 패킷을 포워딩하며, 소스 MAC 어드레스가 자신의 다운워드 포트들(114a-114c) 중 임의의 다운워드 포트와 연관되지 않는 패킷들을 드롭한다. 이것은, 라우팅 디바이스(122)의 어드레스 및 호스트 디바이스들(102) 중 하나의 호스트 디바이스의 목적지 MAC 어드레스와 매칭하는 것으로 위조된 소스 MAC 어드레스를 가지는 패킷을 생성하는 디바이스에 의한 공격들을 방지하는 것을 도울 수 있다. 소스 MAC 어드레스가 패킷 포워딩 디바이스(110)의 다운워드 포트들(114) 중 임의의 다운워드 포트와 연관된 MAC 어드레스가 아닐 것이므로, 그러한 패킷은 드롭될 것이다.
[0038] 도 1b는 패킷들을 포워딩하기 위한 다른 예시적 시스템(101)의 블록 다이어그램이다. 도 1에 도시된 시스템(100)과 같이, 시스템(101)은 네트워크(124)에 연결된 라우팅 디바이스(122)를 포함한다. 시스템(101)은 또한, 3개의 호스트 디바이스들(102i-102k)(일반적으로 호스트 디바이스들(102)로 지칭됨) 및 2개의 패킷 포워딩 디바이스들(110d 및 110e)(일반적으로 패킷 포워딩 디바이스들(110)로 지칭됨)을 포함한다. 패킷 포워딩 디바이스들(110d 및 110e)은 도 1에 도시된 패킷 포워딩 디바이스들(110a-110c)과 유사하고, 호스트 디바이스들(102i-102k)은 도 1에 도시된 호스트 디바이스들(102)과 유사하다. 예컨대, 패킷 포워딩 디바이스(110d)는 3개의 다운워드 포트들(114j-114l) 및 하나의 업워드 포트(118d)를 포함하고, 패킷 포워딩 디바이스(110e)는 3개의 다운워드 포트들(114m-114o) 및 하나의 업워드 포트(118e)를 포함한다. 다운워드 포트들(114j-114o)은 일반적으로, 다운워드 포트들(114)로 지칭되는 한편, 업워드 포트들(118d 및 118e)은 일반적으로, 업워드 포트들(118)로 지칭된다.
[0039] 패킷 포워딩 디바이스들(110d 및 110e)은 그들 개개의 업워드 포트들(118d 및 118e)을 통해 라우팅 디바이스(122)에 직접적으로 연결된다. 시스템(101)은, 시스템(101)에, 각각의 호스트 디바이스(102)와 라우팅 디바이스(122) 사이에 다수의 경로들이 존재한다는 점에서 도 1에 도시되는 시스템(100)과 상이하다. 예컨대, 호스트 디바이스(102i)는 다운워드 포트(114j) 또는 다운워드 포트(114k)를 통해 도달될 수 있고, 호스트 디바이스(102j)는 다운워드 포트(114l) 또는 다운워드 포트(114m)를 통해 도달될 수 있으며, 호스트 디바이스(102k)는 다운워드 포트(114n) 또는 다운워드 포트(114o)를 통해 도달될 수 있다. 도 1a와 관련하여 위에서 논의된 바와 같이, 호스트 디바이스(102)에 직접적으로 연결된 각각의 다운워드 포트(114)에는 고유한 MAC 어드레스가 할당된다.
[0040] 다운워드 포트들(114)에 할당된 고유한 MAC 어드레스들은 라우팅 디바이스(122)가 각각의 호스트 디바이스(102)로의 특정 경로를 선택하게 허용할 수 있다. 예컨대, 위에서 논의된 바와 같이, 라우팅 디바이스(122)는 소스 MAC 어드레스가 패킷이 나가야 하는 다운워드 포트(114)의 MAC 어드레스와 매칭하는 패킷을 생성하도록 구성될 수 있다. 그에 따라서, 라우팅 디바이스(122)는 패킷의 소스 MAC 어드레스를 원하는 루트를 따라 놓인 다운워드 포트(114)의 MAC 어드레스로 세팅함으로써 패킷에 대한 특정 루트를 선택할 수 있다.
[0041] 일부 구현들에서, 라우팅 디바이스(122)는 로드 밸런싱 방식에 기반하여 루트를 선택할 수 있다. 예컨대, 라우팅 디바이스(122)는 대응하는 패킷의 소스 MAC 어드레스 필드에 원하는 포트의 식별자를 특정함으로써 패킷을 또는 패킷들의 흐름을 다운워드 포트(114j) 또는 다운워드 포트(114k)를 통해 패킷 포워딩 디바이스(110d)를 경유하여 호스트 디바이스(102i)에 선택적으로 라우팅할 수 있다. 그렇게 행하는 것은 다운워드 포트들(114j 및 114k) 중 어느 하나가 혼잡해지는 것을 방지하는 것을 도울 수 있다. 위의 기능성은 어그리게이션 노드(aggregation node)들과 다양한 서버 랙(server rack)들 사이에 다수의 루트들을 제공하는 더 복잡한 스위치 패브릭들(예컨대, 데이터센터 네트워크들)을 가지는 계층적 네트워크들에 특히 매우 유용할(valuable) 수 있다.
[0042] 시스템(101)의 토폴로지가 단지 예시적이라는 것이 이해되어야 한다. 예컨대, 일부 구현들에서, 시스템(101)은, 추가적 패킷 포워딩 디바이스들(110)을 포함할 수 있는데, 이들 중 일부는 캐스케이드된 방식으로 배열될 수 있다. 각각의 호스트 디바이스(102)는 또한, 2개 초과의 다운워드 포트들(114)에 연결되거나 또는 단일 다운워드 포트(114)에만 연결될 수 있다.
[0043] 도 1a에 도시되는 시스템(100) 및 도 1b에 도시되는 시스템(101) 내의 각각의 패킷 포워딩 디바이스(110)는 일반적으로, 다른 디바이스들(예컨대, 다른 패킷 포워딩 디바이스들(110))과 통신할 수 있는 임의의 타입의 디바이스를 포함할 수 있다. 예컨대, 각각의 패킷 포워딩 디바이스(110)는 컴퓨터, 라우터, 스위치, 서버 또는 이 엘리먼트들의 임의의 조합일 수 있다. 유사하게, 호스트 디바이스들(102) 및 라우팅 디바이스(122)는 또한, 컴퓨터, 라우터, 스위치, 서버 또는 이 엘리먼트들의 임의의 조합일 수 있다. 패킷 포워딩 디바이스들(110), 호스트 디바이스들(102) 및 라우팅 디바이스(122)는 적어도 하나의 프로세서, 메모리 및 네트워크 인터페이스 카드를 각각 포함할 수 있다. 일부 구현들에서, 네트워크(124)는 인터넷일 수 있고, 시스템(100)은 인터넷에 연결된 데이터센터를 표현할 수 있다. 예컨대, 호스트 디바이스들(102)은 데이터센터에 의해 호스팅되는 데이터를 저장하고, 패킷 포워딩 디바이스들(110) 및 라우팅 디바이스(122)를 통해 데이터에 대한 요청들을 수신하여 이에 응답하도록 구성될 수 있다. 일반적으로, 데이터센터들은 실-시간 컨텐츠 전달과 연관된 트래픽, 개인용 또는 모바일 컴퓨터들의 사용자들에 의해 액세스되는 클라우드 컴퓨팅 서비스들, 데이터 저장소, 데이터 인덱싱, 데이터 백업, 벌크 데이터 전달 및 데이터 액세스를 포함하는 광범위한 컴퓨터 네트워크 트래픽을 지원할 수 있다. 일부 다른 구현들에서, 시스템(100)은 인터넷에 연결된 기업 네트워크 또는 다른 외부 네트워크를 표현할 수 있다.
[0044] 도 2는 도 1a에 도시되는 예시적 패킷 포워딩 디바이스(110b)의 블록 다이어그램이다. 위에서 논의된 바와 같이, 패킷 포워딩 디바이스(110b)는 다운워드 포트들(114d-114f)(일반적으로 다운워드 포트들(114)로 지칭됨) 및 업워드 포트(118b)를 포함한다. 패킷 포워딩 디바이스(110b)는 또한, MAC 어드레스 통지 모듈(201), 헤더 수정 모듈(204), 패킷 포워딩 모듈(206) 및 메모리(208)를 포함한다.
[0045] 일부 구현들에서, MAC 어드레스 통지 모듈(201)은 호스트 디바이스들에 직접적으로 연결된 다운워드 포트들(114)의 고유한 MAC 어드레스를 표시하는 정보를 다운워드 포트(114)에 연결된 각각의 디바이스로 전송하도록 구성될 수 있다. 예컨대, MAC 어드레스 통지 모듈(201)은 다운워드 포트들(114d 및 114e)과 연관된 MAC 어드레스들을 그 포트들에 연결된 디바이스들로 각각 전송할 수 있다.
[0046] 일부 구현들에서, MAC 어드레스 통지 모듈(201)은 다운워드 포트들(114)에 연결된 디바이스들로부터 요청을 수신하는 것에 대한 응답으로, 적절한 MAC 어드레스들을 개개의 다운워드 포트들(114)로 전송하도록 구성될 수 있다. 예컨대, MAC 어드레스 통지 모듈(201)은 연결된 호스트 디바이스들로부터 수신된 ARP(address resolution protocol) 요청들에 응답하도록 구성될 수 있다. 예컨대, 다운워드 포트(114d)에 연결된 디바이스는 ARP 요청을 패킷 포워딩 디바이스(110b)에 전송할 수 있다. MAC 어드레스 통지 모듈(201)은 다운워드 포트(114d)의 MAC 어드레스에 대응하는 정보를 다운워드 포트(114d)에 연결된 디바이스로 송신함으로써 ARP 요청에 응답할 수 있다. ARP 요청들은 다운워드 포트(114e)에 연결된 디바이스들로부터 수신되어 프로세싱될 수 있다. 그에 따라서, 패킷 포워딩 디바이스(110b)의 상이한 다운워드 포트들(114)에 연결된 디바이스들은 ARP 요청들에 대한 상이한 응답들을 수신할 수 있다. 대조적으로, 통상적 네트워크 디바이스들은 ARP 요청을 개시하는 디바이스가 연결된 포트에 관계 없이, 단일 어드레스로 ARP 요청들에 응답하도록 구성된다. MAC 어드레스 통지 모듈(201)은 자신의 다운워드 포트들(114)의 MAC 어드레스들을 자신의 상류 포트(118b)를 통해 통지(advertise)하도록 추가로 구성될 수 있다. 위에서 논의된 바와 같이, 도 1a에 도시되는 호스트 디바이스(102)보다는 다른 패킷 포워딩 디바이스(110c)에 연결된 하류 포트(114f)에는 MAC 어드레스가 할당되지 않을 수 있지만, 하류 포트(114f)는 캐스케이드된 방식으로 패킷 포워딩 디바이스(110b)에 커플링된 다른 패킷 포워딩 디바이스들의 다운워드 포트들(114), 이를테면, 도 1a에 도시되는 패킷 포워딩 디바이스(110c)의 다운워드 포트들(114)의 MAC 어드레스들과 연관될 수 있다. 그에 따라서, MAC 어드레스 통지 모듈은 이 포트들의 MAC 어드레스들을 자신의 상류 포트(118b)를 통해 통지하도록 또한 구성될 수 있다.
[0047] 패킷 포워딩 모듈(206)은 도 3 및 도 4와 관련하여 아래에서 논의되는 규정들의 세트에 기반하여 패킷들을 포워딩하도록 구성될 수 있다. 예컨대, 다운워드 포트(114)를 통해 호스트 디바이스로부터 직접적으로 수신된 패킷에 대해, 패킷 포워딩 모듈(206)은 수신된 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 다운워드 포트(114)와 연관되는지 여부를 결정하도록 구성될 수 있다. 일부 구현들에서, 각각의 다운워드 포트(114)와 연관된 MAC 어드레스들은 메모리(208)에 저장될 수 있다. 패킷 포워딩 모듈(206)은 메모리(208)로부터 그 정보를 리트리브할 수 있으며, 패킷을 업워드 포트(118)를 통해 포워딩할지 여부를 결정하기 위해 다운워드 포트(114)를 통해 수신된 패킷의 목적지 MAC 어드레스를 그 정보와 비교할 수 있다.
[0048] 헤더 수정 모듈(204)은 패킷 포워딩 디바이스(110b)에 의해 수신된 패킷의 헤더 내에 포함된 정보를 수정하도록 구성될 수 있다. 일부 구현들에서, 상류 디바이스, 이를테면, 도 1a에 도시되는 라우팅 디바이스(122)가 하류로부터 도착하는 패킷의 출처(예컨대, 패킷이 통과하였던 패킷 포워딩 디바이스들(110)의 다운워드 포트들(114)의 세트)를 결정하게 허용하기 위해 패킷 헤더 정보를 수정할 필요가 있을 수 있다. 예컨대, 일부 구현들에서, 호스트 디바이스는 패킷을 브로드캐스트 또는 멀티캐스트 패킷으로서 식별하는 목적지 MAC 어드레스를 가지는 패킷을 송신할 수 있다. 그러나, 그 패킷이 패킷 포워딩 디바이스(110b)를 통과한 이후에 변경되지 않고 라우팅 디바이스에 의해 수신되면, 라우팅 디바이스는 패킷이 이동하였던 다운워드 포트(114)를 결정할 어떠한 방법도 없을 것이다. 이 문제를 처리하기 위해, 헤더 수정 모듈(204)은 다운워드 포트들(114) 중 하나의 다운워드 포트로부터 수신된 패킷이 브로드캐스트 또는 멀티캐스트 패킷인지 여부를 결정하고, 만약 그렇다면, 패킷의 헤더를 수정하도록 구성될 수 있다. 패킷의 헤더는 패킷이 수신되었던 다운워드 포트(114)에 할당된 목적지 MAC 어드레스와 매칭하는 목적지 MAC 어드레스를 포함하도록 수정될 수 있어서, 라우팅 디바이스는 패킷의 목적지 MAC 어드레스 필드를 검사함으로써 패킷의 출처를 결정할 수 있다.
[0049] 일부 구현들에서, 패킷 포워딩 모듈(206)은 수신된 패킷의 목적지 MAC 어드레스를 결정하고, 목적지 MAC 어드레스를 브로드캐스트 및 멀티캐스트 패킷들과 연관된 목적지 MAC 어드레스들의 리스트와 비교하도록 구성될 수 있다. 예컨대, 그러한 리스트는 메모리(208)에서 유지될 수 있다. 수신된 패킷이 브로드캐스트 또는 멀티캐스트 패킷이면, 패킷 포워딩 모듈(206)은 패킷을 헤더 수정 모듈(204)에 전송할 수 있고, 헤더 수정 모듈(204)은 패킷이 수신되었던 다운워드 포트(114)에 할당된 MAC 어드레스와 매칭하도록 패킷의 헤더 내에 포함된 목적지 필드를 변경하도록 구성될 수 있다. 패킷 포워딩 모듈(206)은 수정된 패킷을 라우팅 디바이스에 전송할 수 있다. 수정된 패킷이 라우팅 디바이스에 의해 수신되는 경우, 라우팅 디바이스는 수신된 패킷의 목적지 필드를 검사함으로써 패킷이 이동하였던 다운워드 포트(114)를 결정할 수 있다.
[0050] 일부 구현들에서, 패킷 포워딩 모듈(206)은 캐스케이드된 다운워드 포트(114)를 통해 수신된 패킷을 포워딩할지 여부를 결정할 수 있다. 예컨대, 패킷 포워딩 디바이스(110b)는 하나 또는 그 초과의 호스트 디바이스들(102)과 패킷 포워딩 디바이스(110b)의 다운워드 포트들(114d-114f) 사이에 포지셔닝된 모든 캐스케이드된 패킷 포워딩 디바이스들(110)의 다운워드 포트들(114)과 연관된 MAC 어드레스들의 리스트를 저장할 수 있다. 그러한 리스트는, 예컨대, 메모리(208)에 저장될 수 있다. 패킷 포워딩 모듈(206)은 다운워드 포트(114)를 통해 수신된 패킷의 목적지 MAC 어드레스를 리스트에 저장된 MAC 어드레스들과 비교하도록 구성될 수 있다. 매칭이 결정되면, 패킷 포워딩 모듈(206)은 패킷을 상류 포트(118b)를 통해 포워딩할 수 있다. 매칭이 결정되지 않으면, 패킷은 드롭될 수 있다. 일부 다른 구현들에서, 패킷 포워딩 디바이스(110b)는 하나 또는 그 초과의 호스트 디바이스들(102)과 패킷 포워딩 디바이스(110b)의 다운워드 포트들(114d-114f) 사이에 포지셔닝된 모든 캐스케이드된 패킷 포워딩 디바이스들(110)의 다운워드 포트들(114)과 연관된 MAC 어드레스들의 공통 프리픽스들의 리스트를 저장할 수 있다. 위에서 논의된 바와 같이, 공통 프리픽스는 패킷 포워딩 디바이스(110)의 모든 다운워드 포트들(114)에 걸쳐 동일한 MAC 어드레스들의 일부분(즉, 처음 10개의 16진 디짓들)일 수 있다. 따라서, 패킷 포워딩 모듈(206)은, 수신된 패킷의 전체 목적지 MAC 어드레스와 캐스케이드된 패킷 포워딩 디바이스들(110) 중 임의의 패킷 포워딩 디바이스 상의 다운워드 포트(114)와 연관된 고유한 MAC 어드레스 사이의 매칭을 결정하기보다는, 수신된 패킷의 목적지 MAC 어드레스의 프리픽스와 캐스케이드된 패킷 포워딩 디바이스(110)의 공통 프리픽스 사이의 매칭을 결정함으로써, 캐스케이드된 다운워드 포트(114)를 통해 수신된 패킷을 포워딩할지 여부를 더 효율적으로 결정할 수 있다.
[0051] 일부 구현들에서, 패킷 포워딩 모듈(206)은 상류 디바이스, 이를테면, 도 1a에 도시되는 라우팅 디바이스(122) 또는 다른 패킷 포워딩 디바이스(110)로부터 직접적으로 수신된 패킷을 다운워드 포트(114)를 통해 포워딩하도록 구성될 수 있다. 예컨대, 패킷 포워딩 모듈(206)은 수신된 패킷의 소스 MAC 어드레스가 임의의 다운워드 포트(114)와 연관되는지 여부를 결정하도록 구성될 수 있다. 일부 구현들에서, 각각의 다운워드 포트(114)와 연관된 MAC 어드레스들은 메모리(208)에 저장될 수 있다. 패킷 포워딩 모듈(206)은 메모리(208)로부터 그 정보를 리트리브할 수 있으며, 업워드 포트(118)를 통해 수신된 패킷의 소스 MAC 어드레스를 그 정보와 비교할 수 있다. 매칭이 결정되면, 패킷 포워딩 모듈(206)은 수신된 패킷의 소스 MAC 어드레스와 연관된 다운워드 포트(114)를 통해 수신된 패킷을 포워딩하도록 구성될 수 있다. 예컨대, 하류 포트(114)의 MAC 어드레스가 수신된 패킷의 소스 MAC 어드레스와 매칭한다면, 또는 하류 포트(114)가 MAC 어드레스가 수신된 패킷의 소스 MAC 어드레스와 매칭하는 다운워드 포트를 가지는 다른 패킷 포워딩 디바이스(110)에 연결되면, 연관성이 결정될 수 있다. 그에 따라서, 상류 디바이스로부터 수신된 패킷에 대해, 패킷 포워딩 모듈(206)은 수신된 패킷의 소스 어드레스와 캐스케이드된 다운워드 포트(114)와 연관된 MAC 어드레스 사이의 매칭을 결정하는 것에 대한 응답으로 패킷을 적절한 다운워드 포트(114)를 통해 포워딩할 수 있다. 일부 구현들에서, 다운워드 포트(114)는 MAC 어드레스가 수신된 패킷의 소스 MAC 어드레스와 매칭하는 다운워드 포트를 가지는 다른 패킷 포워딩 디바이스(100)에 연결된 캐스케이드된 다운워드 포트(114)일 수 있다. 어떠한 매칭도 결정되지 않으면, 패킷 포워딩 모듈(206)은 패킷을 드롭하도록 구성될 수 있다.
[0052] 일부 다른 구현들에서, 패킷 포워딩 모듈(206)은, 패킷의 소스 MAC 어드레스가 하나 또는 그 초과의 호스트 디바이스들(102)과 패킷 포워딩 디바이스(110b)의 다운워드 포트들(114d-114f) 사이에 포지셔닝된 모든 캐스케이드된 패킷 포워딩 디바이스들의 다운워드 포트들(114)과 연관된 소스 MAC 어드레스들과 매칭함을 결정하지 않고, 패킷의 소스 MAC 어드레스가 호스트 디바이스들에 직접적으로 연결된 다운워드 포트들(114) 중 임의의 다운워드 포트에 할당된 MAC 어드레스와 매칭하지 않음을 결정하는 것에 대한 응답으로, 패킷을 캐스케이드된 패킷 포워딩 디바이스(110)로 포워딩할 수 있다. 패킷이 캐스케이드로 마지막 패킷 포워딩 디바이스(110)에 도달하는 경우, 그 패킷 포워딩 디바이스는 패킷의 소스 MAC 어드레스에 대한 자기 자신의 검사에 기반하여, 패킷을 드롭할지 또는 패킷을 포워딩할지를 결정할 수 있다.
[0053] 일부 구현들에서, MAC 어드레스 통지 모듈(201), 헤더 수정 모듈(204) 및 패킷 포워딩 모듈(206)은 각각, 특수 목적 로직 회로, 이를테면, FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)로서 구현될 수 있다. 다른 구현들에서, MAC 어드레스 통지 모듈(201), 헤더 수정 모듈(204) 및 패킷 포워딩 모듈(206)은 컴퓨터 판독가능한 매체에 저장된 하나 또는 그 초과의 소프트웨어 모듈들로서 구현될 수 있으며, 이들은 하나 또는 그 초과의 범용 프로세서들 상에서 실행된다. 일부 구현들에서, MAC 어드레스 통지 모듈(201), 헤더 수정 모듈(204) 및 패킷 포워딩 모듈(206) 중 일부 또는 이들 전부의 기능성은 단일 모듈로 조합되거나 또는 더 작은 모듈들로 추가로 세분화될 수 있다. 패킷 포워딩 디바이스(110b)는 또한, 도 2에서 예시되지 않은 다른 통신 하드웨어, 이를테면, 네트워크 인터페이스 카드, 추가적 메모리 모듈들 및 입력/출력 디바이스들을 포함할 수 있다.
[0054] 도 1a 및 도 1b에 도시되는 시스템(100)에 포함된 패킷 포워딩 디바이스들(110) 중 임의의 패킷 포워딩 디바이스는 패킷 포워딩 디바이스(110b)와 관련하여 위에서 설명된 모듈들과 유사한 모듈들을 포함할 수 있다는 것이 이해되어야 한다. 예컨대, 패킷 포워딩 디바이스(110a) 및 패킷 포워딩 디바이스(110d)는 각각, 개개의 MAC 어드레스 통지 모듈(201), 개개의 헤더 수정 모듈(204), 개개의 패킷 포워딩 모듈(206) 및 개개의 메모리(208)를 포함할 수 있다. 다른 패킷 포워딩 디바이스들(110)에 포함된 모듈들은 패킷 포워딩 디바이스(110b)의 모듈들과 관련하여 위에서 논의된 방식과 유사한 방식으로 동작할 수 있다.
[0055] 도 3은 패킷들을 포워딩하기 위한 예시적 프로세스(300)를 예시하는 흐름도이다. 일부 구현들에서, 프로세스(300)는 컴퓨팅 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 호스트 디바이스들(102) 중 임의의 호스트 디바이스로부터, 패킷 포워딩 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 패킷 포워딩 디바이스들(110)에 의해 수신된 패킷들을 프로세싱하기 위해 사용될 수 있다. 간단한 개요에서, 프로세스(300)는 패킷 포워딩 디바이스가, 제1 컴퓨팅 디바이스로부터 패킷을 수신하는 단계(스테이지(302))를 포함한다. 프로세스(300)는 수신된 패킷이 브로드캐스트 패킷 및 멀티캐스트 패킷 중 하나인지 여부를 결정하는 단계(스테이지(304))를 포함한다. 패킷이 브로드캐스트 패킷 또는 멀티캐스트 패킷이면, 프로세스(300)는 패킷의 목적지 MAC 어드레스를 패킷이 수신되었던 포트의 MAC 어드레스로 변경하는 단계(스테이지(306)), 및 수정된 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계(스테이지(308))를 포함한다. 패킷이 브로드캐스트 패킷도 멀티캐스트 패킷도 아니라면, 프로세스(300)는 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 포트와 연관되는지 여부를 결정하는 단계(스테이지(310))를 포함한다. 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 포트와 연관되면, 프로세스(300)는 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계(스테이지(312))를 포함한다. 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 포트와 연관되지 않으면, 프로세스(300)는 패킷을 드롭하는 단계(스테이지(314))를 포함한다.
[0056] 다시 도 3을 참조하면, 프로세스(300)는 패킷 포워딩 디바이스가, 제1 컴퓨팅 디바이스로부터 패킷을 수신하는 단계(스테이지(302))를 포함한다. 일부 구현들에서, 제1 컴퓨팅 디바이스는 호스트 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 호스트 디바이스들(102) 중 임의의 호스트 디바이스일 수 있으며, 패킷 포워딩 디바이스의 다운워드 포트를 통해 패킷 포워딩 디바이스에 연결될 수 있다. 일부 다른 구현들에서, 제1 컴퓨팅 디바이스는 제1 패킷 포워딩 디바이스와 호스트 디바이스 사이에 포지셔닝된 다른 패킷 포워딩 디바이스일 수 있다. 또 다른 구현들에서, 제1 컴퓨팅 디바이스는, 예컨대, 호스트 디바이스들 중 하나의 호스트 디바이스의 소스 MAC 어드레스와 매칭하기 위해 패킷의 소스 MAC 어드레스를 위조(또는 스푸핑(spoof))함으로써, 호스트 디바이스들 중 하나의 호스트 디바이스를 가장하려고 시도하고 있을 수 있는 컴퓨팅 디바이스일 수 있다. 프로세스(300)는, 상류 라우팅 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 라우팅 디바이스(122)에서 적절히 지향되지 않는 패킷들을 드롭하고, 라우팅 디바이스가 패킷 포워딩 디바이스에 의해 포워딩되는 패킷들의 출처를 결정하는 것을 가능하게 하기 위해 사용될 수 있다.
[0057] 프로세스(300)는 수신된 패킷이 브로드캐스트 패킷 및 멀티캐스트 패킷 중 하나인지 여부를 결정하는 단계(스테이지(304))를 포함한다. 일부 구현들에서, 소정의 목적지 MAC 어드레스들은, 예컨대, 네트워킹 디바이스들 사이의 보안 협상들, ARP 요청들, 라우터 발견 또는 라우팅 프로토콜 통지들에서, 제한 없이, 사용될 수 있는 브로드캐스트 또는 멀티캐스트 패킷들에 대해 예비될 수 있다. 패킷이 브로드캐스트 패킷 또는 멀티캐스트 패킷인 것으로 결정되면, 프로세스(300)는 패킷의 목적지 MAC 어드레스를 패킷이 수신되었던 포트의 MAC 어드레스로 변경하는 단계(스테이지(306))를 포함한다. 브로드캐스트 패킷 또는 멀티캐스트 패킷이 라우팅 디바이스로 변경되지 않고 포워딩되면, 라우팅 디바이스는 패킷을 발신하였던 특정 호스트 디바이스 또는 패킷이 수신되었던 패킷 포워딩 디바이스의 다운워드 포트를 결정할 수 없다. 예컨대, 다른 호스트 디바이스는 패킷에서 사용되는 소스 IP 및 소스 MAC 어드레스들을 스푸핑할 수 있다. 이 문제를 처리하기 위해, 패킷 포워딩 디바이스는 패킷이 도착하였던 다운워드 포트의 MAC 어드레스를 포함하도록 패킷의 목적지 필드를 수정할 수 있다. 일부 구현들에서, 목적지 MAC 어드레스가 패킷 포워딩 디바이스에 의해 수정되었음에도 불구하고, 패킷의 컨텐츠들은 여전히 패킷이 멀티캐스트 또는 브로드캐스트 패킷임을 표시할 수 있다.
[0058] 프로세스(300)는 수정된 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계(스테이지(308))를 포함할 수 있다. 일부 구현들에서, 제2 컴퓨팅 디바이스는 도 1a 및 도 1b에 도시되는 라우팅 디바이스(122)일 수 있다. 위에서 논의된 바와 같이, 호스트에 직접적으로 커플링된 패킷 포워딩 디바이스의 각각의 다운워드 포트는 고유한 MAC 어드레스를 가질 수 있다. 따라서, 제2 컴퓨팅 디바이스가 수정된 패킷을 수신하는 경우, 제2 컴퓨팅 디바이스는 수신된 패킷의 수정된 목적지 MAC 어드레스를 검사함으로써 패킷이 이동하였던 다운워드 포트를 결정할 수 있다.
[0059] 패킷이 브로드캐스트 패킷도 멀티캐스트 패킷도 아니라면, 프로세스(300)는 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 포트와 연관되는지 여부를 결정하는 단계(스테이지(310))를 포함한다. 예컨대, 수신된 패킷의 목적지 MAC 어드레스를 패킷이 수신되었던 포트와 연관된 MAC 어드레스들과 비교함으로써 결정이 이루어질 수 있다. 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 포트와 연관되면, 프로세스(300)는 패킷을 제2 컴퓨팅 디바이스로 포워딩하는 단계(스테이지(312))를 포함한다. 일부 구현들에서, 캐스케이드된 패킷 포워드 디바이스가 패킷을 포워딩하기 이전에, 캐스케이드된 패킷 포워딩 디바이스에 의해 패킷이 적절히 프로세싱되었을 것이므로, 캐스케이드된 다운워드 포트(즉, 다른 패킷 포워딩 디바이스에 연결된 다운워드 포트)를 통해 수신된 패킷들은 검사 없이 상류 포트를 통해 포워딩된다.
[0060] 일부 구현들에서, 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 다운워드 포트와 연관됨을 결정하는 것을 기초로 패킷을 포워딩하는 것은 호스트 디바이스를 가장하려고 시도하고 있을 수 있는 디바이스들에 의한 공격들을 방지하는 것을 도울 수 있다. 예컨대, 일부 구현들에서, 호스트 디바이스들은 패킷들의 목적지 MAC 어드레스가 호스트 디바이스들이 각각 연결된 패킷 포워딩 디바이스의 다운워드 포트의 MAC 어드레스와 매칭하도록 제2 컴퓨팅 디바이스를 목적지로 하는 패킷들을 생성하도록 구성된다. 따라서, 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 포트와 연관되지 않으면, 패킷 포워딩 디바이스는 패킷이 대응하는 호스트 디바이스로부터 발신되지 않았음을 결정할 수 있으며, 패킷을 드롭할 수 있다(스테이지(314)). 이로써, 패킷이 또한 정확한 목적지 MAC 어드레스(즉, 패킷 포워딩 디바이스에 의해 패킷이 수신된 다운워드 포트와 연관된 MAC 어드레스)를 포함하지 않는 한, 소스 MAC 어드레스가 호스트 디바이스의 어드레스와 매칭하도록 위조된 패킷은 포워딩되지 않을 것이다. 유사하게, 상류 디바이스의 어드레스와 매칭하도록 위조된 소스 MAC 어드레스를 가지는 다운워드 포트 상에서 수신된 패킷은 또한, 패킷이 또한 정확한 목적지 MAC 어드레스(즉, 패킷 포워딩 디바이스에 의해 패킷이 수신된 다운워드 포트와 연관된 MAC 어드레스)를 포함하지 않는 한, 포워딩되지 않을 것이다. 그에 따라서, 제2 컴퓨팅 디바이스에 도달하는 위조된 소스 MAC 어드레스를 가지는 패킷의 가능성이 감소된다.
[0061] 일부 구현들에서, 패킷의 목적지 MAC 어드레스가 패킷이 수신되었던 다운워드 포트와 연관됨을 결정하는 것을 기초로 패킷을 포워딩하는 것은 상류 디바이스, 이를테면, 도 1a에 도시되는 라우팅 디바이스(122)가 악의적 패킷의 소스를 식별하게 허용할 수 있다. 예컨대, 상류 디바이스가 (예컨대, 바이러스 감염의 결과로서 생성된) 악의적 페이로드를 포함하는 패킷을 수신하면, 악의적 패킷을 전송하였던 호스트 디바이스는 패킷의 목적지 MAC 어드레스에 기반하여 식별될 수 있고, 정정 액션은 호스트 디바이스를 제거하거나 또는 수리하도록 수행될 수 있다.
[0062] 도 4는 패킷들을 포워딩하기 위한 다른 예시적 프로세스(400)를 예시하는 흐름도이다. 일부 구현들에서, 프로세스(400)는 컴퓨팅 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 라우팅 디바이스(122)로부터, 패킷 포워딩 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 패킷 포워딩 디바이스들(110)에 의해 수신된 패킷들을 프로세싱하기 위해 사용될 수 있다. 간단한 개요에서, 프로세스(400)는 패킷 포워딩 디바이스가, 제2 컴퓨팅 디바이스로부터 패킷을 수신하는 단계(스테이지(402))를 포함한다. 프로세스(400)는 패킷의 소스 MAC 어드레스가 패킷 포워딩 디바이스의 임의의 다운워드 포트와 연관되는지 여부를 결정하는 단계(스테이지(404))를 포함한다. 패킷의 소스 MAC 어드레스가 패킷 포워딩 디바이스의 하류 포트와 연관되면, 프로세스(400)는 패킷을 MAC 어드레스가 패킷의 소스 MAC 어드레스와 매칭하는 다운워드 포트를 통해 포워딩하는 단계(스테이지(406))를 포함한다. 패킷의 소스 MAC 어드레스가 패킷 포워딩 디바이스의 하류 포트와 연관되지 않으면, 프로세스(400)는 패킷을 드롭하는 단계(스테이지(408))를 포함한다.
[0063] 다시 도 4를 참조하면, 프로세스(400)는 패킷 포워딩 디바이스가, 제2 컴퓨팅 디바이스로부터 패킷을 수신하는 단계(스테이지(402))를 포함한다. 일부 구현들에서, 제2 컴퓨팅 디바이스는 패킷 포워딩 디바이스의 상류에 있는 라우팅 디바이스, 이를테면, 도 1a 및 도 1b에 도시되는 라우팅 디바이스(122)일 수 있으며, 패킷 포워딩 디바이스의 업워드 포트를 통해 패킷 포워딩 디바이스에 연결될 수 있다. 일부 다른 구현들에서, 제2 컴퓨팅 디바이스는 캐스케이드된 패킷 포워딩 디바이스일 수 있다. 프로세스(400)는 상류 라우팅 디바이스가 패킷이 나가게 할 패킷 포워딩 디바이스의 포트를 선택하는 것을 가능하게 하기 위해 사용될 수 있다.
[0064] 프로세스(400)는 패킷의 소스 MAC 어드레스가 패킷 포워딩 디바이스의 임의의 다운워드 포트와 연관되는지 여부를 결정하는 단계(스테이지(404))를 포함한다. 예컨대, 수신된 패킷의 소스 MAC 어드레스를 패킷 포워딩 디바이스의 각각의 다운워드 포트와 연관된 MAC 어드레스들과 비교함으로써 결정이 이루어질 수 있다. 위에서 논의된 바와 같이, 다운워드 포트는, 그 다운워드 포트에 할당된 MAC 어드레스뿐만 아니라 그 다운워드 포트에 연결된 캐스케이드된 패킷 포워딩 디바이스들의 다운워드 포트들의 MAC 어드레스들과 연관될 수 있다. 패킷의 소스 MAC 어드레스가 패킷 포워딩 디바이스의 다운워드 포트와 연관되면, 프로세스(400)는 패킷을 패킷의 소스 MAC 어드레스와 연관된 다운워드 포트를 통해 포워딩하는 단계(스테이지(406))를 포함한다. 패킷의 소스 MAC 어드레스와 패킷 포워딩 디바이스의 다운워드 포트들 중 하나의 다운워드 포트 사이의 연관성을 결정하는 것을 기초로 패킷을 포워딩하는 것은 다른 호스트 디바이스를 가장하려고 시도하고 있을 수 있는 호스트 디바이스들에 의한 공격들을 방지하는 것을 도울 수 있다. 패킷이 나가게 할 다운워드 포트의 선택은 패킷 포워딩 디바이스보다는 상류 라우팅 디바이스에 의해 이루어진다. 패킷 포워딩 디바이스는 패킷의 목적지 MAC 어드레스와 관계 없이, 라우팅 디바이스로부터 수신된 각각의 패킷을 MAC 어드레스가 패킷의 소스 MAC 어드레스와 연관된 다운워드 포트를 통해 포워딩할 것이다. 라우팅 디바이스는 패킷의 소스 MAC 어드레스를 타겟 호스트 디바이스가 선택된 다운워드 포트와 연관된 MAC 어드레스로 세팅함으로써 패킷을 수신할 타겟 호스트 디바이스를 선택할 수 있다. 결과적으로, 예컨대, 타겟 호스트 디바이스의 MAC 어드레스와 매칭하는 MAC 어드레스를 통지함으로써 타겟 호스트 디바이스를 목적지로 하는 패킷들을 수신하려고 시도하는 다른 호스트 디바이스는 그러한 패킷들을 수신하는 것이 방지될 것이다. 대조적으로, 대부분의 네트워킹 디바이스들은 소스 MAC 어드레스보다는 패킷의 목적지 MAC 어드레스에 기반하여 패킷들을 포워딩하며, 그에 따라서, 타겟 호스트 디바이스를 악의적으로 가장하는 호스트 디바이스들로 패킷들을 포워딩할 가능성이 더 크다.
[0065] 본 명세서에서 설명되는 청구 대상 및 동작들의 구현들은, 본 명세서에서 개시되는 구조들 및 이들의 구조적 등가물들을 포함하여, 디지털 전자 회로로, 유형적 매체 상에서 구현되는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로, 또는 이들 중 하나 또는 그 초과의 것들의 조합들로 구현될 수 있다. 본 명세서에서 설명되는 청구 대상의 구현들은 유형의 매체 상에서 구현되는 하나 또는 그 초과의 컴퓨터 프로그램들, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 하나 또는 그 초과의 컴퓨터 저장 매체들 상에서 인코딩되는 컴퓨터 프로그램 명령들의 하나 또는 그 초과의 모듈들로서 구현될 수 있다. 컴퓨터 저장 매체는 컴퓨터-판독가능한 저장 디바이스, 컴퓨터-판독가능한 저장 기판, 랜덤 또는 시리얼 액세스 메모리 어레이 또는 디바이스 또는 이들 중 하나 또는 그 초과의 것들의 조합일 수 있거나, 또는 이들 내에 포함될 수 있다. 컴퓨터 저장 매체는 또한, 하나 또는 그 초과의 별개의 컴포넌트들 또는 매체들(예컨대, 다수의 CD들, 디스크들 또는 다른 저장 디바이스들)일 수 있거나 또는 이들 내에 포함될 수 있다. 컴퓨터 저장 매체는 유형적이고 비-일시적일 수 있다.
[0066] 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로서 또한 알려짐)은 컴파일링되는 언어들, 해석되는 언어들, 선언형 언어들 및 절차형 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 컴퓨터 프로그램은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트 또는 컴퓨팅 환경에 사용하기에 적합한 다른 유닛으로서의 형태를 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템에서의 파일에 대응할 수 있지만, 반드시 그러한 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예컨대, 마크업 언어 문서에 저장된 하나 또는 그 초과의 스크립트들)를 보유하는 파일의 일부분 내에, 해당 프로그램에 전용되는 단일 파일 내에 또는 다수의 조정된 파일들(예컨대, 하나 또는 그 초과의 모듈들, 라이브러리들, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 하나의 사이트에 로케이팅되거나 또는 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 실행되도록 전개될 수 있다.
[0067] 본 명세서에서 설명되는 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하여 출력을 생성함으로써 동작들을 수행하기 위해 하나 또는 그 초과의 컴퓨터 프로그램들을 실행하는 하나 또는 그 초과의 프로그램가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로, 예컨대, "FPGA"(field programmable gate array) 또는 "ASIC"(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한, 이들로서 구현될 수 있다. 그러한 특수 목적 회로는 범용 프로세서가 아닌 경우에도 컴퓨터 프로세서로 지칭될 수 있다.
[0068] 본 명세서는 많은 특정 구현 세부사항들을 포함하지만, 이들은 임의의 발명들의 또는 청구될 수 있는 것의 범위에 대한 제한들로서 해석되어서는 안되며, 그 보다는, 특정 발명들의 특정 구현들에 특정적인 특징들의 설명들로서 해석되어야 한다. 별개의 구현들의 컨텍스트에서 본 명세서에 설명되는 어떤 특징들은 또한, 조합하여 단일 구현에서 구현될 수 있다. 대조적으로, 단일 구현의 컨텍스트에서 설명되는 다양한 특징들은 또한, 다수의 구현들로 개별적으로, 또는 임의의 적합한 서브-조합으로 구현될 수 있다. 더욱이, 특징들은 어떤 조합들로 작용하는 것으로 위에서 설명될 수 있으며, 심지어 처음에 그렇게 청구될 수 있지만, 청구되는 조합으로부터의 하나 또는 그 초과의 특징들이, 일부 경우들에서, 조합으로부터 삭제될 수 있고, 청구되는 조합은 서브-조합 또는 서브-조합의 변형과 관련될 수 있다.
[0069] 유사하게, 동작들이 도면들에 특정 순서로 도시되지만, 이것은 바람직한 결과들을 달성하기 위해, 도시되는 특정 순서로 또는 순차적 순서로 그러한 동작들이 수행되거나, 또는 예시되는 모든 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안된다. 어떤 환경들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 위에서 설명된 구현들의 다양한 시스템 컴포넌트들의 분리는, 그러한 분리가 모든 구현들에서 요구되는 것으로 이해되어서는 안되며, 설명되는 프로그램 컴포넌트들 및 시스템들이 일반적으로, 단일 소프트웨어 제품에 함께 통합될 수 있거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
[0070] "또는"에 대한 지칭들은 "또는"을 사용하여 설명된 임의의 용어들이 설명되는 용어들 중 하나, 하나 초과, 및 전부 중에서 임의의 것을 표시할 수 있도록 포괄적인 것으로 해석될 수 있다. "제1", "제2", "제3" 등의 라벨들은 반드시 순서를 표시하도록 의미되는 것은 아니며, 일반적으로, 단지 같은 또는 유사한 아이템들 또는 엘리먼트들 사이에서 구별하기 위해 사용된다.
[0071] 따라서, 청구 대상의 특정 구현들이 설명되었다. 다른 구현들은 다음의 청구항들의 범위 내에 있다. 일부 경우들에서, 청구항들에서 언급되는 액션들이 상이한 순서로 수행될 수 있으며, 여전히 바람직한 결과들을 달성할 수 있다. 또한, 첨부한 도면들에 도시되는 프로세스들이, 바람직한 결과들을 달성하기 위해, 도시되는 특정 순서를 또는 순차적 순서를 반드시 요구하는 것은 아니다. 어떤 구현들에서, 멀티태스킹 또는 병렬 프로세싱이 사용될 수 있다.

Claims (20)

  1. 시스템으로서,
    하나 이상의 제1 컴퓨팅 디바이스들;
    제2 컴퓨팅 디바이스; 및
    패킷 포워딩 디바이스를 포함하고,
    상기 하나 이상의 제1 컴퓨팅 디바이스들 각각은 상기 패킷 포워딩 디바이스의 개개의 제1 포트에 통신가능하게 커플링되고, 그리고 상기 제2 컴퓨팅 디바이스는 상기 패킷 포워딩 디바이스의 제2 포트에 커플링되고, 상기 패킷 포워딩 디바이스는 제1 포트들과 연관된 MAC 어드레스들을 식별하는 하나 이상의 식별자들의 리스트를 저장하기 위한 메모리를 포함하고, 그리고 상기 하나 이상의 제1 컴퓨팅 디바이스들 중 하나로부터 수신되는 제1 패킷에 대해, 상기 패킷 포워딩 디바이스는:
    상기 제1 패킷의 목적지 MAC 어드레스가 상기 리스트의 상기 하나 이상의 식별자들 중 하나에 대응하는지 여부를 결정하고;
    상기 제1 패킷의 목적지 MAC 어드레스가 상기 리스트의 상기 하나 이상의 식별자들 중 하나에 대응한다는 결정에 응답하여, 상기 제2 컴퓨팅 디바이스에 상기 제1 패킷을 포워딩하고; 그리고
    상기 제1 패킷의 목적지 MAC 어드레스가 상기 리스트의 상기 하나 이상의 식별자들 중 하나에 대응하지 않는다는 결정에 응답하여, 상기 제1 패킷을 드롭(drop)하도록
    구성되고, 그리고
    상기 제2 컴퓨팅 디바이스로부터 수신되는 제2 패킷에 대해, 상기 패킷 포워딩 디바이스는 상기 제2 패킷의 소스 MAC 어드레스와 연관된 제1 포트를 통해 상기 제2 패킷을 포워딩하도록 구성되는, 시스템.
  2. 제1항에 있어서,
    상기 패킷 포워딩 디바이스는 상기 제2 패킷의 상기 소스 MAC 어드레스가 상기 패킷 포워딩 디바이스의 어떠한 포트와도 연관되지 않는다는 결정에 응답하여, 상기 제2 패킷을 드롭하도록 추가로 구성되는, 시스템.
  3. 제1항에 있어서,
    상기 하나 이상의 제1 컴퓨팅 디바이스들 중 하나로부터 수신되는 제3 패킷에 대해, 상기 패킷 포워딩 디바이스는:
    상기 제3 패킷이 브로드캐스트 패킷 및 멀티캐스트 패킷 중 하나임을 결정하고;
    상기 제3 패킷의 목적지 MAC 어드레스를 상기 제3 패킷이 수신된 제1 포트에 할당되는 MAC 어드레스로 변경하고; 그리고
    상기 제2 컴퓨팅 디바이스에 상기 제3 패킷을 포워딩하도록
    구성되는, 시스템.
  4. 제1항에 있어서,
    상기 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당되는 MAC 어드레스는 상기 패킷 포워딩 디바이스의 IP 어드레스 및 상기 적어도 하나의 포트를 고유하게 식별하는 번호에 기초하는, 시스템.
  5. 제4항에 있어서,
    상기 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당되는 MAC 어드레스는 상기 패킷 포워딩 디바이스의 상기 IP 어드레스 및 상기 적어도 하나의 포트를 고유하게 식별하는 번호를 포함하는, 시스템.
  6. 제1항에 있어서,
    상기 패킷 포워딩 디바이스는:
    상기 하나 이상의 제1 컴퓨팅 디바이스들 중 하나로부터 수신되는 제4 패킷의 목적지 MAC 어드레스가 상기 제4 패킷이 수신된 제1 포트와 연관되지 않고 그리고 상기 제4 패킷의 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스 및 멀티캐스트 MAC 어드레스가 아님을 결정하고; 그리고
    상기 제4 패킷의 목적지 MAC 어드레스가 상기 제4 패킷이 수신된 제1 포트와 연관되지 않고 그리고 상기 제4 패킷의 상기 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스 및 멀티캐스트 MAC 어드레스가 아니라는 결정에 응답하여, 상기 제4 패킷을 드롭하도록
    추가로 구성되는, 시스템.
  7. 제1항에 있어서,
    복수의 포트들을 포함하는 제3 컴퓨팅 디바이스를 더 포함하고,
    상기 제3 컴퓨팅 디바이스는 상기 패킷 포워딩 디바이스의 개개의 제1 포트에 통신가능하게 커플링되고, 상기 패킷 포워딩 디바이스는:
    상기 제3 컴퓨팅 디바이스로부터 수신되는 제5 패킷의 목적지 MAC 어드레스가 상기 제3 컴퓨팅 디바이스의 디바이스 ID와 연관된다고 결정하고; 그리고
    상기 제5 패킷의 목적지 MAC 어드레스가 상기 제3 컴퓨팅 디바이스의 디바이스 ID와 연관된다는 결정에 응답하여, 상기 제2 컴퓨팅 디바이스에 상기 제5 패킷을 포워딩하도록
    추가로 구성되는, 시스템.
  8. 제1항에 있어서,
    제3 컴퓨팅 디바이스는:
    상기 패킷 포워딩 디바이스로부터 수신되는 제6 패킷의 소스 MAC 어드레스가, 상기 제3 컴퓨팅 디바이스가 통신가능하게 커플링되는 상기 패킷 포워딩 디바이스의 제1 포트와 연관됨을 결정하고; 그리고
    상기 제6 패킷의 소스 MAC 어드레스와 연관되는 상기 제3 컴퓨팅 디바이스의 포트를 통해 상기 제6 패킷을 포워딩하도록
    구성되는, 시스템.
  9. 제1항에 있어서,
    상기 하나 이상의 제1 컴퓨팅 디바이스들은, 상기 제2 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 상기 하나 이상의 제1 컴퓨팅 디바이스들이 통신가능하게 커플링되는 상기 패킷 포워딩 디바이스의 포트와 연관되는 목적지 MAC 어드레스를 갖는 것을 보장하도록 추가로 구성되는, 시스템.
  10. 제1항에 있어서,
    상기 제2 컴퓨팅 디바이스는, 상기 하나 이상의 제1 컴퓨팅 디바이스들을 목적지로 하는 각각의 패킷이, 목적지가 되는 제1 컴퓨팅 디바이스가 통신가능하게 커플링되는 상기 패킷 포워딩 디바이스의 포트와 연관되는 소스 MAC 어드레스를 갖는 것을 보장하도록 추가로 구성되는, 시스템.
  11. 패킷들을 프로세싱하는 방법으로서,
    패킷 포워딩 디바이스에 의해, 제1 컴퓨팅 디바이스로부터 제1 패킷을 수신하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제1 패킷의 목적지 MAC 어드레스가 상기 제1 컴퓨팅 디바이스와 연관된 하나 이상의 MAC 어드레스들을 식별하는 하나 이상의 식별자들의 리스트에 포함된 일 식별자에 대응하는지 여부를 결정하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제1 패킷의 목적지 MAC 어드레스가 상기 리스트에 포함된 일 식별자에 대응한다는 결정에 응답하여, 제2 컴퓨팅 디바이스에 상기 제1 패킷을 포워딩하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제1 패킷의 목적지 MAC 어드레스가 상기 리스트의 상기 하나 이상의 식별자들 중 하나에 대응하지 않는다는 결정에 응답하여, 상기 제1 패킷을 드롭하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 제2 컴퓨팅 디바이스로부터 제2 패킷을 수신하는 단계; 및
    상기 패킷 포워딩 디바이스에 의해, 상기 제2 패킷의 소스 MAC 어드레스와 연관된 포트를 통해 상기 제2 패킷을 포워딩하는 단계를 포함하는, 패킷들을 프로세싱하는 방법.
  12. 제11항에 있어서,
    상기 패킷 포워딩 디바이스에 의해, 상기 제2 패킷의 소스 MAC 어드레스가 상기 패킷 포워딩 디바이스의 어떠한 포트와도 연관되지 않는다고 결정하는 단계; 및
    상기 패킷 포워딩 디바이스에 의해, 상기 제2 패킷의 소스 MAC 어드레스가 상기 패킷 포워딩 디바이스의 어떠한 포트와도 연관되지 않는다는 결정에 응답하여, 상기 제2 패킷을 드롭하는 단계를 더 포함하는, 패킷들을 프로세싱하는 방법.
  13. 제11항에 있어서,
    상기 패킷 포워딩 디바이스에 의해, 상기 제1 컴퓨팅 디바이스로부터 제3 패킷을 수신하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제3 패킷이 브로드캐스트 패킷 및 멀티캐스트 패킷 중 하나임을 결정하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제3 패킷의 목적지 MAC 어드레스를 상기 제3 패킷이 수신된 포트에 할당되는 MAC 어드레스로 변경하는 단계; 및
    상기 패킷 포워딩 디바이스에 의해, 상기 제2 컴퓨팅 디바이스에 상기 제3 패킷을 포워딩하는 단계를 더 포함하는, 패킷들을 프로세싱하는 방법.
  14. 제11항에 있어서,
    상기 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당되는 MAC 어드레스는 상기 패킷 포워딩 디바이스의 IP 어드레스 및 상기 적어도 하나의 포트를 고유하게 식별하는 번호에 기초하는, 패킷들을 프로세싱하는 방법.
  15. 제14항에 있어서,
    상기 패킷 포워딩 디바이스의 적어도 하나의 포트에 할당되는 MAC 어드레스는 상기 패킷 포워딩 디바이스의 상기 IP 어드레스 및 상기 적어도 하나의 포트를 고유하게 식별하는 번호를 포함하는, 패킷들을 프로세싱하는 방법.
  16. 제11항에 있어서,
    상기 패킷 포워딩 디바이스에 의해, 상기 제1 컴퓨팅 디바이스로부터 제4 패킷을 수신하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제4 패킷의 목적지 MAC 어드레스가 상기 제4 패킷이 수신된 포트와 연관되지 않고 그리고 상기 제4 패킷의 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스 및 멀티캐스트 MAC 어드레스가 아님을 결정하는 단계;
    상기 패킷 포워딩 디바이스에 의해, 상기 제4 패킷의 목적지 MAC 어드레스가 상기 제4 패킷이 수신된 포트와 연관되지 않고 그리고 상기 제4 패킷의 상기 목적지 MAC 어드레스가 브로드캐스트 MAC 어드레스 및 멀티캐스트 MAC 어드레스가 아니라는 결정에 응답하여, 상기 제4 패킷을 드롭하는 단계를 더 포함하는, 패킷들을 프로세싱하는 방법.
  17. 제11항에 있어서,
    상기 패킷 포워딩 디바이스에 의해, 제3 컴퓨팅 디바이스로부터 제5 패킷을 수신하는 단계 ― 상기 제3 컴퓨팅 디바이스는 복수의 포트들을 포함함 ―;
    상기 패킷 포워딩 디바이스에 의해, 상기 제3 컴퓨팅 디바이스로부터 수신되는 상기 제5 패킷의 목적지 MAC 어드레스가 상기 제3 컴퓨팅 디바이스의 디바이스 ID와 연관된다고 결정하는 단계; 및
    상기 패킷 포워딩 디바이스에 의해, 상기 제5 패킷의 목적지 MAC 어드레스가 상기 제3 컴퓨팅 디바이스의 디바이스 ID와 연관된다는 결정에 응답하여, 상기 제2 컴퓨팅 디바이스에 상기 제5 패킷을 포워딩하는 단계를 더 포함하는,
    패킷들을 프로세싱하는 방법.
  18. 제11항에 있어서,
    상기 패킷 포워딩 디바이스에 의해, 제3 컴퓨팅 디바이스에 제6 패킷을 송신하는 단계;
    상기 제3 컴퓨팅 디바이스에 의해, 상기 패킷 포워딩 디바이스로부터 수신되는 제6 패킷의 소스 MAC 어드레스가, 상기 제3 컴퓨팅 디바이스가 통신가능하게 커플링되는 상기 패킷 포워딩 디바이스의 포트와 연관된다고 결정하는 단계; 및
    상기 제3 컴퓨팅 디바이스에 의해, 상기 제6 패킷의 소스 MAC 어드레스와 연관되는 상기 제3 컴퓨팅 디바이스의 포트를 통해 상기 제6 패킷을 포워딩하는 단계를 더 포함하는, 패킷들을 프로세싱하는 방법.
  19. 제11항에 있어서,
    상기 제1 컴퓨팅 디바이스에 의해, 상기 제2 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 상기 제1 컴퓨팅 디바이스가 통신가능하게 커플링되는 상기 패킷 포워딩 디바이스의 포트와 연관되는 목적지 MAC 어드레스를 갖는 것을 보장하는 단계를 더 포함하는, 패킷들을 프로세싱하는 방법.
  20. 제11항에 있어서,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 제1 컴퓨팅 디바이스를 목적지로 하는 각각의 패킷이, 상기 제1 컴퓨팅 디바이스가 통신가능하게 커플링되는 상기 패킷 포워딩 디바이스의 포트와 연관되는 소스 MAC 어드레스를 갖는 것을 보장하는 단계를 더 포함하는, 패킷들을 프로세싱하는 방법.
KR1020207000164A 2015-09-15 2016-09-14 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들 KR102367307B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/854,939 2015-09-15
US14/854,939 US10187218B2 (en) 2015-09-15 2015-09-15 Systems and methods for processing packets in a computer network
KR1020187001190A KR102064919B1 (ko) 2015-09-15 2016-09-14 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들
PCT/US2016/051734 WO2017048841A1 (en) 2015-09-15 2016-09-14 Systems and methods for processing packets in a computer network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187001190A Division KR102064919B1 (ko) 2015-09-15 2016-09-14 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들

Publications (2)

Publication Number Publication Date
KR20200003948A KR20200003948A (ko) 2020-01-10
KR102367307B1 true KR102367307B1 (ko) 2022-02-23

Family

ID=56997577

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207000164A KR102367307B1 (ko) 2015-09-15 2016-09-14 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들
KR1020187001190A KR102064919B1 (ko) 2015-09-15 2016-09-14 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187001190A KR102064919B1 (ko) 2015-09-15 2016-09-14 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들

Country Status (11)

Country Link
US (2) US10187218B2 (ko)
EP (1) EP3300546B1 (ko)
JP (2) JP6700318B2 (ko)
KR (2) KR102367307B1 (ko)
CN (1) CN107710700B (ko)
DE (2) DE112016002952T5 (ko)
DK (1) DK3300546T3 (ko)
GB (1) GB2555339B (ko)
HK (1) HK1244370A1 (ko)
TW (2) TWI761312B (ko)
WO (1) WO2017048841A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567379B2 (en) * 2017-06-26 2020-02-18 Bank Of America Corporation Network switch port access control and information security
US10425473B1 (en) * 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US11038887B2 (en) * 2017-09-29 2021-06-15 Fisher-Rosemount Systems, Inc. Enhanced smart process control switch port lockdown
CN110233799B (zh) * 2018-03-05 2021-10-26 华为技术有限公司 一种端口配置的方法和通信设备
US10911296B2 (en) * 2018-03-23 2021-02-02 Juniper Networks, Inc. Targeted selection of cascade ports
CN111147372B (zh) * 2018-11-05 2021-05-18 华为技术有限公司 下行报文发送、转发方法和装置
US11296783B2 (en) * 2019-03-27 2022-04-05 Juniper Networks, Inc. Managing satellite devices within a branch network
CN115567441A (zh) * 2019-11-05 2023-01-03 华为技术有限公司 一种用于生成转发信息的方法、装置和系统
KR102309116B1 (ko) * 2021-09-07 2021-10-08 프라이빗테크놀로지 주식회사 데이터 플로우 기반 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246583A1 (en) * 2009-03-30 2010-09-30 Fujitsu Limited Relay device, state informing method, and computer program
US20130064246A1 (en) * 2011-09-12 2013-03-14 Cisco Technology, Inc. Packet Forwarding Using an Approximate Ingress Table and an Exact Egress Table

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US7430164B2 (en) * 1998-05-04 2008-09-30 Hewlett-Packard Development Company, L.P. Path recovery on failure in load balancing switch protocols
GB2358761B (en) 2000-01-25 2002-03-13 3Com Corp Multi-port network communication device with selective mac address filtering
GB2362289B (en) * 2000-05-10 2002-04-03 3Com Corp Distributed multicast routing in packet-based communication network devices
US8949471B2 (en) * 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
US7463639B1 (en) * 2001-09-26 2008-12-09 Junpier Networks, Inc. Edge devices for providing a transparent LAN segment service and configuring such edge devices
TWI254527B (en) * 2003-02-19 2006-05-01 Nec Corp Network system, spanning tree configuration method and spanning tree configuration node
US7590114B1 (en) * 2003-03-24 2009-09-15 Marvell International Ltd Efficient IP multicast bridging in ethernet switches
US9014195B2 (en) 2003-05-02 2015-04-21 Vitesse Semiconductor Corporation Packet forwarding method and system
JP4464766B2 (ja) * 2004-03-03 2010-05-19 株式会社日立製作所 マルチキャスト配信制御装置
US7801125B2 (en) * 2004-10-22 2010-09-21 Cisco Technology, Inc. Forwarding table reduction and multipath network forwarding
US20060165108A1 (en) * 2005-01-21 2006-07-27 Mr. Sezen Uysal Method and system for unidirectional packet processing at data link layer
ES2383613T3 (es) * 2005-10-05 2012-06-22 Nortel Networks Limited Formación de puentes del estado de enlaces de proveedores
CN101102264B (zh) * 2006-07-04 2011-07-20 华为技术有限公司 一种以太网转发数据的方法和一种以太网系统
US7957332B1 (en) * 2006-11-15 2011-06-07 Marvell International Ltd. Memory efficient filtering
IL189514A (en) 2007-02-14 2011-12-29 Marvell Israel Misl Ltd Logical mediation system and method
US8116310B2 (en) * 2007-11-24 2012-02-14 Cisco Technology, Inc. Reducing packet flooding by a packet switch
WO2009139465A1 (ja) * 2008-05-16 2009-11-19 日本電気株式会社 通信装置、通信方法および通信制御プログラム
US8134922B2 (en) * 2008-09-12 2012-03-13 Cisco Technology, Inc. Reducing flooding in a bridged network
CN101409685B (zh) * 2008-12-01 2010-10-27 杭州华三通信技术有限公司 基于虚拟局域网映射的转发方法及接入设备
US8645567B2 (en) * 2009-01-28 2014-02-04 Broadcom Corporation Method and system for packet filtering for local host-management controller pass-through communication via network controller
ES2361545B1 (es) 2009-02-24 2012-05-08 Universidad De Alcala De Henares Procedimiento de encaminamiento de tramas de datos y puente de red.
US8274980B2 (en) * 2009-02-26 2012-09-25 International Business Machines Corporation Ethernet link aggregation
WO2010106772A1 (ja) * 2009-03-17 2010-09-23 日本電気株式会社 分散処理システム及び分散処理方法
JP2010226455A (ja) * 2009-03-24 2010-10-07 Sony Corp ネットワーク通信装置
US8175107B1 (en) * 2009-08-18 2012-05-08 Hewlett-Packard Development Company, L.P. Network routing based on MAC address subnetting
JP2012034353A (ja) * 2010-06-28 2012-02-16 Panasonic Corp ネットワーク通信装置、通信方法および集積回路
US9608939B2 (en) * 2010-12-22 2017-03-28 Juniper Networks, Inc. Methods and apparatus to reduce forwarding state on an FCoE-to-FC gateway using port-specific MAC addresses
JP5648737B2 (ja) * 2011-03-11 2015-01-07 富士通株式会社 通信装置および通信方法
US9444743B2 (en) * 2011-04-04 2016-09-13 Nec Corporation Network system, switch and connected terminal detection method
US8537810B2 (en) * 2011-06-29 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) E-tree using two pseudowires between edge routers with enhanced learning methods and systems
US9729431B1 (en) * 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
US20140241368A1 (en) * 2011-10-21 2014-08-28 Nec Corporation Control apparatus for forwarding apparatus, control method for forwarding apparatus, communication system, and program
US20140301403A1 (en) * 2011-10-28 2014-10-09 Nec Corporation Node device and method for path switching control in a ring network
CN103297354B (zh) * 2012-03-02 2017-05-03 日电(中国)有限公司 服务器互连系统、服务器和数据转发方法
JP5466723B2 (ja) * 2012-03-07 2014-04-09 株式会社Nttドコモ ホスト提供システム及び通信制御方法
JP5888036B2 (ja) * 2012-03-16 2016-03-16 富士通株式会社 中継装置、情報処理システム、中継方法および中継プログラム
JP5928197B2 (ja) * 2012-06-29 2016-06-01 富士通株式会社 ストレージシステム管理プログラム及びストレージシステム管理装置
US9036638B2 (en) * 2012-08-09 2015-05-19 International Business Machines Corporation Avoiding unknown unicast floods resulting from MAC address table overflows
CN103259727B (zh) * 2012-08-31 2016-12-28 杭州华三通信技术有限公司 一种报文转发方法及设备
US8875256B2 (en) * 2012-11-13 2014-10-28 Advanced Micro Devices, Inc. Data flow processing in a network environment
CN103873368B (zh) * 2012-12-11 2017-09-15 新华三技术有限公司 以太网报文转发方法和接入设备
CN104022960B (zh) * 2013-02-28 2017-05-31 新华三技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
US9294396B2 (en) * 2013-03-12 2016-03-22 Dell Products L.P. Port extender
US9397912B2 (en) * 2013-03-13 2016-07-19 Arista Networks, Inc. Method and system for active fabric management using unicast reachability monitoring
CN104283811B (zh) * 2013-07-09 2017-10-03 新华三技术有限公司 报文转发方法和装置
JP2017503405A (ja) * 2013-12-13 2017-01-26 華為技術有限公司Huawei Technologies Co.,Ltd. アドレス解決プロトコルメッセージを処理するための方法、スイッチ及びコントローラ
US20150172222A1 (en) * 2013-12-16 2015-06-18 James Liao Data center ethernet switch fabric
US10110482B2 (en) * 2013-12-23 2018-10-23 Telefonaktiebolaget Lm Ericsson (Publ) Technique for network service availability
US9628382B2 (en) 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
US9647883B2 (en) * 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
CN105099960B (zh) * 2014-04-30 2018-03-16 国际商业机器公司 用于实现服务链的方法和装置
CN105099847B (zh) * 2014-05-05 2019-01-08 新华三技术有限公司 一种多归属接入方法和装置
US9762489B2 (en) * 2014-09-24 2017-09-12 Cisco Technology, Inc. Local packet switching at a satellite device
US9942144B1 (en) * 2014-09-30 2018-04-10 Juniper Networks, Inc. Fibre channel over ethernet (FCoE) link aggregation group (LAG) support in data center networks
CN106209554B (zh) * 2015-05-04 2019-12-13 新华三技术有限公司 跨虚拟可扩展局域网的报文转发方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246583A1 (en) * 2009-03-30 2010-09-30 Fujitsu Limited Relay device, state informing method, and computer program
US20130064246A1 (en) * 2011-09-12 2013-03-14 Cisco Technology, Inc. Packet Forwarding Using an Approximate Ingress Table and an Exact Egress Table

Also Published As

Publication number Publication date
US10855480B2 (en) 2020-12-01
JP6872647B2 (ja) 2021-05-19
CN107710700B (zh) 2020-10-27
GB2555339A (en) 2018-04-25
JP6700318B2 (ja) 2020-05-27
KR20180017172A (ko) 2018-02-20
WO2017048841A1 (en) 2017-03-23
GB201720965D0 (en) 2018-01-31
US20180198634A1 (en) 2018-07-12
HK1244370A1 (zh) 2018-08-03
DE112016002952T5 (de) 2018-03-15
TWI805279B (zh) 2023-06-11
TWI761312B (zh) 2022-04-21
US10187218B2 (en) 2019-01-22
DK3300546T3 (da) 2020-03-02
EP3300546B1 (en) 2019-11-27
EP3300546A1 (en) 2018-04-04
KR102064919B1 (ko) 2020-01-10
JP2020099058A (ja) 2020-06-25
JP2018527776A (ja) 2018-09-20
TW201720108A (zh) 2017-06-01
US20190149345A1 (en) 2019-05-16
DE202016107382U1 (de) 2017-02-22
CN107710700A (zh) 2018-02-16
GB2555339B (en) 2021-05-05
KR20200003948A (ko) 2020-01-10
TW202226791A (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
KR102367307B1 (ko) 컴퓨터 네트워크에서 패킷들을 프로세싱하기 위한 시스템들 및 방법들
US20200220807A1 (en) Systems and methods for software defined networking service function chaining
US10122629B2 (en) Systems and methods for externalizing network functions via packet trunking
US10187290B2 (en) Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures
US9100216B2 (en) System and method for scaling IPv6 on a three-tier network architecture at a large data center
US20160006583A1 (en) Control apparatus, communication system, switch control method and program
US11184283B2 (en) Service function chaining congestion tracking
US11621853B1 (en) Protocol-independent multi-table packet routing using shared memory resource
US10554547B2 (en) Scalable network address translation at high speed in a network environment
CN107786386B (zh) 对用于验证多播连接的双向转发检测(bfd)消息的选择性传输
US10205661B1 (en) Control messages for scalable satellite device clustering control in a campus network
US10284468B1 (en) E-channel identifiers (ECIDS) for scalable satellite device clustering control in a campus network

Legal Events

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