KR20190084315A - 네트워크 장치 및 네트워크 장치의 전송 선택 방법 - Google Patents

네트워크 장치 및 네트워크 장치의 전송 선택 방법 Download PDF

Info

Publication number
KR20190084315A
KR20190084315A KR1020197018083A KR20197018083A KR20190084315A KR 20190084315 A KR20190084315 A KR 20190084315A KR 1020197018083 A KR1020197018083 A KR 1020197018083A KR 20197018083 A KR20197018083 A KR 20197018083A KR 20190084315 A KR20190084315 A KR 20190084315A
Authority
KR
South Korea
Prior art keywords
transmission
sub
queues
queue
data
Prior art date
Application number
KR1020197018083A
Other languages
English (en)
Other versions
KR102164032B1 (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 KR20190084315A publication Critical patent/KR20190084315A/ko
Application granted granted Critical
Publication of KR102164032B1 publication Critical patent/KR102164032B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6235Variable service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

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

Abstract

네트워크 디바이스의 전송 선택 방법이 개시된다. 특히, 데이터 프레임을 저장하는 복수의 큐를 포함하는 네트워크 디바이스의 전송 선택 방법이 개시된다. 여기서, 복수의 큐의 각각은 상이한 트래픽 클래스에 대응되고, 상기 방법은 복수의 큐에 대한 전송 선택 알고리즘에 대한 정보를 획득하는 단계와 전송 선택 알고리즘 정보에 기초하여 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 단계를 포함한다. 여기서, 전송 선택 알고리즘은, 스트릭 프라이어티(strict priority) 알고리즘, 크래딧-베이스드 쉐이퍼(credit-based shaper) 알고리즘 또는 버스트 전송(burst transmission) 알고리즘에 해당할 수 있다.

Description

네트워크 장치 및 네트워크 장치의 전송 선택 방법
본 발명은 네트워크 장치 및 네트워크 장치의 전송 선택 방법에 대한 것으로, 특히, 네트워크 장치에서 효율적인 데이터 출력을 위한 전송 선택 방법에 대한 것이다.
LAN(Local Area Network)과 같은 네트워크는 다양한 분야에서 사용된다. 이러한 네트워크는 산업용 네트워크로 사용될 수도 있고, 최근 스마트카의 발전에 따른 차량 내 통신의 발달로 인해 차량내 네트워크로 사용될 수 있다.
이러한 네트워크에서의 데이터의 전송은 사용 분야 또는 목적에 맞게 효율적으로 처리될 필요가 있다. 또한, 네트워크에서의 데이터의 전송은 데이터를 전달받는 스테이션의 특성을 고려하여 결정될 필요가 있다.
상술한 기술적 과제를 해결하기 위하여, 본 발명은 네트워크 장치 및 네트워크 장치의 전송 선택 방법을 제안한다.
본 발명의 일 실시예에 따른 네트워크 디바이스는 적어도 하나의 데이터 프레임을 저장하는 복수의 큐 및 상기 복수의 큐와 연결된 프로세서를 포함할 수 있다. 여기서, 상기 복수의 큐의 각각은 상이한 트래픽 클래스에 대응될 수 있다. 실시예로서, 상기 프로세서는, 복수의 큐에 대한 전송 선택 알고리즘에 대한 정보를 획득하고, 상기 전송 선택 알고리즘에 대한 정보에 기초하여 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택할 수 있다. 실시예로서, 상기 전송 선택 알고리즘은, 스트릭 프라이어티(strict priority) 알고리즘, 크래딧-베이스드 쉐이퍼(credit-based shaper) 알고리즘 또는 버스트 전송(burst transmission) 알고리즘에 해당할 수 있다.
실시예로서, 상기 복수의 큐에 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘인 경우, 상기 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 것은: 상기 복수의 큐의 각각을 한 쌍의 서브 큐로 재구성하되, 상기 한 쌍의 서브 큐는 상이한 동작 상태를 가지고, 쓰기 상태의 서브 큐들 중 하나가 미리 설정된 상태변경 조건을 만족하는지 여부를 결정하고, 상기 하나의 서브 큐가 미리 설정된 상태변경 조건을 만족하는 경우, 모든 서브 큐들의 동작 상태를 변경하고, 읽기 상태로 변경된 서브 큐들로부터 버스트 데이터의 전송을 위한 데이터 프레임들을 선택하는 것을 포함할 수 있다.
실시예로서, 상기 읽기 상태로 변경된 서브 큐들로부터 전송을 위한 데이터 프레임들을 선택하는 것은: 제1 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제1 데이터 프레임들을 전송을 위해 선택하고, 상기 제1 데이터 프레임들이 전송을 위해 선택된 이후에, 제2 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제2 데이터 프레임들을 전송을 위해 선택하는 것을 포함하되, 상기 제1 트래픽 클래스는 가장 높은 우선순위를 갖는 트래픽 클래스이고, 상기 제2 트래픽 클래스는 상기 제1 트래픽 클래스보다 낮은 우선순위를 갖는 트래픽 클래스일 수 있다.
실시예로서, 상기 프로세서는, 상기 쓰기 상태의 서브 큐들 중 하나가 상기 데이터 프레임들로 완전히 채워진 경우, 상기 상태변경 조건을 만족하는 것으로 결정할 수 있다.
실시예로서, 상기 프로세서는, 상기 쓰기 상태의 서브 큐들 중 하나가 미리 설정된 기간 이내에 상기 미리 설정된 상태변경 조건을 만족하는 경우에만, 상기 서브 큐들 모두의 동작 상태를 변경할 수 있다.
실시예로서, 상기 한 쌍의 서브 큐는 서로 동일한 사이즈를 가질 수 있다.
본 발명의 일 실시예에 따른 네트워크 디바이스의 전송 선택 방법에서, 네트워크 디바이스는 데이터 프레임을 저장하는 복수의 큐를 포함하고, 상기 복수의 큐의 각각은 상이한 트래픽 클래스에 대응될 수 있다. 상기 네트워크 디바이스의 전송 선택 방법은 복수의 큐에 대한 전송 선택 알고리즘에 대한 정보를 획득하는 단계; 및 상기 전송 선택 알고리즘에 대한 정보에 기초하여 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 단계를 포함하며, 상기 전송 선택 알고리즘은, 스트릭 프라이어티(strict priority) 알고리즘, 크래딧-베이스드 쉐이퍼(credit-based shaper) 알고리즘 또는 버스트 전송(burst transmission) 알고리즘에 해당할 수 있다.
실시예로서, 상기 복수의 큐 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘인 경우, 상기 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 단계는: 상기 복수의 큐의 각각을 한 쌍의 서브 큐로 재구성하는 단계, 상기 한 쌍의 서브 큐는 상이한 동작 상태를 가지며, 쓰기 상태의 서브 큐들 중 하나의 서브 큐가 미리 설정된 상태변경 조건을 만족하는지 여부를 결정하는 단계; 상기 하나의 서브 큐가 미리 설정된 상태변경 조건을 만족하는 경우, 서브 큐들 모두의 동작 상태를 변경하는 단계; 읽기 상태로 변경된 서브 큐들로부터 버스트 데이터의 전송을 위한 데이터 프레임들을 선택하는 단계를 포함할 수 있다.
실시예로서, 상기 읽기 상태로 변경된 서브 큐들로부터 전송을 위한 데이터 프레임들을 선택하는 단계는: 제1 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제1 데이터 프레임들을 전송을 위해 선택하고, 상기 제1 데이터 프레임들이 전송을 위해 선택된 이후에, 제2 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제2 데이터 프레임들을 전송을 위해 선택하되, 상기 제1 트래픽 클래스는 가장 높은 우선순위를 갖는 트래픽 클래스이고, 상기 제2 트래픽 클래스는 상기 제1 트래픽 클래스보다 낮은 우선순위를 갖는 트래픽 클래스일 수 있다.
실시예로서, 상기 네트워크 디바이스는, 상기 쓰기 상태의 서브 큐들 중 하나의 서브 큐가 상기 데이터 프레임들로 완전히 채워진 경우, 상기 하나의 서브 큐가 상기 미리 설정된 상태변경 조건을 만족하는 것으로 결정할 수 있다.
실시예로서, 상기 네트워크 디바이스는, 상기 하나의 서브 큐가 미리 설정된 기간 이내에 상기 미리 설정된 상태변경 조건을 만족하는 경우에만, 서브 큐들 모두의 동작 상태를 변경할 수 있다.
실시예로서, 상기 한 쌍의 서브 큐는 서로 동일한 사이즈를 가질 수 있다.
본 발명은 네트워크 디바이스가 네트워크의 사용 분야 또는 목적에 맞게 데이터의 전송을 위한 전송 선택 방법을 사용하여 데이터를 전송함으로써, 데이터 처리의 효율성을 높일 수 있다.
본 발명은 네트워크 디바이스가 데이터를 전달받는 스테이션의 특성을 고려하여 데이터의 전송 선택 방법을 결정 및 사용함으로써 해당 스테이션이 기대하는 성능을 유지할 수 있게 해준다.
본 발명은 네트워크 디바이스가 버스트 데이터의 전송을 위한 전송 선택 방법을 제공함으로써 이를 전달받는 스테이션에서 에너지 효율적인 처리가 가능하게 한다.
이하에서 본 발명의 부가적인 효과들이 발명의 구성과 함께 설명될 수 있다.
도 1은 본 발명의 일 실시예에 따른 네트워크 모델을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 브릿지 네트워크를 나타낸다.
도 3은 도 1의 네트워크 모델에서 각 계층간 데이터를 전달하는 방법을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 우선순위와 트래픽 클래스 간의 맵핑 관계를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 브릿지 아키텍쳐를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 제어 평면의 상위 계층 엔티티들을 나타낸다.
도 7은 본 발명의 일 실시에에 따른 브릿지 네트워크의 시간 동기화 방법을 나타낸다.
도 8은 본 발명의 일 실시예에 따른 스트림 등록(stream registration)과 스트림 예약(stream reservation) 방법을 나타낸다.
도 9는 도 8의 스트림 등록 및 예약에 대한 아키텍쳐를 나타낸다.
도 10은 본 발명의 일 실시예에 따른 브릿지 포워딩 프로세스를 나타낸다.
도 11은 본 발명의 일 실시예에 따른 크래딧-베이스드 쉐이퍼를 사용하는 네트워크 디바이스의 동작을 나타낸다.
도 12는 본 발명의 일 실시예에 따른 네트워크 디바이스를 포함하는 브릿지 네트워크를 나타낸다.
도 13은 본 발명의 일 실시예에 따른 네트워크 디바이스가 버스트 전송 방법을 이용하여 데이터를 전송하는 방법을 나타낸다.
도 14는 본 발명의 다른 실시예에 따른 네트워크 디바이스가 버스트 전송 방법을 이용하여 데이터를 전송하는 방법을 나타낸다.
도 15는 본 발명의 일 실시예에 따른 버스트 전송 방법을 사용하는 경우, 네트워크 디바이스로 입력 및 출력되는 데이터의 형태를 나타낸다.
도 16은 본 발명의 일 실시예에 따른 전송 선택 알고리즘 테이블을 나타낸다.
도 17은 본 발명의 일 실시예에 따른 네트워크 디바이스의 구성도이다.
도 18은 본 발명의 일 실시예에 따른 네트워크 장치의 전송 선택 방법을 나타내는 순서도이다.
도 19는 본 발명의 일 실시예에 따른 네트워크 장치의 버스트 전송 알고리즘을 이용한 전송 선택 방법을 나타내는 순서도이다.
발명의 실시를 위한 최선의 형태
본 발명의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 본 발명의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 본 발명의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
본 발명에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
본 발명은 네트워크 디바이스에 관한 것으로, 네트워크 디바이스는 예컨대, IEEE(Institute of Electrical and Electronics Engineers) 802의 네트워크와 같은 네트워크를 구성하는 스테이션(또는, 시스템)의 전체 또는 일부 기능을 수행할 수 있다. 실시예로서, 네트워크 디바이스(1700)는 IEEE802.1의 브릿지 네트워크 내의 브릿지에 해당하거나, 이에 포함되거나 이를 포함하는 디바이스일 수 있다. 예를 들면, 네트워크 디바이스는 IEEE802.1D 또는 IEEE802.1Q에 따라 구현된 브릿지에 해당하거나, 또는 브릿지에 포함되거나 브릿지를 포함하는 디바이스(또는 시스템)일 수도 있다. 일 실시예에서, 네트워크 디바이스는 디바이스(또는 네트워크)에 대한 연결 기능을 수행할 수 있다. 일 실시예에서, 네트워크 디바이스는 차량 내 네트워크를 구성하는 디바이스일 수 있다. 본 명세서에서, 네트워크 디바이스는 브릿지 디바이스로 지칭될 수도 있다.
도 1은 본 발명의 일 실시예에 따른 네트워크 모델을 나타낸다. 구체적으로, 도 1은 본 발명의 일 실시예에 따른 네트워크 모델을 OSI 7 계층(Open System Interconnection 7 Layer) 모델과 비교하여 도시한 도면이다. 도 1의 네트워크 모델은 예를 들면, IEEE802를 따르는 네트워크 내의 스테이션(예컨대, 브릿지 또는 엔드 스테이션)에 대한 레퍼런스 아키텍쳐를 나타낸다.
도 1의 왼쪽에 도시된, OSI 7 계층 모델은 ISO (International Standard Organization)에서 제시한 표준화된 네트워크 구조에 대한 기본 모델(또는 참조 모델)로서, 네트워크 통신의 접속에서부터 완료까지의 과정을 7계층으로 구분하여 정의하고 있다. 이는 현재 다른 네트워크 통신 규약의 지침이 되고 있으나, 실제 반드시 준수해야 하는 산업 표준에 해당하지는 않는다. 이러한 OSI 7 계층 모델에서 각 계층의 기능에 대하여 하위 계층에서 상위 계층으로 순차적으로 개략적으로 설명하면 다음과 같다.
우선, 물리(physical) 계층은 네트워크 데이터가 전송될 때 사용되는 물리적 매개체로서, 연결을 설정하고 종료하며, 공유된 통신 자원을 제공하고 아날로그 신호를 디지털 신호로 또는 디지털 신호를 아날로그 신호로 바꾸는 기능을 수행한다. 물리 계층은 제1 계층(layer 1)으로 지칭될 수도 있다.
데이터 링크(data link) 계층은 물리적인 네트워크 사이의 데이터 전송 기능을 수행한다. 이러한 데이터 링크 계층의 주요 목적 중 하나는 물리적인 장비를 식별하는 데 사용되는 주소 지정 체계와 데이터가 변조되지 않았음을 보장하기 위한 오류 확인을 제공하는 것이다. 데이터 링크 계층은 제2 계층(layer 1)으로 지칭될 수 있다.
네트워크(network) 계층은 물리적인 네트워크 사이의 라우팅 기능을 수행하며, 라우터(router)가 이 계층에서 동작한다. 또한, 네트워크 계층은 네트워크 호스트의 논리적인 주소(예컨대, IP주소)를 관리하고 패킷을 분할해 프로토콜을 식별하는 기능, 오류 탐지와 같은 기능 등을 수행할 수 있다. 네트워크 계층은 제3 계층(layer 3)으로 지칭될 수 있다.
전송(transport) 계층은 연결 지향적인 프로토콜과 비연결 지향적인 프로토콜을 제공하며, 방화벽과 프록시 서버가 이 계층에서 동작한다. 이러한 전송 계층의 주요한 목적 중 하나는 하위 계층에 신뢰성 있는 데이터를 전송할 수 있도록 하는 것이다. 즉, 지점과 지점 간의 오류가 없음을 보장해 주는 것을 주요 목적으로 한다. 전송 계층은 제4 계층(layer 4)으로 지칭될 수 있다.
세션(Session) 계층은 두 대의 컴퓨터 사이의 세션이나 대화를 관리하는 기능을 수행한다. 이러한 세션 계층은 모든 통신 장비를 연결하고 관리하며 종료키는 기능, 또한 순간적으로 연결이 끊어지는 것을 막고 호스트 사이의 연결을 적절하게 종료시키기 위한 기능과 연결이 단방향인지 양방향인지에 식별하는 기능 등을 담당한다. 세션 계층은 제5 계층(layer 5)으로 지칭될 수 있다.
표현(Presentation) 계층은 상위 응용 계층으로부터 전송받거나 전달되는 데이터의 인코딩과 디코딩 기능을 수행한다. 또한, 표현(Presentation) 계층은 안전하게 데이터를 사용하기 위해 몇 가지 암호화와 복호화 포맷을 포함할 수 있다. 표현 계층은 제6 계층(layer 6)으로 지칭될 수 있다.
응용(Application) 계층은 사용자에게 네트워크 자원에 대한 접근 기능을 제공한다. 이러한 응용 계층은 네트워크 활동들에 대한 모든 기본적인 인터페이스를 제공하며, 전형적으로 사용자에게 보여지는 유일한 계층에 해당한다. 응용 계층은 제7 계층(layer 7)으로 지칭될 수 있다.
이와 같이 네트워크 구조의 각 계층을 분리하는 경우, 각 계층에서 동작하는 프로토콜이 계층별로 독립적이기 때문에 설계 및 분석이 용이하다는 이점이 있다. 한편, 이러한 OSI 7 계층 모델을 따르는 네트워크 시스템이라고 하더라도, 시스템이 동작하기 위하여 상술한 모든 계층을 포함하여야 하는 것은 아니고, 일부 계층이 생략되거나 변경될 수 있다.
도 1의 가운데 및 오른쪽은 본 발명의 일 실시예에 따른 네트워크 모델(이하 “네트워크 모델”)을 나타낸다. 상술한 바와 같이, 네트워크 모델은 IEEE802 (Institute of Electrical and Electronics Engineers)에서 정의하고 있는 표준화된 네트워크의 네트워크 모델일 수 있다. IEEE802 네트워크 모델은 상술한 OSI 7 계층 모델로부터 유래된 네트워크 모델로서, 예컨대, IEEE802 표준에 특정된 MAC(Media Access Control) 프로토콜을 사용하는 하나 이상의 상호연결된 네트워크로 구성된 네트워크의 모델일 수 있다. 이러한 IEEE802 네트워크 모델은 OSI 7 계층 모델의 하위 2 개의 계층, 즉, 피지컬 계층 및 데이터 링크 계층을 주로 강조한다. 이하에서는, 네트워크 모델이 IEEE802 네트워크 모델인 경우를 중심으로 네트워크 모델의 각 계층에 대하여 설명한다.
도 1의 가운데 및 오른쪽에 도시된 것처럼, 네트워크 모델은 OSI 7 계층 모델의 물리 계층에 대응되는 물리 계층, 데이터 링크 계층에 대응되는 데이터 링크 계층 및 네트워크 계층부터 최상위 계층인 응용 계층까지의 계층들에 대응되는 계층을 포함할 수 있다. 여기서, OSI 7 계층 모델의 네트워크 계층부터 최상위 계층인 응용 계층까지의 계층들에 대응되는 계층은 상위 계층(또는, 상위 계층 프로토콜)로 통칭될 수 있다. 대응되는 각 계층들은 해당 표준에서 특별히 규정하고 있는 부분을 제외하고는 동일 또는 유사한 기능을 수행할 수 있다.
실시예로서, 네트워크 모델의 데이터 링크 계층은 LLC(Logical Link Control) 부계층(sublayer)과 MAC(Media Access Control) 부계층(sublayer)으로 세분화될 수 있다. 실시예에 따라서는, MAC 부계층이 물리 계층의 일부를 포함할 수 있다.
LLC 부계층은 MAC 부계층과 상위 계층간의 연결 기능을 수행하며, 다양한 MAC 부계층의 토폴로지 방식들 간의 차이를 보완해 주는 역할을 수행할 수 있다. 즉, LLC 부계층은 통신 망의 MAC 토플로지(topology) 방식에 관계 없이 데이터의 전송이 가능하도록 하는 역할을 수행할 수 있다.
MAC 부계층은 물리 계층과 상위 계층인 LLC 부계층과의 연결 기능을 수행하며, 스테이션들 간에 프레임-기반 데이터 전달을 제공하기 위한 기능을 수행할 수 있다. 또한, MAC 부계층은 복수의 스테이션(station)이 제한된 용량의 전송 매체를 사용할 때 상호 충돌을 방지하게 함으로써 신뢰성 높은 통신을 제공하도록 한다. 이러한 MAC 부계층의 토플로지 방식(또는 매체 접근(media access) 방식)은, 예컨대, 토큰 버스(token bus), 토큰 링(token ring), CSMA/CD와 같은 방식을 포함할 수 있다. MAC 부계층의 다른 기능으로는 브릿지와 같은 상호연결 장치와 엔드 스테이션 간의 플로우 제어(flow control) 기능과 목적지 주소에 따라 프레임들을 포워딩하는 기능이 포함될 수 있다.
도 1의 가운데 도시된 것처럼, 수신측 스테이션에서 데이터를 전송할 때에는 최상위 계층에서 최하위 계층인 물리 계층까지, 각 계층을 차례로 내려오며 데이터를 처리할 수 있다. 이때, 하위 계층으로 데이터가 전달되는 과정에서 캡슐화(encapsulation)가 수행되는데, 일반적으로 각 계층은 상위 계층에서 전달받은 데이터에 특정 정보가 포함된 헤더(header) 및/또는 테일(tail)을 추가한 뒤 하위 계층으로 전달할 수 있다. 이렇게 전달된 데이터는 물리 계층 처리를 통해 송신측 스테이션으로 전송될 수 있다.
도 1의 오른쪽에 도시된 것처럼, 송신측 스테이션에서 데이터를 수신할 때에는 최하위 계층인 물리 계층에서 최상위 계층까지, 각 계층을 차례로 올라가며 데이터를 처리할 수 있다. 이때, 상위 계층으로 데이터가 전달되는 과정에서 디캡슐화(decapsulation)가 수행되는데, 일반적으로 각 계층은 하위 계층에서 전달받은 데이터에서 헤더와 테일을 분석하고 처리하며, 헤더와 테일이 제거된 데이터를 상위 계층으로 전달할 수 있다. 이러한 방식으로 각 계층에서 데이터를 처리하는 경우, 최종 응용 계층은 최초 생성된 원본 데이터만을 전달받을 수 있다. 이러한 각 계층간 데이터 처리과정은 도 3을 참조하여 이하에서 상세히 설명한다.
본 명세서에서는, 상술한 네트워크 모델의 계층들 중 데이터 링크 계층을 중심으로 본 발명의 다양한 실시예들을 설명한다. 예를 들면, IEEE 802 네트워크의 데이터 링크 계층의 기능의 전부 또는 일부를 수행하는 브릿지 네트워크(bridged network) 내의 브릿지(bridge)에 대하여 설명한다.
본 명세서에서, 브릿지 네트워크는 브릿지에 의해 상호연결된 네트워크들의 결합(concatenation)을 의미하고, 브릿지는 브릿지 네트워크에서 네트워크들을 연결하는 장치(또는 스테이션)를 의미한다. 예를 들면, 브릿지 네트워크는 브릿지에 의해 상호연결된 개별 IEEE 802 LAN들의 결합일 수 있고, 브릿지는 IEEE802.1D 또는 IEEE802.1Q를 따르는 MAC 브릿지 또는 VLAN(Virtual LAN) 브릿지일 수 있다. 이러한 MAC 브릿지 및 VLAN 브릿지에 대하여는 도 5를 참조하여 이하에서 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 브릿지 네트워크를 나타낸다. 구체적으로, 도 2는 도 1의 네트워크 모델의 데이터 링크 계층의 전부 또는 일부 기능을 수행하는 브릿지를 포함하는 브릿지 네트워크(Bridged Network)의 물리적 토폴로지를 나타낸다. 도 2의 실시예에서, 브릿지 네트워크는 IEEE802.1D 또는 IEEE802.1Q를 따르는 MAC 브릿지 또는 VLAN 브릿지를 포함하는 네트워크일 수 있다.
도 2에 도시된 것처럼, 브릿지 네트워크는 LAN들 및 브릿지들을 포함할 수 있다. 브릿지는 둘 이상의 브릿지 포트를 포함할 수 있다. 각 브릿지 포트는 LAN를 브릿지에 연결(attach)시키고, 데이터의 프레임(예컨대, MAC 프레임)들에 대한 양방향 연결성(bidirectional connectivity)을 제공할 수 있다. 즉, 각 브릿지는 브릿지 포트를 통해 프레임들을 전달함으로써 LAN과 LAN 사이를 연결할 수 있다. 각 LAN은 브릿지에 의해 다른 모든 LAN들과 연결되거나, 또는 영 또는 이상의 다른 LAN들과 브릿지들과 연결될 수 있다.
실시예로서, 브릿지 네트워크는 VLAN 브릿지를 포함하는 가상 브릿지 네트워크(Virtual Bridged Network)일 수 있다. 여기서, 가상 브릿지 네트워크는 상술한 IEEE802.1Q에 따르는 VLAN 브릿지를 포함하는 브릿지들에 의해 상호연결된 개별 IEEE LAN들의 결합인 브릿지 네트워크일 수 있다. 실시예로서, 가상 브릿지 네트워크는 전송할 프레임 내의 VLAN 식별자(ID)를 이용하여 여래 개의 VLAN을 구성할 수 있다. 본 명세서에서, 가상 브릿지 네트워크는 VLAN 브릿지 네트워크 또는 VLAN 네트워크로 지칭될 수도 있다.
브릿지 네트워크가 가상 브릿지 네트워크(Virtual Bridged Network)인 경우, VLAN 브릿지는 하나의 브릿지로 다수의 상이한 VLAN(또는 LAN)을 연결할 수 있다. 다만, 이 경우에도, 동일한 VLAN 사이에서만 VLAN 브릿지를 통한 데이터의 송수신이 가능하며, 상이한 VLAN으로 데이터를 전송하려는 경우에는 상위 계층에서 동작하는 라우터를 이용하여야 한다. 일 실시예에서, 개별 VLAN이 동일한지 여부는 각 VLAN에 할당된 VLAN 식별 정보에 의해 식별될 수 있다. 예를 들면, VLAN 브릿지는 입력된 데이터 프레임의 VLAN 태그에 포함된 VLAN ID 정보(또는 필드)와 같은 VLAN 식별 정보를 이용하여 상호연결된 개별 VLAN이 동일한지 여부를 식별할 수 있고, 동일한 VLAN 사이에서만 데이터가 교환되게 할 수 있다. 이러한 브릿지 네트워크 및 개별 브릿지의 구성과 동작 원리에 대해서는 도 5를 참조하여 설명한다.
이하에서는 브릿지 및 브릿지 네트워크가 주로 IEEE 802.1Q에 따르는 VLAN 브릿지 및 VLAN 브릿지 네트워크인 경우를 예로들어 본 발명의 실시예들을 주로 설명한다. 다만, 이는 설명의 편의를 위한 예시에 불과하고, 동일하거나 유사한 설명이 VLAN에 국한된 경우를 제외하고는 IEEE 802.1에 따르는 다른 브릿지(예컨대, MAC 브릿지) 및 브릿지 네트워크에도 적용될 수 있다.
도 3은 도 1의 네트워크 모델에서 각 계층간 데이터를 전달하는 방법을 나타낸다. 특히, 도 3은 도 1의 네트워크 모델의 MAC 부계층(또는 MAC 계층)에서 상위 계층으로부터 전달된 데이터를 하위 계층으로 전달하는 방법을 나타낸다.
계층간 데이터를 교환하는 경우, 필요한 정보를 추가하거나 더 이상 필요 없는 정보를 제거할 수 있는데, 이러한 과정을 캡슐화(encapsulation)/디캡슐화(decapsulation)라고 한다. 예를 들면, 송신 측 스테이션에서 데이터(또는 정보)가 상위 계층에서 하위 계층으로 내려올 때 캡슐화가 이루어지며, 수신 측 스테이션에서 데이터(또는 정보)가 하위 계층에서 상위 계층으로 올라갈 때 디캡슐화가 이루어질 수 있다.
도 3의 상단에서처럼, 송신 측에서, 스테이션은 각 계층에서 해당 계층의 프로토콜에 기초하여 SDU(Service Data Unit)에 필요한 정보를 추가하는 캡슐화 과정을 수행함으로써, 하위 계층으로 전송 가능한 데이터 형태인 PDU(Protocol Data Unit)를 생성할 수 있다. 여기서, SDU는 계층 또는 부계층 사이에 전달되는 정보를 의미한다. 이와 반대로, 수신 측에서, 스테이션은 각 계층에서 해당 계층의 프로토콜에 기초하여 PDU로부터 필요한 정보를 획득하는 디캡슐화 과정을 수행함으로써, 상위 계층으로 전송 가능한 데이터 형태인 SDU를 생성할 수 있다.
실시예로서, 계층 N(Layer N)이 도 1의 네트워크 모델의 MAC 부계층인 경우, 스테이션은 계층 N에서 상위 계층인 LLC 부계층(Layer N-1)으로부터 전달받은 SDU(L-N SDU)에 대한 캡슐화를 수행하여, PDU(L-N PDU)를 생성할 수 있고, 이를 계층 하위 계층인 물리 계층(Layer N+1)으로 전달할 수 있다. 계층 N에서 생성된 PDU(L-N PDU)는 도 3의 하단과 같은 프레임 포맷를 가질 수 있다. 즉, 도 1의 네트워크 모델(예컨대, 이더넷)의 MAC 부계층의 PDU는 도 3의 하단과 같은 프레임 포맷을 가질 수 있다. 본 명세서에서, 이러한 L-N PDU는 이더넷 MAC 계층의 PDU, MAC PDU 또는 MAC 프레임으로 지칭될 수도 있고, L-N PDU의 프레임 포맷은 이더넷 프레임 포맷 또는 MAC 프레임 포맷으로 지칭될 수도 있다.
도 3의 하단에 도시된 것처럼, MAC PDU는 목적지 주소(Destination Address) 필드, 송신지 주소(Source Address) 필드, 타입(Type) 필드, 길이(Length) 필드, 데이터(Data) 필드 및/또는 FCS(Frame Check Sequence) 필드를 포함할 수 있다. 본 명세에서, 데이터 필드를 제외한, 각 필드들은 제어 필드로 지칭될 수도 있다.
목적지 주소 필드는 MAC의 목적지 주소 정보를 포함하고, 송신지 주소 필드는 MAC의 송신지 주소 정보를 포함한다. 본 명세서에서, 목적지 주소 필드는 목적지 필드로 지칭될 수도 있고, 송신지 주소 필드는 송신지 필드 또는 소스 필드로 지칭될 수도 있다.
타입 필드는 상위 프로토콜의 타입 정보를 포함한다. 예를 들면, 타입 필드는 LLC 부계층(또는 계층)의 프로토콜의 타입 정보를 제공할 수 있다. 길이 필드는 데이터 필드의 길이에 대한 정보를 포함한다. 실시예로서, 길이 필드는 데이터 필드 내 데이터의 길이를 옥텟(octet)으로 표시할 수 있다. 일 실시예에서, 타입 필드 및 길이 필드는 하나의 필드(예컨대, 타입/길이 필드)로 구성될 수 있다.
데이터 필드는 상위 계층에서 전달 받은 데이터를 포함한다. 예를 들면, 데이터 필드는 LLC 부계층(또는 계층)에서 전달 받은 SDU를 포함할 수 있다. FCS 필드는 에러 검출을 위한 정보를 포함하는 필드로서, 수신 측에서의 에러 검출을 위해 프레임의 마지막 부분에 삽입될 수 있다. 본 명세서에, 데이터 필드는 페이로드로 지칭될 수도 있다.
실시예로서, MAC PDU는 VLAN 태그 필드를 더 포함할 수 있다. 예를 들면, 브릿지 네트워크가 VLAN 브릿지를 포함하는 VLAN 브릿지 네트워크인 경우, MAC PDU는 VLAN 태그 필드를 더 포함할 수 있다.
VLAN 태그 필드는 선택적인(optional) 태그로서, VLAN의 지원 여부에 따라 그 존재 여부가 결정된다. 실시예로서, VLAN 태그 필드는 TPID(Tag protocol Identifier) 필드, PCP(Priority Code Point) 필드, DEI(Drop Eligible Indicator) 필드 및/또는 VLAN ID(VLAN Identifier) 필드를 포함할 수 있다. 실시예로서, VLAN 태그 필드는 타입/길이 필드의 앞에 위치되거나, 타입/길이 필드 내에 포함될 수 있으나, 이에 한정되지 않는다.
TPID 필드는 VLAN 태그된 프레임의 프로토콜 ID 정보를 포함한다. 예를 들면, 해당 프레임이 VLAN 태그된 이더넷 프레임 (또는 MAC 프레임)인 경우, TPID는 고정된 값(예컨대, costomer network의 경우, 0x8100)을 가질 수 있다. 이러한 고정된 값을 갖는 TPID 필드의 존재 여부에 따라, 해당 프레임이 VLAN 태그를 지원하는지 여부가 결정될 수 있다. 실시예로서, TPID 필드는 VLAN 태그 필드 내에서 맨 앞쪽에 위치될 수 있으나, 이에 한정되지 않는다.
PCP 필드는 해당 프레임의 우선순위에 대한 정보를 포함할 수 있고, 이 우선순위 정보는 트래픽 클래스와 연관(또는 맵핑)될 수 있다. 실시예로서, PCP 필드는 3 비트의 필드로 구성될 수 있고, 이를 통해 8개의 프레임의 우선순위를 표현할 수 있다. 실시예로서, 브릿지의 각 브릿지 포트는 다수 개(예컨대, 8 개)의 아웃바운드 큐(outbound queue)를 포함할 수 있다. 여기서, 아웃바운드 큐는 브릿지의 출력 포트로부터 데이터 및 데이터 프레임을 출력하기 위해 사용되는 큐(또는 버퍼)를 말한다. 아웃바운드 큐는 트래픽 클래스와 일대일로 맵핑될 수 있다. 따라서, PCP 필드의 값은 해당 프레임이 다수 개의 아웃바운드 큐 중 어느 큐에 저장되어야 하는지를 결정하는데 사용될 수 있다. 이에 대하여는 도 4를 참조하여 이하에서 상세히 설명한다.
DEI 필드는 미리 설정된 조건 만족 시, 해당 프레임이 제거되어도 되는지 여부를 나타내는 정보를 포함한다. 예를 들면, DEI 필드는 데이터의 양이 증가하여 혼잡(congestion) 상태가 되었을 때, 현재 프레임이 제거되어도 되는지 여부를 나타내는 정보를 포함할 수 있다.
VLAN ID 필드는 해당 프레임이 속한 VLAN의 ID를 나타낸다. 이 VLAN ID 필드를 이용하여, VLAN 브릿지 네트워크에서 동일한 VLAN ID를 갖는 디바이스 간에만 데이터의 전송이 가능하다. 본 명세서에서, VLAN ID는 VID로 지칭될 수도 있다.
일 실시예에서, 목적지 주소 필드의 값과 VLAN ID 필드의 값은 브릿지의 브릿지 포트(예컨대, 출력 브릿지 포트)를 결정하기 위해 사용될 수 있고, PCP 필드의 값은 결정된 브릿지 포트에서 어떤 큐(예컨대, 아웃바운드 큐)에 데이터 프레임이 저장될 지를 결정하기 위해 사용될 수 있다. 또한, PCP 필드와 DEI 필드는 QoS (Quality of Service)를 결정하는 요소가 될 수 있다.
상술한 실시예에서는, MAC PDU가 VLAN 태그 필드를 포함하는 실시예에 대하여만 설명하였으나, 실시예에 따라서는, MAC PDU가 전송되는 네트워크의 종류(Provider network, backbone network, customer network 등)에 따라 필요한 태그 필드를 VLAN 태그 필드와 함께 또는 VLAN 태그 필드를 대체하여 포함할 수 있다.
수신측에서, 스테이션은 계층 N(Layer N)에서 상술한 필드들을 포함하는 PDU(L-N PDU)를 하위 계층인 물리 계층(Layer N+1)으로부터 전달받고, 전달받은 PDU에 대한 디캡슐화를 수행하여, 다양한 정보를 획득하고, SDU(L-N SDU)를 생성할 수 있고, 이를 상위 계층인 LLC 부계층(Layer N-1)으로 전달할 수 있다. 또한, 스테이션은 획득한 정보에 기초하여 해당 계층에서 수행되는 다양한 동작을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 우선순위와 트래픽 클래스 간의 맵핑 관계를 나타낸다. 도 4의 실시예에서, 가로 축은 이용가능한 트래픽 클래스의 수를 나타내고, 세로축은 우선순위(priority)를 나타낸다. 도 4의 실시예에서 제시되는 우선순위와 트래픽 클래스 간의 맵핑 관계는 예시적인 맵핑 관계 중 하나이고, 네트워크의 사용자에 의해 임의로 변경될 수 있다. 도 4의 실시예와 같은 우선순위와 트래픽 클래스 간의 맵핑 관계를 나타내는 테이블은 우선순위-클래스 맵핑 테이블로 지칭될 수 있다. 실시예로서, 브릿지는 브릿지 포트 별로 우선순위-클래스 맵핑 테이블을 가질 수 있다.
본 명세서에서, 트래픽 클래스는 프레임의 전송을 촉진시키기(expedite) 위해 사용되는 분류(classification)를 말한다. 또한, 아웃바운드 큐는 브릿지의 출력 포트로부터 데이터 및 데이터 프레임을 출력하기 위해 사용되는 큐(또는 버퍼)를 말한다. 또한, 프레임(또는 데이터 프레임)은 전송되는 데이터의 단위를 말한다. 본 명세서에서, 큐는 버퍼로 지칭될 수도 있다.
상술한 바와 같이, PCP 필드의 값은 해당 프레임의 우선순위를 나타내고, 이 값은 브릿지의 출력 포트의 각 큐에 대응되는 트래픽 클래스 값들과 연관(또는 맵핑)될 수 있다. 따라서, PCP 필드의 값은 해당 프레임이 출력 포트의 큐들 중 어느 큐에 저장되어야 하는지 결정하기 위해 사용될 수 있다. 예를 들면, 브릿지는 수신된 프레임 내의 PCP 필드로부터 우선순위 정보를 획득하고, 우선순위-클래스 맵핑 테이블을 참조하여 해당 우선순위와 맵핑된 트래픽 클래스를 확인하고, 해당 트래픽 클래스와 연관된 큐에 해당 프레임을 저장할 수 있다.
브릿지의 입력 포트로 수신된 데이터의 프레임은 목적지를 정확히 알고 있다면 원하는 출력 포트로 바로 전달될 수 있으나, 그렇지 않다면, 입력 포트를 제외한 다른 모든 포트로 전달될 수 있다. 이렇게 출력 포트로 전달된 프레임은 출력 포트 내의 큐들 중 어느 큐에 저장될지 결정되어야 하는데, 이때, PCP 필드의 값과 연관된 트래픽 클래스의 값이 사용될 수 있다. 이를 위해, 예컨대, 도 4와 같은 우선순위-클래스 맵핑 테이블이 미리 설정될 필요가 있다.
상술한 바와 같이, PCP 필드는 3 비트의 필드로 구성되므로, 브릿지에 입력되는 각 프레임은 8 가지의 우선순위 중 한 가지를 가질 수 있다. 또한, 각 브릿지 포트는 1 에서 최대 8 개까지의 큐(또는 아웃바운드 큐)를 가질 수 있고, 각 아웃바운드 큐는 할당된 트래픽 클래스와 1 대 1로 맵핑될 수 있다. 이 경우, 트래픽 클래스의 값은 0 에서 N-1일 수 있다. 여기서, N은 해당 포트의 아웃바운드 큐의 수를 나타낸다. 예를 들면, 브릿지 포트에서 사용 가능한 큐가 3개인 경우, 해당 브릿지 포트에서 사용 가능한 트래픽 클래스의 값은 0, 1, 2 일 수 있다. 즉, 3 종류의 트래픽 클래스만이 사용될 수 있다. 이때, 낮은 트래픽 클래스 값에 대응되는 큐가 더 낮은 우선순위를 갖는 것으로 결정될 수 있다. 예를 들면, 트래픽 클래스가 0인 값에 대응되는 큐가 가장 낮은 우선순위를 가질 수 있다. 다만, 실시예에 따라서는, 트래픽 클래스 값이 높을수록 더 낮은 우선순위를 갖는 것으로 결정될 수도 있다.
도 4의 표에서 음영으로 표시된 부분은 이용가능한 트래픽 클래스의 수가 3인 경우의 트래픽 클래스와 우선순위 간의 맵핑 관계를 나타난대. 즉, 8 개의 코드 값(또는 우선순위 값)을 갖는 PCP와 3개의 클래스 값을 갖는 트래픽 클래스 간의 예시적인 맵핑 관계를 보여준다. 해당 부분을 참조하면, 우선순위 값(또는 PCP 코드 값)이 0 내지 3인 프레임은 트래픽 클래스 값으로 0을 가지므로, 이 프레임은 브릿지 포트의 1번 큐에 저장될 수 있다. 또한, 우선순위 값(또는 PCP 코드 값)이 4 내지 5인 프레임은 트래픽 클래스 값으로 1을 가지므로, 이 프레임은 브릿지 포트의 2번 큐에 저장될 수 있다. 또한, 우선순위 값(또는 PCP 코드 값)이 6 내지 7인 프레임은 트래픽 클래스 값으로 2 값을 가지므로, 이 프레임은 3번 큐에 저장될 수 있다. 이와 유사한 설명이, 이용가능한 트래픽 클래스의 수가 3이 아닌 다른 값을 갖는 경우, 트래픽 클래스와 우선순위 간의 맵핑 관계에도 적용될 수 있다.
실시예로서, 각 큐에 저장된 프레임은 서로 상이한 트래픽 타입을 가질 수 있다. 즉, 상이한 큐에 저장된 프레임은 상이한 트랙픽 타입을 가질 수 있다. 여기서, 트래픽 타입은 예컨대, BE(Best-effort) 트래픽, RC(Rate constrained) 트래픽 및 TT(Time trigger) 트래픽의 3개의 트래픽을 포함할 수 있다.
BE 트래픽(또는 프레임)은 낮은 우선순위를 갖는 트래픽이며, 타이밍이나 레이턴시가 보장되지 않는 타입일 수 있다. 즉, 다수의 큐에 저장된 프레임들이 하나의 출력 포트로 순차적으로 출력될 때, BE 트래픽은 컨제스쳔이 발생하는 경우에 시간 보장성 없이 늦게 전달되거나, 또는 전달이 되지 않을 수도 있다.
RC 트래픽(또는 프레임)은 프레임과 프레임 사이의 최소 시간 간격과 최대 프레임 크기를 이용하여 전송할 수 있는 대역폭을 보장 받을 수 있다. RC 트래픽의 경우, 보장된 대역폭 내에서는 전송 시간이 보장되며 컨제스쳔 발생시 프레임 손실없이 전송이 가능하다. 그러나, 보장되는 전체적인 전송 딜레이가 큰 편이기 때문에, RC 트래픽은 오디오와 비디오의 전송에는 적합하나 타임 센서티브한(time sensitive) 산업 제어(industrial control)나 자동차 관련 어플리케이션(application)에는 적합하지 않다.
TT 트래픽(또는 프레임)은 주어진 시간 구간내에서는 다른 프레임으로 인한 간섭(interference) 없이 바로 프레임이 전달되는 구조로서, 프레임 로스가 없고, 전달 시간이 빠른 트래픽 타입이다. TT 트래픽은 타임 센서티브에 관한 요구 사항이 높은 제어 신호 등에 적합할 수 있다. 예를 들면, TT 트래픽은 타임 센서티브한 산업 제어나 자동차 관련 어플리케이션(application)에 적합할 수 있다.
이러한 트래픽 타입을 상술한 도 4의 표에 음영 표시된 부분의 트래픽 클래스와 연관시키는 경우, 예컨대, 트래픽 클래스 0인 값을 갖는 프레임들이 저장되는 아웃바운드 큐는 BE 트래픽을 전달하기 위해 사용될 수 있고, 트래픽 클래스 1인 값을 갖는 프레임들이 저장되는 아웃바운드 큐는 RC 트래픽(예컨대, 오디오 또는 비디오와 관련된 프레임들의 트래픽)을 전달하기 위해 사용될 수 있고, 트래픽 클래스 2인 값을 갖는 프레임들이 저장되는 아웃바운드 큐는 TT 트래픽(예컨대, 자동차나 공장 자동화를 위한 제어 신호와 관련된 프레임들의 트래픽)을 전달하기 위해 사용될 수 있다.
도 5는 본 발명의 일 실시예에 따른 브릿지 아키텍쳐를 나타낸다. 구체적으로, 도 5(a)는 본 발명의 일 실시예에 따른 브릿지 아키텍쳐의 개념도이고, 도 5(b)는 브릿지 아키텍쳐의 제1 예이고, 도 5(c)는 브릿지 아키텍쳐의 제2 예이다. 실시예로서, 도 5의 브릿지 아키텍쳐는 IEEE802.1에 따르는 브릿지의 아키텍쳐일 수 있다. 예를 들면, 브릿지 아키텍쳐는 IEEE802.1D 또는 IEEE802.1Q에 따르는 MAC 브릿지 또는 VLAN 브릿지의 아키텍쳐일 수 있다.
도 5(a)를 참조하면, 브릿지는 적어도 하나의 브릿지 컴포넌트를 포함한다. 실시예로서, 브릿지는 적어도 두 개의 포트, MAC 릴레이 엔티티(또는 릴레이 엔티티) 및/또는 상위 레이어 엔티티들을 포함할 수 있다.
적어도 두 개의 브릿지 포트 중 LAN에서 데이터가 입력되는 포트를 인그레스 포트(ingress port)(또는 입력 포트)라고 하고, LAN으로 데이터가 출력되는 포트는 이그레스 포트(egress port)(또는 출력 포트)라고 한다. 실시예로서, 인그레스 포트는 필터링(filtering or drop), (언)태깅((un)tagging), VID 번역(VID translation) 및/또는 (디)캡슐화(de/en-capsulation) 등에 관련된 기능을 수행할 수 있다. 실시예로서, 이그레스 포트는 필터링, (언)태깅, VID 번역, (디)캡슐화, 메터링(metering), 큐잉(queuing), 전송 선택(transmission selection)등에 관련된 기능을 수행할 수 있다.
릴레이 엔티티는 브릿지의 포트들을 상호연결하는 엔티티를 말한다. 실시예로서, 릴레이 엔티티는 브릿지의 포트들 사이에서 프레임들을 전달(relaying)하는 기능, 프레임들을 필터링(filtering)하는 기능 및/또는 필터링 정보를 학습(learning)하는 기능을 수행할 수 있다. 본 명세서에서, 릴레이 엔티니는 MAC 릴레이 엔티티로 지칭될 수도 있다.
상위 계층 엔티티들은 데이터를 통신할 수 있는 네트워크 망을 결정하는 프로토콜들을 말한다. 이에 대하여는 도 6을 참조하여 이하에서 상세히 설명한다.
실시예로서, 상술한 브릿지 컴포넌트는 그 기능에 따라 제어 평면 또는 데이터 평면에 포함될 수 있다. 예를 들면, 상위 계층 엔티티들은 제어 평면에 포함될 수 있고, 브릿지 포트 및 릴레이 엔티티는 데이터 평면에 포함될 수 있다.
일 실시예에서, 외부 에이전트(External Agent)가 제어 평면에 더 포함될 수 있다. 여기서, 외부 에이전트는 상위 계층 엔티티들을 통해 이미 제공된 프로토콜 대신에 외부에서 제공되는 컨트롤을 말한다. 예를 들면, 외부 에이전트는 공지된 SDN(Software Defined Network) 컨트롤러일 수 있다. 이를 통해, 브릿지의 데이터 전달 및 동작이 소프트웨어 기반 컨트롤러에서 제어 관리될 수도 있다.
도 5(b)의 실시예의 브릿지 아키텍쳐는 예컨대, MAC 브릿지의 아키텍쳐일 수 있다. 실시예로서, MAC 브릿지는 IEEE802.1D 또는 IEEE802.1Q에 따라 구현된 브릿지로서, VLAN 태깅(tagging)된 프레임을 인식(recognize)하지 않는 브릿지를 말한다. 즉, MAC 브릿지는 프레임에 포함된 VLAN 태그를 인식하지 못하는 브릿지를 말한다.
실시예로서, MAC 브릿지는 각 브릿지 포트에서 ISS(Internal Sublayer Service)를 지원하는 기능 및 각 브릿지 포트들 사이에 프레임들을 전달(relay)하는 기능을 제공하는 적어도 하나의 MAC 브릿지 컴포넌트를 포함할 수 있다. 예를 들면, 도 5(b)에서와 같이, MAC 브릿지는 상술한 기능을 수행하기 위하여, 적어도 두 개의 포트, 릴레이 엔티티 및/또는 상위 계층 엔티티들을 포함할 수 있다.
여기서, ISS는 MAC 부계층의 내부 계층에서 제공되는 서비스로서, 다수의 SAP(Service Access Point)들 사이에 데이터 전송 및 브릿지 포트 사이에 데이터 프레임의 전달이 가능하게 하는 등 MAC 서비스의 기본 기능을 제공한다.
일반적으로, 상위 계층이 하위 계층에 데이터를 호출하는 경우 또는 그 반대의 경우 SAP(Service Access Point)를 통해서 프리미티브(primitive)를 전달하거나, 프리미티브를 받는 방법으로 계층간 통신이 이루어 질 수 있다. 그리고, MAC 부계층을 포함하는 계층 구조에서, 각 계층은 매체 접근 방식(media access method)에 상관없이 독립적으로 동작할 수 있어야 한다. 이를 위해, 상술한 바와 같이, 어떤 방식의 매체 접근 방식으로 사용되더라도 MAC 부계층은 이를 처리할 수 있어야 하고, ISS는 이것이 가능하도록 SAP의 프리미티브를 정하는 역할을 수행한다. 실시예로서, ISS는 물리 계층에서 받은 파싱(parsing)된 데이터와 지역적으로 사용되는 데이터로 프리미티브를 구성할 수 있다.
일 실시예에서, ISS의 프리미티브는 목적지 주소(destination_address), 발신지 주소(source_address), MSDU(mac_service_data_unit), 우선순위(priority), DE(drop_eligible), FCS(frame_check_sequence), SAP 식별자(service_access_point_identifier) 및/또는 연결 식별자(connection_identifier)와 같은 파라미터들을 포함할 수 있다. 여기서, 목적지 주소, 발신지 주소, MSDU, 우선순위, DE, FCS 파라미터는 도 4를 참조하여 상술한 바와 같다. 또한, SAP 식별자는 릴레이 엔티티에서 사용되는 브릿지 포트의 ID를 나타내며, 연결 식별자는 MAC 부계층에서의 연결, 예를 들어, 데이터(또는 데이터 프레임) 전송을 위한 전송 연결과 같은 연결에 대한 식별(또는 구분)을 나타낸다. 이러한 연결 식별자는 SAP가 하나인 경우에 중요하며, 나머지 경우에는 null 값으로 사용될 수도 있다.
실시예로서, 목적지 주소, 발신지 주소, MSDU, 우선순위, DE, FCS 파라미터는 물리 계층에서 받은 프레임을 파싱함으로써 얻을 수 있는 파라미터이며, SAP 식별자 및 연결 식별자 파라미터는 내부적으로(또는 지역적으로) 사용되는 파라미터일 수 있다.
도 5(c)의 실시예의 브릿지 아키텍쳐는 예컨대, VLAN 브릿지의 아키텍쳐일 수 있다. 실시예로서, VLAN 브릿지는 IEEE802.1D 또는 IEEE802.1Q에 따라 구현된 브릿지로서, VLAN 태그를 인식, 삽입 및 제거할 수 있는 브릿지를 말한다. 즉, VLAN 브릿지는 MAC 브릿지와는 달리, 프레임에 포함된 VLAN 태그를 인식하하는 브릿지를 말한다.
실시예로서, VLAN 브릿지는 각 브릿지 포트에서 EISS(Enhanced Internal Sublayer Service)를 지원하는 기능 및 각 브릿지 포트들 사이에 프레임들을 전달(relay)하는 기능을 제공하는 VLAN 브릿지 컴포넌트를 포함할 수 있다. 예를 들면, 도 5(b)에서와 같이, VLAN 브릿지는 상술한 기능을 수행하기 위하여, 적어도 두 개의 포트, 릴레이 엔티티 및/또는 상위 계층 엔티티들을 포함할 수 있다.
EISS는 MAC 부계층에서 제공되는 확장된 내부 계층 서비스로서, ISS에서제공되는 서비스보다 확장된 서비스, 예를 들면, VLAN 태그의 인식, 삽입 및 제거와 같은 서비스를 제공하기 위해, VLAN 브릿지의 동작에 필요한 요소들과 파라미터들을 더 포함할 수 있다. 실시예로서, EISS의 프리미티브는 상술한 ISS의 프리미티브 외에 VLAN 식별자(vlan_identifier), 플로우 해쉬(flow_hash) 및/또는 타임-투-얼라이브(time_to_alive)와 같은 파라미터를 더 포함할 수 있다.
여기서, VLAN 식별자 파라미터는 전송될 VLAN의 ID를 나타내며, 이는 물리 계층에서 받은 프레임을 통해 알 수 있는 값이다. 또한, 플로우 해쉬 파라미터는 포워딩 프로세스를 수행 할 때 포워딩이 가능한 여러 포트 중 어떤 포트를 사용할지 여부를 결정하기 위해 사용되는 파라미터를 말한다. 또한, 타임-투-얼라이브 파라미터는 프레임이 네트워크의 홉을 거치면서 얼마동안 살아 있을 것인지를 결정하기 위해 사용되는 파라미터를 말하고, 실시예로서, null 값이 해당 파라미터의 값으로서 할당될 수 있다.
도 6은 본 발명의 일 실시예에 따른 제어 평면의 상위 계층 엔티티들을 나타낸다. 구체적으로, 도 6은 도 5의 브릿지 아키텍쳐를 구성하는 제어 평면의 상위 계층 엔티티들을 나타낸다. 이하에서는 도 6을 참조하여, 제어 평면의 상위 계층 엔티티들과 데이터 평면의 계층 관계를 구체적으로 설명한다.
도 6을 참조하면, 제어 평면의 상위 계층 엔티티들은 물리적 네트워크 토플로지(Physical Network Topology), 활성 토플로지(Active Topology), VLAN 토폴로지(VLAN topology) 및/또는 스테이션 로케이션(Station Location)를 포함한다.
물리적 네트워크 토플로지는 도 2에서와 같이, LAN, 브릿지(Bridge), 브릿지 포트(Bridge Port)간의 물리적인 연결 구성을 나타낸다. 여기서, 브릿지 포트는 LAN과 브릿지를 연결하는 부분에 해당하며, 이를 통해 LAN과 브릿지 간 양방향 이더넷 프레임(또는 MAC 프레임)의 전송이 가능하다. 이러한 연결은 유선을 통해 이루어지며, 물리적 네트워크 토폴로지는 단지 물리적인 연결 관계만을 나타낸다.
활성 토플로지는 네트워크 내에서 루프(loop)가 생기지 않도록, 즉, 네트워크가 루프-프리(loop-free)상태인 활성 네트워크가 되도록 하는데, 이는 특정 브릿지 포트의 상태를 활성화시키거나 비활성화(또는 블록)시킴으로써 이루어질 수 있다. 브릿지 네트워크 내에 루프가 생기면, 동일한 데이터가 브릿지 내에서 반복하여 복사되어 브릿지의 기능이 저하되며, 브릿지 내의 MAC 주소 테이블이 불안정하게 된다. 또한, 브로드캐스트(broadcast) 기능으로 데이터를 전송할 때, 루프가 생긴다면 네트워크 내에서 계속해서 데이터가 브로드캐스팅되기 때문에, 브로드캐스트 스톰(broadcast storm)이라는 현상으로 네트워크가 마비될 수 있다. 따라서, 브릿지 네트워크에서는 활성 토폴로지를 통해 루프가 생기지 않도록 브릿지에 연결된 스테이션들 간의 상호 연결 관계를 활성화시키며, 이를 위한 다양한 알고리즘이 존재하여야 한다.
활성 토폴로지를 통해 루프-프리 상태인 활성 네트워크가 형성된 경우, VLAN 토폴로지는 상술한 VID를 이용하여, 동일한 VID을 갖는 VLAN 사이에 데이터를 전송할 수 있는 프로토콜을 구성할 수 있다. 이렇게 VLAN 토폴로지를 구성한 후에는 스테이션 로케이션을 통해 VLAN에 속하는 개별적인 MAC 주소를 저장하여 스테이션 간의 통신이 가능한 경로가 형성될 수 있다. 이와 같이, 각 스테이션까지의 경로가 결정되면, 원하는 데이터가 브릿지의 릴레이를 이용하여 전달될 수 있다.
상술한 토플로지가 형성되는 과정은 각 과정을 단계적으로 형성하는 개별 프로토콜이 존재할 수도 있으나, 실시예에 따라서는 활성 토플로지에서부터 스테이션 로케이션까지 한번에 구성하는 단일의 프로토콜이 존재할 수도 있다.
앞서 설명한 단계가 브릿지 네트워크를 구성하는 것에 관한 반면, 브릿지의 릴레이는 데이터 평면에 의한 브릿지 자체의 동작을 나타낸다. 브릿지 릴레이에서는 브릿지의 입력 포트로 들어온 데이터가 출력 포트로 포워딩되고, 출력 포트를 통해서 전송되는데, 이때 브릿지 내에서 여러 단계를 거치게 된다. 이에 대한 자세한 내용은 이후 설명된다.
한편, 활성 토플로지가 형성된 후 브릿지 포트와 이웃 브릿지의 포트간의 전송 능력을 측정하여 스트림 예약(stream reservation)이 가능할 수 있다. 이 동작에 관하여는 도 8 및 9를 참조하여 이하에서 상세히 설명한다.
도 7은 본 발명의 일 실시에에 따른 브릿지 네트워크의 시간 동기화 방법을 나타낸다.
도 6을 참조하여 설명한 바와 같이, 임의의 단일 또는 복수의 프로토콜을 사용하여 활성 토폴로지가 형성된 경우, 연결된 브릿지들 사이에 시간 동기를 맞추는 동작이 수행될 수 있다. 시간 동기를 맞추는 이유는 네트워크 내의 브릿지들과 최종 디바이스인 엔드 포인트(end point) 간에 클럭 동기화를 맞추어 타임 센서티브한 프레임의 전송을 가능하게 하기 위해서이다. 이를 통해, 타임 센서티브한 네트워크의 구성이 가능하다. 실시예로서, 시간 동기화를 위한 기본 프로토콜로서 공지된 IEEE 1588 프로토콜이 사용될 수 있으나, 이에 한정되지는 않는다.
시간 동기화 과정에 대하여 간단히 설명하면, 네트워크 내의 브릿지들과 엔드 포인트(또는 스테이션)들은 GM(grandmaster) 클럭과 주기적으로 메시지를 교환하여 클럭 동기를 맞출 수 있다. 이를 통해, 네트워크 내의 GM 클럭을 제외한 모든 브릿지와 엔드 포인트들은 자신이 GM 클럭에 비해 어느 정도의 오프셋(offset)을 갖는지 알 수 있고, 이를 기반으로 시간 동기화가 가능하다. 이때, 실시예로서, 네트워크 내에 있는 여러 개의 클럭 중 가장 퀄리티가 좋은 클럭이 GM 클럭으로 선택될 수 있다.
일 실시예에서, GM 클럭은 미리 정해진 알고리즘, 예컨대, 전체 브릿지 네트워크에서 가장 퀄리티(quality)가 좋은 클럭을 찾는 알고리즘에 해당하는 BMCA(Best Master Clock Algorithm)알고리즘을 사용하여 결정될 수 있다. 즉, BMCA 알고리즘을 사용함으로써, 전체 브릿지 네트워크 내의 각 스테이션들(예컨대, 브릿지 및 엔드 스테이션)들에 포함된 클럭 중 하나의 클럭이 GM 클럭으로서 결정될 수 있다. 다른 실시예에서, GM 클럭은 사용자의 선택에 의해 결정될 수 있다. 즉, BMCA 알고리즘과 같은 알고리즘 사용 없이 사용자의 선택에 의해, 하나의 클럭이 GM 클럭으로서 결정될 수 있다.
도 7의 실시예에서, 브릿지 네트워크는 시간 동기화 시, 클럭의 리던던시(Redundancy)를 위해 두 개의 서로 다른 경로로 시간 동기를 맞출 수 있다. 이 경우, 하나의 GM 클럭에서 두 개의 서로 다른 경로로 시간 정보가 전달되므로, 그 중 하나의 경로가 어떤 이유로 활성화되지 못한다고 하더라도, 다른 경로를 통해 시간 동기를 신속하게 맞추는 것이 가능하다는 이점을 갖는다.
추가적인 또는 대체적인 실시예에서, 클럭의 리던던시를 위해 추가적인 클럭 소스를 설정하는 방법이 사용될 수 있다. 이 경우, 첫 번째 GM 클럭이 실패(fail)되면, 두 번째 클럭 소스가 활성화될 수 있다. 이를 통해, 첫 번째 GM 클럭이 동작하지 않는 경우, 다른 최선의 GM 클럭을 다시 찾는 시간의 필요 없이, 대기 중이던 미리 설정된 두 번째 클럭 소스가 GM 클럭으로서 선택되어 빠르게 시간 동기화를 수행할 수 있다는 이점을 갖는다.
상술한 도 7에 도시된 첫 번째 실시예가 리던던시 경로를 두어 리던던시를 확보하는 것이라면, 두 번째 실시예는 클럭 소스에 리던던시를 두는 방식에 해당한다. 두 실시예 모두 폴트 톨러런스(fault tolerance)를 위한 대비책일 수 있다.
도 8은 본 발명의 일 실시예에 따른 스트림 등록(stream registration)과 스트림 예약(stream reservation) 방법을 나타낸다. 본 명세서에서, 스트림은 토커(talker)로부터 하나 이상의 리스너(listener)로의 데이터의 단방향 흐름(unidirectional flow)를 의미한다. 여기서, 토커는 스트림의 소스 또는 생산자인 엔드 스테이션을 의미하고, 리스너는 스트림의 목적지, 수신자 또는 소비자인 엔드 스테이션을 의미한다.
실시예로서, 스트림 등록 및 예약은 상술한 제어 평면 중 상위 계층 엔티티에서 VLAN 토폴로지와 스테이션 로케이션에 속하는 동작일 수 있다. 이러한 스트림 등록 및 예약 과정에서는, 먼저 브릿지 네트워크를 통해 스트림을 보내려 하는 토커와 이를 받으려 하는 리스너 사이의 경로(route)가 설정되고, 이 경로 내에서 원하는 대역폭과 주어진 시간 레이턴시 내에 프레임을 전송할 수 있는지 여부가 계산될 수 있다. 주어진 조건이 만족된 경우, 이 경로를 통해 프레임이 전송될 수 있다. 이를 통해, 컨제스쳔 로스(congestion loss)없이 원하는 시간 바운더리 내에 프레임 전송이 가능하므로, QoS가 보장될 수 있다.
도 8의 실시예에서, ‘R’과 ‘D’는 브릿지 포트의 상태를 나타내며, ‘R’은 등록(Registration) 상태이고, ‘D’는 선언(Declaration) 상태를 나타낸다. 브릿지 포트의 상태가 등록 상태가 되면, 브릿지는 수신한 프레임을 자신을 제외한 다른 출력 포트로 전달하며, 프레임이 전달된 출력 포트는 선언 상태가 된다. 이러한 과정을 수행하면서, MAC 목적지 주소와 VLAN의 멤버쉽(membership)이 각 포트의 데이터 베이스에 등록될 수 있다.
스트림 등록을 위해, 도 8의 왼쪽에서처럼, 토커는 먼저 자신이 속한 브릿지 네트워크 전체에 “토커광고(talker advertise)” 메시지를 보낼 수 있다. 실시예로서, 토커광고 메시지는 송신지 MAC 주소, 목적지 MAC 주소, 스트림 ID, 데이터 레이트 및/또는 레이턴시 레벨에 대한 정보를 포함할 수 있다. 여기서, 스트림 ID는 소스 (또는 토커)에서 보내려 하는 스트림을 구별하기 위한 식별자를 의미한다.
실시예로서, 이 토커광고 메시지가 각 브릿지를 통과할 때마다 워스트 케이스 레이턴시(worst case latency)가 계산될 수 있다. 이렇게 토커광고 메시지가 전달되는 과정에서, 만일 리소스 확보가 가능하지 않다면, 해당 스테이션은 그 원인을 나타내는 코드가 포함되어 있는 “토커실패(talker failed)” 메시지를 리스너에게 전달할 수 있다.
만약 리소스 확보가 가능하고, 리스너가 토커광고 메시지를 받았다면, 리스너는 “리스너레디(listener ready)” 메시지를 토커에게 보낼 수 있다, 이 경우, 도 8의 오른쪽에서처럼, 토커에서 리스너로 토커광고 메시지가 전달 되었던 경로의 역방향으로 리스너레디 메시지가 전달될 수 있다. 리스너레디 메시지가 전달되면, 토커는 QoS가 보장되는 경로를 따라 스트림을 전송할 수 있다. 스트림 전송이 다 끝난 이후에는 등록해제(de-registering) 절차가 수행되어 예약한 대역폭과 경로가 해지될 수 있다.
만일 스테이션에 전달된 메시지에 포함된 축척된 최대 레이턴시(accumulated max latency), 즉, 워스트 케이스 레이턴시(worst case latency)가 리스너가 기대하는 QoS를 만족시키지 못한다면, 해당 스테이션은 “리스너 애스킹 실패(Listener asking fail)” 메시지를 토커로 전달할 수 있다. 여기서, 스테이션은 브릿지 또는 엔드 스테이션을 포함하는 개념일 수 있다.
도 9는 도 8의 스트림 등록 및 예약에 대한 아키텍쳐를 나타낸다. 구체적으로, 도 9는 도 5의 브릿지 아키텍쳐의 제어 평면에 의한 스트림 등록 및 예약을 위해 사용되는 프로토콜(스트림 등록 및 예약 프로토콜)을 나타낸다.
본 명세서에서, 스트림 등록 및 예약 절차는 사용자의 필요에 따라 수행 될 수 있으며, 이를 이용하면, 토커(talker)와 리스너(lisnter)간에 대역폭(bandwidth)을 최대 75%까지 할당 할 수 있다. 이렇게 할당된 경로 내에서는 해당 토커의 프레임이 우선권을 가지고 있으므로, 다른 프레임에 의하여 간섭을 적게 받을 수 있다. 따라서, 스트림 등록 및 예약 방법은 QoS를 보장 받기 원하며 적은 지연 시간을 요구하는 응용에 쓰일 수 있다. 예를 들면, 비디오와 오디오 간에 동기(sync)를 맞추고자 하는 경우, 스트림 등록 및 예약 방법을 사용하면 QoS를 보장받으면서 동기를 맞추는 것이 가능하다.
도 9를 참조하면, 스트림 등록 및 예약 프로토콜은 MRP(Multiple Registration Protocol), MSRP(Multiple Stream Registration Protocol), MVRP(Multiple VLAN Registration Protocol), MMRP(Multiple MAC Registration Protocol) 및 SRP(Stream Registration Protocol)를 포함한다. MSRP 프로토콜, MVRP 프로토콜 및 MMRP 프로토콜은 MRP 프로토콜의 어플리케이션에 해당하는 프로토콜이다.
SRP 프로토콜은 MSRP 프로토콜, MVRP 프로토콜 및 MMRP 프로토콜에 기반하여 동작하는 프로토콜이다. 실시예로서, 브릿지 네트워크 내의 스테이션은 도 9의 프로토콜의 전부 또는 일부의 기능을 사용하여 스트림 등록 및 예약 절차를 수행할 수 있다.
MRP(Multiple Registration Protocol) 프로토콜은 포트의 속성(attribute)을 선언하는 프로토콜을 말한다. MRP 프로토콜은 브릿지나 엔드 스테이션에서 MRP 프로토콜의 어플리케이션에 해당하는 프로토콜에 해당하는 MSRP, MVRP, MMRP 프로토콜 등을 이용하여 stream ID, VLAN ID, MAC 어드레스 등을 각 포트에 저장함으로써, 효율적으로 네트워크를 구성할 수 있게 하는 프로토콜이다.
MVRP 프로토콜은 브릿지 포트에 여러 개의 VLAN ID, 또는 VLAN 멤버십을 등록할 수 있게 하는 프로토콜이고, MMRP 프로토콜은 브릿지 포트에 여러 개의 MAC 어드레스를 등록할 수 있게 하는 프로토콜이다. 이를 통해, 브릿지 내에서 멀티캐스트(multicast)가 가능할 수 있다. MSRP 프로토콜은 스트림 등록을 위해, 도 8을 참조하여 설명한 토커가 토커광고 메시지를 전송하고, 스테이션이 리소스가 확보되지 못한 경우 토커실패 메시지를 전달하고, 리소스가 확보된 경우에는 리스너레디 메시지를 보내는 등의 모든 과정을 가능하게 하는 프로토콜이다.
실시예로서, MRP 프로토콜은 플루딩(flooding) 방식을 사용하며, 이 과정에서 MRPDU(Multiple Registration Protocol Data Unit)라는 메시지를 만들어서 주기적으로 다른 브릿지나 엔드 스테이션으로 전달할 수 있다. 여기서, 플루딩 방식은 각 스테이션이 입력 받은 데이터를 입력 포트를 제외한 모든 출력 포트로 전달하는 방식을 말한다. MRPDU는 상술한 제2 계층(layer2), 즉 데이터 링크 계층에서 사용되는 MAC PDU의 데이터 영역에 해당하는 메시지로서, 실제 브릿지 내에서 전송될 때에는 MRPDU에 송신지 어드레스, 목적지 어드레스, VLAN 태그 등이 덧붙여져서 전송될 수 있다.
예를 들면, 처음 네트워크가 시작되는 경우, 어떤 브릿지에 데이터가 전달되면 이 데이터를 어느 포트로 전달해야 목적지에 도착할 수 있는지에 대한 사전 정보가 없는 상태이다. 이 경우, MRPDU가 입력되면 브릿지는 MRPDU의 송신지 주소를 입력 포트에 저장하고, 입력 포트를 제외한 다른 모든 가능한 출력 포트로 MRPDU를 전달한다.
이렇게 주소 값이 입력 포트에 저장되면, 추후 해당 주소를 송신지 주소로 갖는 엔드 스테이션이 데이터를 전송하는 경우, 플루딩 할 필요 없이 브릿지의 포트에 저장된 주소 값을 참조하여 데이터를 전송 할 수 있다. 즉, 브릿지 포트 내에 어느 포트를 통하면 어떤 주소 값이 연결(또는 연관)되는지를 나타내는 경로 설정(routing)을 위한 테이블을 갖고 있는 경우, 데이터를 효율적으로 전송할 수 있다. 이러한 방식으로 브릿지의 각 포트가 해당 포트와 연관된 주소 값을 저장할 수 있게 하는 프로토콜이 MMRP 프로토콜이다. 마찬가지의 방식으로, 브릿지의 각 포트가 해당 포트와 연관된 VLAN ID를 저장할 수 있게 하는 프로토콜이 MVRP 프로토콜이며, 해당 포트와 연관된 Stream ID를 저장할 수 있게 하는 프로토콜이 MSRP 프로토콜이다.
MSRP 프로토콜은 시그널링 프로토콜이며 이를 수행하기 위해서 MSRPDU라는 데이터를 전송한다. 이를 이용하여 엔트 포인트 간에 네트워크 리소스를 예약하며, 토커와 리스너 간에 요구되는 QoS가 보장된 전송과 수신이 가능하게 한다.
하나의 포트를 통과해서 다음 브릿지나 엔드 스테이션으로 전달하는 주소값, VLAN ID, stream ID는 당연히 다수의 값을 가지고 있을 수 있으며 이 값을 이용하여 필터링을 수행하여 네트워크 내의 데이터를 전송하는 경우 네트워크를 효율적으로 사용할 수 있다. 또한 엔드 스테이션 간에 리소스를 예약하여 예약된 구간에서는 요구되는 레이턴시(QoS)를 만족시키는 전송도 가능하다. 이러한 것을 가능하게 해주는 프로토콜이 MMRP, MVRP, MSRP 프로토콜이다.
SRP 프로토콜은 이러한 MMRP, MVRP, MSRP 프로토콜에 기반하여 동작하되, MSRPDU에 SR class라는 필드를 두어 전송하는 스트림을 식별할 수 있게 하는 프로토콜이다. 즉, SRP 프로토콜은 MSRPDU 내에 SRclassID, SRclassPriority, SRclassVID와 같은 필드를 두어 예약된 경로를 통과할 스트림에 대한 특징을 구체화 하는 것을 가능하게 할 수 있다. 이때, SRclassID 필드는 토커에서 전달되는 여러 스트림 중 해당 스트림을 식별하기 위한 것이며, SRclassPriority 필드는 SR 트래픽 클래스에 우선순위를 부여하기 위한 것이고, SRclassVID 필드는 SR 트래픽 클래스에 대한 VLAN을 식별하기 위한 것이다.
도 10은 본 발명의 일 실시예에 따른 브릿지 포워딩 프로세스를 나타낸다. 실시예로서, 도 10은 도 5의 브릿지 아키텍쳐의 데이터 평면에 의해 수행되는 브릿지의 포워딩 프로세스를 나타낸다. 본 명세서에서, 브릿지 포워딩 프로세스는 수신 브릿지 포트(수신 포트)에서 수신한 데이터 프레임을 출력 브릿지 포트(출력 포트)로 전달(Relay)하는데 필요한 과정을 나타낸다.
도 10을 참조하면, 우선 수신 포트에 데이터 프레임이 수신된 경우, 액티브 토폴로지 인포스먼트(active topology enforcement)가 수행된다. 이때, 브릿지는 제어 평면의 액티브 토폴로지 과정을 통해 여러 포트 상태를 가질 수 있다. 실시예로서, 포트 상태는 제거 상태(discarding state), 학습 상태(learning state) 및/또는 포워딩 상태(forwarding state)를 포함할 수 있다.
제거 상태는 브릿지 포트가 비활성화(disabled) 또는 블록(blocking)되어 있는 상태를 말하며, 제거 상태에서 브릿지는 입력 받은 데이터를 포워딩하지 않는다. 학습 상태는 입력 받은 데이터를 전달하는 것이 적합한지 여부를 학습하는 상태를 말하며, 학습 상태에서 브릿지는 저장된 소스 어드레스(또는 송신지 어드레스)에 기초하여 현재 포트에서 데이터 프레임을 입력받아 전달하는 것이 적합한지 여부를 판단할 수 있다. 이를 통해, 브릿지는 원하지 않는 데이터 루프의 발생을 막고, 원하지 않는 MAC 소스 어드레스가 포워딩 되는 것을 막을 수 있다.. 포워딩 상태는 학습 상태가 종료된 후 실제로 데이터를 전달하는 상태를 말한다.
이 단계를 수행한 뒤, 여러 필터링 단계(예컨대, 인그레스 필터링(ingress filtering), 프레임 필터링(frame filtering) 및/또는 이그레스 필터링(egress filtering))가 수행될 수 있다. 이러한 필터링 단계는 필터링 데이터베이스(filtering database)에 저장된 목적지 어드레스와 VID 값을 참조하여 전달받은 데이터 프레임이 정확한 브릿지 출력 포트를 통하여 전송되는 것을 돕는다. 이를 통해, 데이터 프레임이 전송될 출력 포트가 정해지면, 플로우 메터링(flow metering) 단계가 수행된다.
플로우 메터링 단계에서, 브릿지는 우선순위(priority)와 DEI(Drop Eligible Indicator) 값을 이용하여 컨제스쳔 발생시 어느 프레임을 버릴(discard) 것인지 여부를 결정할 수 있다.
플로우 메터링 단계를 통과한 프레임은 프레임의 우선순위 값에 기초하여 아웃바운드 큐에 큐잉될 수 있다. 이 경우, 해당 프레임이 다수의 아웃바운드 큐 중 어느 아웃바운드 큐에 큐잉되지는 결정하기 위하여, 도 4를 참조하여 설명된 우선순위와 트래픽 클래스 간의 관계 정보(또는 맵핑 정보)가 사용될 수 있다. 또한, 각 아웃바운드 큐의 상태는 큐 관리(queue management) 모듈에 의해 모니터링되고, 관리될 수 있다.
프레임이 아웃바운드 큐에 저장된 이후에, 프레임은 전송 선택(transmission selection) 단계를 통해 시리얼(serial)하게 전송될 수 있다. 이와 같이 데이터를 시리얼하게 전송하는 과정에서, 트래픽 클래스에 따라 프레임을 지연시킴으로써 대역폭을 확보하고 전체 네트워크 성능을 보장하거나 최적화시킬 수 있는데, 이러한 역할을 수행하는 것을 트래픽 쉐이핑(traffic shaping)이라고 부를 수 있다. 이와 같이 트래픽 쉐이핑을 수행하는 장치는 트래픽 쉐이퍼(traffic shaper) 또는 쉐이퍼로 지칭될 수 있다. 이러한 트래픽 쉐이핑은 상술한 스트림 예약과 함께 사용될 수 있고, 이 경우, 원하는 QoS를 얻을 수 있게 해준다.
상술한 브릿지 포워딩 프로세스에서는 상술한 각 단계의 전부를 수행할 수 있으나, 실시예에 따라서는 상술한 각 단계의 일부만을 수행할 수도 있다. 또한, 상술한 브릿지 포워딩 프로세스는 브릿지 내의 하나 또는 그 이상의 프로세서에 의해 수행될 수 있다.
## 이하에서는 본 발명의 일 실시예에 따른 네트워크 디바이스의 전송 선택 방법에 설명한다. 이러한 전송 선택 방법은 도 10의 브릿지 포워딩 프레세스 중 전송 선택 단계(또는 방법)의 일 예일 수 있다. 상술한 바와 같이, 네트워크 디바이스는 IEEE802.1의 브릿지 네트워크 내의 브릿지에 해당하거나, 또는 이를 포함하거나 이에 포함된 장치(또는 시스템)일 수 있다. 예를 들면, 네트워크 디바이스는 IEEE802.1D 또는 IEEE802.1Q를 따르는 MAC 브릿지 또는 VLAN 브릿지이거나, 또는 이를 포함하거나 이에 포함된 장치(또는 시스템)일 수 있다. 본 명세서에서, 상술한 브릿지에 대하여 적용되는 설명은 네트워크 디바이스에도 동일 또는 유사하게 적용될 수 있다.
본 명세서에서 데이터 프레임(또는 프레임)은 네트워크에서 전송되는 데이터의 단위를 말하고, 데이터 스트림(또는 스트림)은 하나의 엔드 스테이션(예컨대, 토커)에서 다른 엔드 스테이션(예컨대, 리스너)까지의 데이터의 흐름을 말한다. 실시예로서, 하나의 스트림은 하나 이상의 프레임을 포함할 수 있다.
네트워크 디바이스(또는 브릿지)의 각 포트에서는, 트래픽 클래스 및 포트에 대응되는 큐에 의해 지원되는 전송선택 알고리즘 동작에 기초하여 데이터 프레임들이 전송될수 있다. 즉, 네트워크 디바이스는 포트 내의 큐 별로 지원되는 전송 선택 알고리즘에 기초하여 큐로부터 프레임들을 선택 및 전송할 수 있다.
이때, 네트워크 디바이스는 미리 설정된 조건을 만족하는 경우에 전송 선택 알고리즘에 기초하여 큐로부터 프레임들을 선택 및 전송(또는 출력)할 수 있다 예를 들면, 네트워크 디바이스는 “만일 해당 큐에 의해 지원되는 전송 선택 알고리즘이 전송 가능한 프레임이 있다고 결정하는 경우”또는, “해당 포트에 의해 지원되는 숫자적으로 더 높은 우선순위를 갖는 트래픽 클래스 값에 대응되는 각 큐의해 지원되는 전송 선택 알고리즘이 전송가능한 프레임이 없다고 결정하는 경우”에, 전송 선택 알고리즘에 기초하여 해당 큐로부터 프레임들을 선택 및 전송할 수 있다.
이러한 전송 선택을 위한 알고리즘(전송 선택 알고리즘)에는 예컨대, 스트릭 프라이어티 전송 선택 알고리즘(strict priority transmission selection algorithm) 또는 크래딧-베이스드 쉐이퍼 전송 선택 알고리즘(credit-based shaper transmission selection algorithm) 등이 포함될 수 있다. 한편, 브릿지 네트워크 내의 관리 수단에 의해 선택가능한, 추가적인 전송 선택 알고리즘이 요구사항이 만족되는 한 구현 옵션으로서 지원될 수 있다.
스트릭 프라이어티 전송 선택 알고리즘(이하, “스트릭 프라이어티 알고리즘”)은 전송 프레임을 선택하기 위한 디폴트 알고리즘으로서, 모든 네트워크 디바이스에서 지원되어야 하는 알고리즘이다. 이를 지원하는 큐가 하나 이상의 프레임을 포함한다면, 네트워크 디바이스는 스트릭 프라이어티 알고리즘에 따라 프레임을 전송할 수 있다. 이 경우, 프레임이 그 큐로부터 전송되는 순서는 미리 설정된 순서 요구사항(ordering requirement)을 따른다. 실시예로서, 미리 설정된 순서 요구사항은 FIFO(first-in first out) 방식일 수 있다.
크래딧-베이스드 쉐이퍼 전송 선택 알고리즘(이하, “크래딧-베이스드 쉐이퍼 알고리즘”)은 스트릭 프라이어티 알고리즘 이외에, 선택적으로 지원될 수 있는 알고리즘에 해당한다. 이를 지원하는 큐가 하나 이상의 프레임을 포함하고 전송허용(transmitAllowed) 파라미터의 값이 참일 경우, 네트워크 디바이스는 크래딧-베이스드 쉐이퍼 알고리즘에 따라 프레임을 전송할 수 있다. 실시예로서, 전송허용 파라미터는 크래딧-베이스드 쉐이퍼 알고리즘을 지원하는 큐와 연관되는 파라미터로서, 큐에서 현재 이용 가능한 전송 크래딧(credit)의 크래딧 파라미터의 값(크래딧 값)이 0 또는 양인 경우에 참 값을 가지고, 크래딧 파라미터의 값이 음인 경우에 거짓 값을 갖는다. 이러한 크레딧-베이스드 쉐이퍼 알고리즘에 따라 동작하는 크래딧-베이스드 쉐이퍼(CBS)에 대하여는 도 11을 참조하여 이하에서 상세히 설명한다.
도 11은 본 발명의 일 실시예에 따른 크래딧-베이스드 쉐이퍼를 사용하는 네트워크 디바이스의 동작을 나타낸다.
크래딧-베이스드 쉐이퍼는 IEEE 802.1의 브릿지 네트워크에서 사용되는 전송 선택 알고리즘 중 상술한 크래딧-베이스드 쉐이퍼 알고리즘에 따라 동작하는 쉐이퍼를 말한다. 실시예로서, 크래딧-베이스드 쉐이퍼는 기존의 AVB(Audio Vedio Bridging) 시스템에서 사용되는 쉐이퍼로서, 스트림 예약 프로토콜(SRP)과 함께 사용하는 경우에만 정해진 레이턴시 내에 데이터가 전송되는 것이 보장될 수 있다.
크래딧-베이스드 쉐이퍼가 사용되는 네트워크에서는 클래스 A와 클래스 B 라 불리는 두 개의 SR 클래스가 정의되며, 이는 각각 트래픽 쉐이퍼의 우선순위 중 3번째, 2번째에 해당한다. 이렇게 선택된 SR 클래스는 바운디드된 레이턴시(bounded latency)를 가질 수 있다.
크래딧-베이스드 쉐이퍼가 사용되는 경우, 클래스 A와 클래스 B의 우선순위는 각각 0에서 7까지의 우선순위 값 중 3번째, 2번째 순위 값에 해당될 뿐이지만, 이를 최상위 두 개의 트패픽 클래스와 연관시킴으로써 전송 선택 단계에서 가장 높은 우선순위를 갖는 것으로 취급하여 처리할 수 있다. 도 11에서, AVB A, B 및 C 프레임은 동일한 SR 클래스(예컨대, SR 클래스 B)를 갖는 것으로 가정한다. 상술한 바와 같이, SR 클래스를 갖는 AVB 프레임의 트래픽 클래스는 다른 프레임들(예컨대, Low a, b 등)의 트래픽 클래스보다 높다.
상술한 바와 같이, 크래딧-베이스드 쉐이퍼에서는 전송 크래딧(크래딧)이 AVB 프레임을 전송할 수 있는지 여부를 알려주는 파라미터가 될 수 있으며, 크래딧 값이 0 이상이면 전송허용 파라미터의 값이 참이 되어 AVB 프레임의 전송이 가능하며, 크래딧 값이 0 미만이면 전송허용 파라미터의 값이 거짓이 되어 AVB 프레임의 전송이 불가하다. 크래딧 값이 0 미만인 경우에는 AVB 프레임이 아닌 다른 우선순위를 갖는 프레임이 전송될 수 있다. 이하에서는 도 11을 참조하여, 크래딧-베이스드 쉐이퍼를 사용하는 네트워크 디바이스의 동작에 대하여 설명한다.
도 11에 도시된 것과 같이, AVB 프레임 A, B가 큐에 도달한 시간 t0에서는, 예컨대, 다른 프레임(Low a)이 전송 중이기 때문에, 네트워크 디바이스가 AVB A, B를 전송할 수 없다. 이 경우, 크래딧은 점차 증가하게된다. 프레임(Low a)가 전송이 완료된 시간 t1에서는, 크래딧 값이 0 이상이므로, 네트워크 디바이스가 AVB 프레임(A)을 전송할 수 있다. AVB 프레임(A)이 전송되는 동안 크래딧은 점차 감소되게 된다. AVB 프레임(A)의 전송이 완료된 시간 t2에서는, 크래딧 값이 0 이하이므로, 네트워크 디바이스가 AVB 프레임(B)을 전송할 수 없고, 다른 트래픽 클래스를 갖는 프레임(Low b, Low c 등)이 전송되게 된다. AVB 프레임 C가 큐에 도달한 시간 t3에서도, 크레딧 값이 0 이하이므로, 네트워크 디바이스가 AVB 프레임(B 또는 C)을 전송할 수 없고, 다른 트래픽 클래스를 갖는 프레임(Low d)이 전송되게 된다. 다른 우선순위의 프레임이 전송되는 동안 크래딧은 점차 증가한다. 프레임(Low d)의 전송이 완료된 시간 t4에서는, 크래딧 값이 0 이상이므로, 네트워크 디바이스가 AVB 프레임(B)를 전송할 수 있다.
이러한 방식으로 전송 선택이 수행되면, 비록 AVB 프레임 A, B가 함께 입력되었다 하더라도, 출력 될 때에는 도 11에서와 같이 AVB 프레임(A)와 AVB 프레임(B)가 시간적으로 분산되어 출력될 수 있다. 이를 통해, 네트워크 디바이스는 출력된 프레임을 입력받는 다음 네트워크 디바이스의 AVB 프레임을 위한 큐에 데이터가 버스트(burst)하게 입력되는 것을 방지할 수 있다.
IEEE 802.1의 네트워크에서는 상술한 크래딧-베이스드 쉐이퍼 외에도 다양한 쉐이퍼(또는 트래픽 쉐이퍼)들이 사용될 수 있다. 다양한 트래픽 쉐이퍼들은 서로 용도가 상이하지만, 대부분은 네트워크 내에서 한 시점에 하나의 트래픽 클래스와 연관된 큐에 데이터가 버스트하게 입력되는 것을 방지하는 것을 목적으로 한다. 하나의 큐에 데이터가 버스트하게 입력되는 경우, 큐 사이즈의 제한으로 인해 프레임 손실(frame loss)이 발생할 수 있고, 이를 방지하기 위해 브릿지 내의 큐의 크기를 크게 설정하는 경우 의도하지 않은 레이턴시의 증가를 발생시킬 수 있다. 따라서, 타임 크리티컬한 데이터 처리를 위하여, 일반적으로 브릿지 네트워크에서는 트래픽 쉐이퍼를 이용해 다음 스테이션에 데이터를 일정한 간격으로 또는 시간적으로 분산되게 전송해주는 것이 중요하다.
하지만, 특정 브릿지 네트워크, 예컨대, 차량용 브릿지 네트워크에서는 타임 크리티컬한 데이터 처리 보다는 에너지 효율적인 데이터 처리를 위해 버스트한 데이터 입력을 필요로 하는 엔드 스테이션이 존재할 수도 있다. 이 경우, 해당 엔드 스테이션에 연결된 네트워크 디바이스에서는, 일반적으로 사용되는 상술한 전송 선택 방법과는 달리, 에너지 효율적인 데이터 처리를 위하여 버스트한 데이터를 출력할 수 있는 새로운 방식의 전송 선택 방법을 사용할 필요가 있다. 이하에서는 버스트 데이터의 출력을 위한 새로운 방식의 전송 선택 방법(또는 알고리즘) 및 이를 사용하는 네트워크 디바이스에 대하여 도면을 참조하여 설명한다. 본 명세서에서, 버스트 데이터(burst data)의 출력을 위한 전송 선택 방법은 버스트 전송 방법(또는 알고리즘)으로 지칭될 수도 있다. 또한, 버스트 전송 방법이 제공되는 브릿지의 포트는 버스트 브릿지 포트로 지칭될 수 있다.
본 명세서에서, 버스트 데이터의 출력은 예를 들면, 동일한 트래픽 클래스(또는 우선순위)를 갖는 데이터(또는 데이터 프레임)의 집합(또는 모음)이 시간적으로 분산되어 출력되는 것이 아니라, 이러한 데이터 프레임의 집합(또는 모음)이 연속적으로 출력되는 것을 의미하고, 이러한 방식으로 출력되는 데이터 프레임의 집합(또는 모음)을 버스트 데이터라고 지칭할 수 있다. 이때, 연속적으로 출력되는 데이터 프레임의 집합 내의 각 데이터 프레임은 미리 설정된 기준 시간간격 이하로 출력될 수 있다.
실시예로서, 네트워크 디바이스가 버스트 전송 방법을 사용하는 경우, 네트워크 디바이스는 예를 들면, 제1 트래픽 클래스에 대응되는 아웃바운드 큐 내의 제1 데이터 프레임들 모두를 연속적으로 출력하여 제1 버스트 데이터를 네트워크 디바이스에 연결된 엔드 스테이션에 제공하고, 이후, 제1 트래픽 클래스 보다 낮은 우선순위를 갖는 제2 트래픽 클래스에 대응되는 아웃바운드 큐 내의 제2 데이터 프레임들 모두를 연속적으로 출력하여 제2 버스트 데이터를 네트워크 디바이스에 연결된 엔드 스테이션에 제공하는 방식으로 버스트 데이터를 출력할 수 있다.
도 12는 본 발명의 일 실시예에 따른 네트워크 디바이스를 포함하는 브릿지 네트워크를 나타낸다. 실시예로서, 도 12의 브릿지 네트워크는 차량내 브릿지 네트워크(in-vehicle bridged network)일 수 있다. 이러한 차량내 브릿지 네트워크에서는 에너지의 효율적인 사용이 매우 중요하게 해결해야 하는 문제 중 하나이다.
도 12를 참조하면, 브릿지 네트워크는 다수의 네트워크 디바이스(예컨대, 브릿지)를 포함한다. 브릿지 네트워크 내 특정 네트워크 디바이스는 엔드 스테이션과 연결되는데, 이러한 네트워크 디바이스는 바운더리(boundary) 네트워크 디바이스(예컨대, 바운더리 브릿지)로 지칭될 수 있다.
도 12에 도시된 것처럼, 송신지인 엔드 스테이션 A에서 버스트한 입력 데이터를 제공한다고 하더라도, 브릿지 네트워크 내의 네트워크 디바이스들(예컨대, 브릿지 A, B, C 등)의 일반적인 트래픽 쉐이퍼를 통과하게 되면, 최종 목적지인 엔드 스테이션 B로 입력되는 데이터는 시간적으로 분산되어 들어오게 된다. 하지만, 특정 엔드 스테이션, 예컨대, 엔드 스테이션 C는 에너지의 효율적인 사용을 위해 데이터가 버스트하게 입력되는 것을 원하는 스테이션일 수 있다. 예를 들면, 엔드 스테이션 C는 버스트한 데이터의 입력을 필요로 하는 차량내 응용 센서일 수 있다. 이 경우, 엔드 스테이션 C에 연결된 바운더리 네트워크 디바이스(예컨대, 브리지 C)는 버스트한 데이터의 출력을 위한 전송 선택 방법(알고리즘)을 제공할 수 있어야 한다.
이와 같이, 특정 네트워크 디바이스, 예컨대, 엔드 스테이션에 연결된 바운더리 네트워크 디바이스는 버스트한 데이터의 출력을 위한 전송 선택 방법(또는 알고리즘)을 선택적으로 제공할 수 있어야 한다.
버스트 전송 선택 방법은 예를 들면, 특정 엔드 스테이션에 연결된 바운더리네트워크 디바이스(boundary bridge)에 적용될 수 있다. 실시예로서, 특정 엔드 스테이션은 타이밍(timing) 측면에서 정해진 범위의 지연시간을 요구하지는 않지만, 에너지 효율 측면에서 단지 버스트한 데이터 입력을 원하는 엔드 스테이션일 수 있다. 즉, 버스트 전송 선택 방법은 효율적인 에너지 사용을 위해 적은 지연시간 보다는 버스트한 입력을 필요로 하는 엔드 스테이션에 연결된 네트워크 디바이스에 적용될 수 있다.
도 13은 본 발명의 일 실시예에 따른 네트워크 디바이스가 버스트 전송 방법을 이용하여 데이터를 전송하는 방법을 나타낸다. 도 13의 실시예의 버스트 전송 방법은 큐의 재구성을 통해 버스트 데이터를 출력하는 버스트 전송 방법일 수 있다. 즉, 도 13의 실시예의 버스트 전송 방법은 재구성된 큐를 이용하는 버스트 전송 방법일 수 있다.
실시예로서, 버스트 전송 방법은 브릿지 네트워크 내의 엔드 포인트와 연결된 네트워크 디바이스(예컨대, 바운더리 브릿지)의 특정 포트(또는 특정 출력 포트)에서 적용될 수 있다. 실시예로서, 버스트 전송 방법은 네트워크 디바이스의 특정 포트의 모든 큐들에 대하여 적용될 수 있다. 즉, 버스트 전송 방법은 포트 내의 큐 단위(또는 트래픽 클래스 단위)로 적용되는 다른 종류의 전송 선택 방법과 달리 포트 단위로 적용될 수 있다. 이 경우, 버스트 전송 방법이 적용되는 네트워크 디바이스의 해당 포트의 브릿지 ID와 포트 ID(또는 출력 포트 ID)는 네트워크의 관리 정보로서, 관리 정보 데이터베이스에 등록 또는 저장될 수 있다.
실시예로서, 네트워크 디바이스는 브릿지 ID 및 포트 ID에 기초하여 브릿지의 특정 포트가 버스트 전송 방법이 적용되는 포트인지 여부를 결정할 수 있다. 예를 들면, 네트워크 디바이스는 브릿지 ID 및 포트 ID에 기초하여 데이터베이스(예컨대, 관리 정보 데이터베이스)로부터 해당 포트에 대한 전송 선택 알고리즘(또는 방법) 테이블을 검색하고, 이로부터 해당 포트가 버스트 전송 방법이 적용되는 포트인지 여부를 결정할 수 있다.
여기서, 특정 포트에 대한 전송 선택 알고리즘 테이블은 특정 포트에 의해 지원되는 각 트래픽 클래스들(또는 각 트래픽 클래스들과 연관된 큐들)에 대한 전송 선택 알고리즘을 할당하는 테이블을 말한다. 네트워크 디바이스는 전송 선택 알고리즘 테이블을 참조하여, 특정 포트의 개별 트래픽 클래스(또는 큐)들에 적용되는 전송 선택 알고리즘에 대한 정보를 획득할 수 있다. 이에 대하여는 도 16을 참조하여 이하에서 상세히 설명한다.
바운더리 브릿지의 해당 포트가 버스트 전송 방법이 적용되는 포트인 경우, 네트워크 디바이스는 해당 포트의 큐(또는 아웃바운드 큐)들을 재구성할 수 있다. 실시예로서, 큐의 재구성은 해당 포트에 버스트 전송 방법이 적용되기 이전 또는 적용된 이후에 수행될 수 있다.
실시예로서, 네트워크 디바이스는 버스트 전송 방법이 적용되는 출력 포트의 아웃바운드 큐들의 각각을 미리 정의된 형태의 2개의 서브 큐들로 재구성할 수 있다. 예를 들면, 네트워크 디바이스는 버스트 출력 포트의 아웃바운드 큐들의 각각을 핑퐁(ping/pong) 형태의 한 쌍의 서브 큐들로 재구성할 수 있다. 예컨대, 도 13에 도시된 바와 같이, 트래픽 클래스 1과 연관된 아웃바운드 큐 1은 서브 큐 0와 서브 큐 1로 재구성될 수 있고, 마찬가지로, 각 트래픽 클래스 2 내지 8과 연관된 아웃바운드 큐 2 내지 8 역시, 각각 서브 큐 0과 서브 큐 1로 재구성될 수 있다. 실시예로서, 이러한 아웃바운드 큐의 재구성은 네트워크 디바이스의 프로세서(또는 컨트롤러)에 의해 수행될 수 있다.
이렇게 재구성된 한 쌍의 서브 큐(예컨대, 핑퐁 형태의 서브 큐)는 서로 상이한 동작 상태를 가질 수 있다. 예를 들면, 한 서브 큐가 읽기 상태(read status)인 경우, 이와 쌍을 이루는 다른 서브 큐는 쓰기 상태(write status)일 수 있다. 이때, 읽기 상태의 서브 큐가 쓰기 상태로 변경된 경우, 쓰기 상태의 서브 큐는 읽기 상태의 서브 큐로 변경될 수 있다. 이를 통해, 브릿지의 출력 포트는 하나의 큐에서 읽기/쓰기 동작을 함께 또는 동시에 수행하는 것이 아닌, 서로 상이한 동작을 수행하는 한 쌍의 서브 큐로 재구성되어 읽기 동작 및 쓰기 동작을 각각 분리하여 수행할 수 있다. 실시예로서, 재구성된 한 쌍의 서브 큐의 동작 상태의 선택 및 변경 등은 네트워크 디바이스의 프로세서(또는 컨트롤러)에 의해 제어되는 각 큐와 연결된 셀렉터(S)들에 의해 수행될 수 있으나, 이에 한정되지 아니하고, 프로세서(또는 컨트롤러) 그 자체에 의해 수행될 수도 있다.
일 실시예에서, 재구성된 2개의 서브 큐들의 각 사이즈는 동일할 수 있다. 즉, 각 서브 큐의 사이즈는 큐 사이즈의 절반일 수 있다. 이를 통해, 네트워크 디바이스는 각 서브 큐의 동작 상태가 변경된 경우에도, 일정한 범위 이상의 사이즈를 갖는 쓰기 상태의 서브 큐를 가질 수 있다. 따라서, 서브 큐의 사이즈 변경에 따른 입력 프레임의 손실을 최소화할 수 있다. 다만, 실시예에 따라서는 재구성된 2개의 서브 큐들의 각 사이즈가 상이할 수도 있다.
네트워크 디바이스는 쓰기 상태에 있는 서브 큐에 데이터 프레임을 저장할 수 있다. 실시예로서, 네트워크 디바이스는 데이터 프레임의 우선순위와 큐의 트래픽 클래스 간의 맵핑 정보에 기초하여, 쓰기 상태에 있는 다수의 서브 큐 중 어느 서브 큐에 데이터 프레임을 저장할지 결정할 수 있다. 이 경우, 네트워크 디바이스는 도 4의 실시예와 같은 우선순위-클래스 맵핑 테이블을 참조할 수 있다.
네트워크 디바이스는 미리 설정된 상태변경 조건을 만족하는지 여부를 결정할 수 있다. 여기서, 상태변경 조건은 서브 큐의 동작상태를 변경하기 위한 조건을 말한다.
일 실시예에서, 쓰기 상태에 있는 서브 큐 중 하나가 데이터 프레임으로 완전히 채워진 경우, 네트워크 디바이스는 상태변경 조건이 만족된 것으로 결정할 수 있다. 다른 실시예에서, 쓰기 상태에 있는 서브 큐 중 하나에서 데이터 프레임이 미리 설정된 사이즈(또는 스레시홀드 사이즈) 이상으로 채워진 경우, 네트워크 디바이스는 상태변경 조건이 만족된 것으로 결정할 수 있다. 실시예로서, 스레시홀드 사이즈는 쓰기 상태의 서브 큐의 사이즈의 절반 이상으로 설정될 수 있다. 예를 들면, 스레시홀드 사이즈는 쓰기 상태의 서브 큐 사이즈의 80%로 설정될 수 있다.
실시예로서, 네트워크 디바이스는 미리 설정된 기간(또는 스레시홀드 기간) 내에 미리 설정된 상태변경 조건을 만족하는지 여부를 결정할 수 있다. 여기서, 미리 설정된 스레시홀드 기간은 하나의 서브 큐가 채워지길 기다리는 타임아웃 기간을 말한다. 실시예로서, 스레시홀드 기간은 서브 큐의 사이즈에 기초하여 설정될 수 있다. 예를 들면, 서브 큐의 사이즈가 클수록 더 짧은 스레시홀드 기간이 설정될 수 있다.
버스트 전송 방법을 수행하는 경우, 버스트 아웃풋이 나오기까지 지연되는 시간은 서브 큐의 사이즈에 의존하게 된다. 즉, 서브 큐의 사이즈가 작은 경우 버스트 데이터가 자주 출력되고, 서브 큐의 사이즈가 큰 경우에는 상대적으로 버스트 데이터가 출력되는 시간이 길어지게 된다. 이때, 서브 큐들 중 어느 하나가 데이터 프레임들로 채워지는데 너무 오랜 시간이 걸리는 경우, 버스트 아웃풋이 출력되는 시간도 많이 지연되게 될 것이다. 이는 비록 버스트 전송 방법이 바운더리 레이턴시를 요구하지 않는 엔드 스테이션에 연결된 네트워크 디바이스에 적용될지라도, 과도한 지연 시간으로 인하여 네트워크의 성능 저하를 가져 올 수 있다.
따라서, 실시예에 따라서는, 본 발명의 네트워크 디바이스는 미리 설정된 스레시홀드 기간 내에 상태변경 조건을 만족하는 경우에만 큐 상태를 변경하여 읽기 상태로 변경된 큐로부터 버스트 데이터를 출력할 수 있다. 한편, 미리 설정된 스레시홀드 기간 내에 상태변경 조건을 만족하지 않는 경우에는 큐 상태의 변경 없이 현재 읽기 상태의 큐로부터 데이터를 출력하거나, 큐 상태를 변경시켜 읽기 상태로 변경된 큐로부터 데이터를 출력할 수 있다. 이렇게 출력되는 데이터는 엔드 스테이션에서 원하는 형태의 버스트 데이터가 아닐 수 있다. 하지만, 일정한 타임아웃 시간 내에 데이터의 출력을 낼 수 있어, 과도한 지연으로 인한 문제를 해결할 수 있다는 이점을 갖는다.
미리 설정된 상태변경 조건이 만족된 경우, 네트워크 디바이스는 전체 서브 큐들의 상태를 변경시킬 수 있다. 이를 통해, 읽기 상태인 서브 큐들은 쓰기 상태로 변경되고, 쓰기 상태인 서브 큐들은 읽기 상태로 변경될 수 있다.
미리 설정된 상태변경 조건이 만족되지 않는 경우, 네트워크 디바이스는 전체 서브 큐들의 상태를 유지할 수 있다. 이 경우, 네트워크 디바이스는 현재 읽기 상태인 서브 큐들로부터 전송을 위한 데이터 프레임을 선택할 수 있다.
네트워크 디바이스는 읽기 상태로 변경된 서브 큐들로부터 버스트 전송을 위한 데이터 프레임을 선택할 수 있다. 실시예로서, 네트워크 디바이스가 읽기 상태인 서브 큐로부터 버스트 전송을 위한 데이터 프레임을 선택하는 방식은 스트릭 프라이어티 알고리즘(또는 방법)을 사용하여 읽기 상태인 서브 큐로부터 전송을 위한 데이터 프레임을 선택하는 방식과 동일 또는 유사한 방식에 의할 수 있다. 예를 들면, 네트워크 디바이스는 가장 높은 트래픽 클래스를 갖는 읽기 상태인 서브 큐에 저장된 데이터 프레임들을 모두 전송을 위해 선택하고, 이후에, 그 다음 높은 트래픽 클래스를 갖는 읽기 상태인 서브 큐에 저장된 데이터 프레임들을 모두 전송을 위해 선택하는 방식으로, 트래픽 클래스에 따라 순차적으로 서브 큐로부터 버스트 전송을 위한 데이터 프레임을 선택할 수 있다. 이때, 동일한 서브 큐 내에서 데이터 프레임들을 출력하는 순서는 미리 정의된 방식을 따를 수 있다.
이와 같이, 버스트 전송 방법은 가장 많은 데이터가 입력되는 트래픽 클래스에 지배되어 큐에서 데이터를 출력하지만, 버스트하게 출력되는 아웃풋 내에서는 가장 높은 우선순위(또는 트래픽 클래스)를 갖는 프레임들이 우선하도록 한다. 또한, 버스트 전송 방법은 큐 제어가 간단하고, 각 큐를 핑퐁 형태의 서브 큐로 재구성하는 것 역시 소프트웨어에 의한 처리도 가능하므로 구현 상의 어려움도 적다는 이점을 갖는다.
도 14는 본 발명의 다른 실시예에 따른 네트워크 디바이스가 버스트 전송 방법을 이용하여 데이터를 전송하는 방법을 나타낸다. 도 14의 실시예의 버스트 전송 방법은 큐의 재구성 없이 버스트 데이터를 출력하는 버스트 전송 방법일 수 있다. 즉, 도 14의 실시예의 버스트 전송 방법은 재구성된 큐를 이용하지 않는 버스트 전송 방법일 수 있다.
도 13의 실시예에 따른 버스트 전송 방법과 달리, 도 14의 실시예에 따른 버스트 전송 방법을 사용하는 경우, 네트워크 디바이스는 각 큐를 서브 큐로 재구성하지 않고, 각 큐의 동작상태를 조정하여 버스트 데이터를 출력할 수 있다. 이 방식은 각 큐를 서브 큐로 재구성하는 방식에 비해, 더 효율적인 메모리 사용이 가능하다는 이점이 있으나, 버스트 데이터를 출력하는 동안에 큐가 넘쳐 프레임 손실이 생기지 않도록 큐의 상태를 변경하기 위한 기준 사이즈(또는 스레시홀드 사이즈)를 적응적으로 관리하여 하는 어려움을 갖는다.
도 14의 실시예에서, 먼저, 각 큐는 제1 상태(또는 쓰기 상태)로 동작할 수 있다. 제1 상태의 큐는 쓰기 동작만을 수행할 수 있다. 즉, 이 경우에는 읽기 동작을 통한 전송을 위한 데이터 프레임의 선택 과정이 수행되지 않을 수 있다. 이를 통해, 큐들 중 적어도 하나에 버스트한 데이터를 출력할 정도로 충분한 양의 데이터 프레임이 채워질 수 있는 시간을 갖게 된다.
미리 설정된 제1 상태변경 조건이 만족되는 경우, 네트워크 디바이스는 큐 전체의 상태를 제1 상태에서 제2 상태(또는 읽기/쓰기 상태)로 변경시킬 수 있다. 여기서, 제1 상태변경 조건은 큐의 상태를 쓰기 상태에서 읽기/쓰기가 모두 가능한 상태로 변경하기 위한 조건을 말한다. 즉, 제2 상태의 큐는 읽기 및 쓰기 동작을 모두 수행할 수 있다.
일 실시예에서, 제1 상태의 큐들 중 어느 하나의 큐에 데이터 프레임이 미리 설정된 기준 사이즈 이상으로 채워진 경우, 네트워크 디바이스는 제1 상태변경 조건이 만족된 것으로 결정할 수 있다. 실시예로서, 기준 사이즈는 큐 별로 독립적으로 설정될 수 있다.
다른 실시예에서, 제1 상태에서 미리 설정된 제1 기준 시간이 경과된 경우, 네트워크 디바이스는 제1 상태변경 조건이 만족된 것으로 결정할 수 있다. 실시예로서, 제1 기준 시간은 큐의 사이즈에 기초하여 설정될 수 있다. 실시예로서, 기준 시간은 큐 별로 독립적으로 설정될 수 있다.
큐가 제2 상태로 동작하는 경우, 네트워크 디바이스는 버스트 전송을 위한 데이터 프레임의 선택 과정을 수행될 수 있다. 이때, 네트워크 디바이스는 도 13에 상술한 방법에 따라 큐로부터 버스트 전송을 위한 데이터 프레임들을 선택하여 출력할 수 있다. 실시예로서, 각 큐에서 전송을 위한 데이터 프레임의 선택 과정이 수행되는지 여부는 네트워크 디바이스의 프로세서(또는 컨트롤러)에 의해 결정될 수 있다.
이후, 미리 설정된 제2 상태변경 조건이 만족되는 경우, 네트워크 디바이스는 큐 전체의 상태를 제2 상태에서 제1 상태로 변경시킬 수 있다. 여기서, 제2 상태변경 조건은 큐의 상태를 읽기/쓰기 상태에서 쓰기 상태로 상태로 변경하기 위한 조건을 말한다. 쓰기 상태로 변경된 큐들은 상술한 바와 같이 쓰기 동작만을 수행할 수 있다.
일 실시예에서, 제2 상태의 큐들 중 미리 설정된 수의 큐로부터 데이터 프레임들이 출력된 경우, 네트워크 디바이스는 제2 상태변경 조건이 만족된 것으로 결정할 수 있다. 실시예로서, 미리 설정된 수는 1 또는 2일 수 있다. 미리 설정된 수가 1인 경우, 제2 상태의 큐들 중 하나의 큐로부터 버스트 데이터가 출력된 경우, 네트워크 디바이스는 제2 상태변경 조건이 만족된 것으로 결정할 수 있다. 미리 설정된 수가 2인 경우, 제2 상태의 큐들 중 두 개의 큐로부터 버스트 데이터가 출력된 경우, 네트워크 디바이스는 제2 상태변경 조건이 만족된 것으로 결정할 수 있다. 이를 통해, 일정한 수의 큐로부터 일정량 이상의 버스트 데이터가 출력된 경우, 네트워크 디바이스는 제2 상태변경 조건이 만족된 것으로 결정하고, 큐의 상태를 다시 쓰기 상태로 변경할 수 있다. 이후, 네트워크 디바이스는 버스트한 데이터를 출력할 정도로 충분한 양의 데이터 프레임이 채워질 수 있는 시간을 다시 가질 수 있다.
다른 실시예에서, 제2 상태에서 미리 설정된 제2 기준 시간이 경과된 경우, 네트워크 디바이스는 제2 상태변경 조건이 만족된 것으로 결정할 수 있다. 실시예로서, 제2 기준 시간은 큐의 사이즈에 기초하여 설정될 수 있다. 실시예로서, 기준 시간은 큐 별로 독립적으로 설정될 수 있다. 이를 통해, 일정한 시간 이상 동안 버스트 데이터가 출력된 경우, 네트워크 디바이스는 제2 상태변경 조건이 만족된 것으로 결정하고, 큐의 상태를 다시 쓰기 상태로 변경할 수 있다. 이후, 네트워크 디바이스는 버스트한 데이터를 출력할 정도로 충분한 양의 데이터 프레임이 채워질 수 있는 시간을 다시 가질 수 있다.
도 15는 본 발명의 일 실시예에 따른 버스트 전송 방법을 사용하는 경우, 네트워크 디바이스로 입력 및 출력되는 데이터의 형태를 나타낸다.
도 15의 상단에 도시된 것처럼, 두 종류의 데이터 프레임이 네트워크 디바이스로 입력될 수 있다. 예를 들면, 서로 상이한 우선순위를 갖는 제1 타입 데이터 프레임 및 제2 타입 데이터 프레임이 네트워크 디바이스로 입력될 수 있다. 실시예로서, 제1 타입 데이터 프레임은 제2 타입 데이터 프레임 보다 더 높은 트래픽 클래스과 연관될 수 있다. 이때, 각 데이터 프레임은 시간축에서 분산되어 입력될 수 있다.
도 15의 하단에 도시된 것처럼, 네트워크 디바이스에 입력된 두 종류의 데이터 프레임은 도 13 또는 14의 버스트 전송 방법(또는 알고리즘)을 통해 버스트 데이터로 출력될 수 있다. 예를 들면, 도시된 것과 같이, t0 시간에서부터 미리 설정된 스레시홀드 기간(또는, 기준 시간) 내인 t1 시간에 제1 타입 데이터 프레임 또는 제2 타입 데이터 프레임이 대응되는 서브 큐를 모두 채운 경우, 네트워크 디바이스는 버스트 데이터를 출력할 수 있다. 이때, 트래픽 클래스가 높은 제1 타입 데이터 프레임의 버스트 출력이 제2 타입 데이터 프레임의 버스트 출력보다 시간적으로 선행할 수 있다.
이와 같이, 네트워크 디바이스가 버스트 전송 방법을 사용하는 경우, 네트워크 디바이스에 연결된 엔드 스테이션에서는 버스트한 데이터의 출력을 얻을 수 있어, 데이터 처리를 위한 실제 동작 시간의 감소에 따른 에너지 효율성(energy efficient) 측면에서 이점을 가질 수 있다. 하지만, 네트워크 디바이스가 버스트 전송 방법을 사용하는 경우, 큐에 데이터가 충분히 채워질 때까지 시간적인 측면의 지연이 생기므로, 타임 크리티컬(time critical)한 응용에는 적용하기 어려운 면이 있다.
또한, 상술한 바와 같이, 본 발명의 일 실시예에 따른 버스트 전송 방법은 미리 설정된 스레시홀드 기간(또는 타임아웃 기간)을 두어, 도 15의 하단에 도시된 것처럼, 해당 기간 이내에는 버스트 데이터를 출력할 수 있어, 과도한 기다림 또는 지연으로 인한 네트워크의 성능 저하를 막을 수 있다.
도 16은 본 발명의 일 실시예에 따른 전송 선택 알고리즘 테이블을 나타낸다. 본 명세서에서, 전송 선택 알고리즘 테이블은 각 포트(또는 큐)에서 제공되는 전송 선택 알고리즘(또는 방법)에 대한 정보를 제공하는 테이블을 말한다. 네트워크 디바이스는 해당 포트에 대한 전송 선택 알고리즘 테이블을 참조하여, 해당 포트(또는 해당 포트 내의 각 큐)에서 지원되는 전송 선택 방법에 대한 정보를 획득할 수 있다.
상술한 바와 같이, 전송 선택 알고리즘(또는 방법)은 대응되는 큐로부터 전송 프레임을 선택하기 위해 사용되는 알고리즘을 말한다. 이러한 전송 선택 알고리즘에는 상술한 스트릭 프라이어티 알고리즘, 크래딧-베이스드 쉐이퍼 알고리즘, 버스트 전송 알고리즘 외에 구현 선택에 따라 다른 다양한 알고리즘이 포함될 수 있다.
실시예로서, 전송 선택 알고리즘 테이블은 각 포트 별로 존재하는데, 상술한 바와 같이 해당 포트에 대한 전송 선택 알고리즘은 해당 포트에 의해 지원되는 각 트래픽 클래스(또는 각 트래픽 클래스와 연관되 각 큐)에 대하여 할당된 전송 선택 방법(알고리즘)을 나타내는 테이블이다. 이 경우, 해당 큐에 대한 전송 선택 알고리즘은 도 16에 도시된 것처럼, 정수 식별자를 수단으로 전송 선택 알고리즘테이블에서 식별될 수 있다.
예를 들면, 도 16에 도시된 것처럼, 식별자가 제1 값(예컨대, “0” 값)을 갖는 경우, 전송 선택 알고리즘이 스티릭 프라이어티 알고리즘임을 나타내고, 식별자가 제2 값(예컨대, “1”값)을 갖는 경우, 전송 선택 알고리즘이 크래딧-베이스드 쉐이퍼 알고리즘임을 나타내고, 식별자가 제3 값(예컨대, “2” 값)을 갖는 경우, 전송 선택 알고리즘이 인핸스드 전송 선택 알고리즘임을 나타내고, 식별자가 제4 값(예컨대,“4”값)을 갖는 경우, 전송 선택 알고리즘이 버스트 전송(BurstTransmission) 알고리즘임을 나타낼 수 있다.
또한, 식별자가 제5 값(예컨대, “4-255” 값)을 갖는 경우, 전송 선택 알고리즘이 추후 사용을 위해 예약된 것임을 나타낼 수 있고, 식별자가 제6 값(예컨대, “255” 값)을 갖는 경우, 전송 선택 알고리즘이 DCBX 용 벤더-특정 알고리즘임을 나타낼 수 있다. 또한, 식별자가 제7 값(예컨대, 4-옥텟 정수 값)을 갖는 경우, 전송 선택 알고리즘이 벤더-특정 알고리즘임을 나타낼 수 있다. 이 경우, 최상위 3-옥텟은 OUI 또는 CID 값일 수 있고, 최하위 옥텟은 OUI 또는 CID의 소유자에 의해 할당된 0-255 범위의 정수 값일 수 있다.
상술한 전송 선택 알고리즘 테이블(또는 전송 선택 식별 테이블)은 관리 정보 데이터베이스에 저장될 수 있고, 네트워크 디바이스의 관리 수단에 의해 관리될 수 있다.
도 17은 본 발명의 일 실시예에 따른 네트워크 디바이스의 구성도이다.
도 17의 실시예에서, 네트워크 디바이스(1700)는 입력 인터페이스(1710), 출력 인터페이스(1720), 하나 이상의 메모리 유닛(1730) 및 프로세서(1740)를 포함할 수 있다. 상술한 바와 같이, 네트워크 디바이스(1700)는 IEEE802.1의 브릿지 네트워크 내의 브릿지에 해당하거나, 이에 포함되거나 이를 포함하는 디바이스일 수 있다. 예를 들면, 네트워크 디바이스는 IEEE802.1D 또는 IEEE802.1Q에 따라 구현된 브릿지에 해당하거나, 또는 브릿지에 포함되거나 브릿지를 포함하는 디바이스(또는 시스템)일 수도 있다. 일 실시예에서, 네트워크 디바이스는 디바이스(또는 네트워크)에 대한 연결 기능을 수행할 수 있다.
실시예로서, 네트워크 디바이스(1700)는 입력 인터페이스(1710)(예컨대, 입력 포트 또는 인그레스 포트)를 통해 입력된 프레임들을 저장하는 하나 이상의 큐를 포함하는 제1 메모리를 포함할 수 있다. 또한, 네트워크 디바이스(1700)는 본 발명의 다양한 실시예에 따른 네트워크 디바이스(1700)의 동작을 구현하기 위한 모듈, 데이터, 컴퓨터 프로그램 명령 또는 소프트웨어 중 적어도 하나를 저장하는 제2 메모리를 더 포함할 수 있다. 실시예로서, 제2 메모리는 제1 메모리와 동일하거나 또는 상이한 메모리 유닛(1730) 내에 있을 수 있다.
또한, 네트워크 디바이스(1700)는 도 16의 전송 선택 알고리즘 테이블를 저장하는 제3 메모리를 더 포함할 수 있다. 실시예로서, 제3 메모리는 제1 메모리 및/또는 제2 메모리와 동일하거나 또는 상이한 메모리 유닛(1730) 내에 있을 수 있다. 예를 들면, 제1 메모리, 제2 메모리 및 제3 메모리가 모두 동일한 메모리 유닛(1730) 내에 있을 수 있고, 각각이 서로 상이한 메모리 유닛(1730) 내에 있을 수 있으며, 또한, 두 개의 메모리는 동일한 메모리 유닛(1730) 내에 있고 나머지 한 개의 메모리는 이와 상이한 메모리 유닛(1730) 내에 있을 수 있다.
프로세서(1740)는 메모리 유닛(1730)에 연결되며, 상술한 도면 및 설명에 따른 본 발명의 다양한 실시예에 따른 동작을 수행하도록 구성될 수 있다. 예를 들면, 프로세서(1740)는 본 발명의 일 실시예에 따른 버스트 전송 방법을 수행하여 버스트 전송을 데이터 프레임들을 선택하여 출력 인터페이스(1720)(예컨대, 출력 포트 또는 이그레스 포트)를 통해 출력하도록 구성되거나, 또는 IEEE802 네트워크의 데이터 링크 계층 및 물리 계층을 구현하도록 구성될 수 있다. 본 명세서에서, 프로세서(1730)는 본 발명의 네트워크 디바이스(1700)의 각 유닛의 동작을 제어하는 컨트롤러를 포함하는 개념일 수 있다.
도 17의 네트워크 디바이스(1700)의 구체적인 구성은, 전술한 본 발명의 다양한 실시예들이 독립적으로 적용되거나 또는 2 이상의 실시예가 함께 적용되도록 구현될 수 있다. 도 17에서 나타낸 네트워크 디바이스(1700)의 버스트 전송 방법은 도 18 및 19와 관련된 설명뿐 아니라 상술한 명세서의 설명이 모두 적용될 수 있다.
도 18은 본 발명의 일 실시예에 따른 네트워크 장치의 전송 선택 방법을 나타내는 순서도이다. 도 18의 실시예에서, 네트워크 디바이스는 적어도 하나의 데이터 프레임을 저장하는 복수의 큐를 포함할 수 있다. 이때, 복수의 큐의 각각은 상이한 트래픽 클래스에 대응될 수 있다.
도 18을 참조하면, 네트워크 디바이스는 복수의 큐에 대한 전송 선택 알고리즘에 대한 정보를 획득할 수 있다(S18010). 실시예로서, 전송 선택 알고리즘은, 스트릭 프라이어티(strict priority) 알고리즘, 크래딧-베이스드 쉐이퍼(credit-based shaper) 알고리즘 또는 버스트 전송(burst transmission) 알고리즘에 해당할 수 있다.
실시예로서, 네트워크 디바이스는 브릿지 ID 및 포트 ID에 기초하여 데이터베이스(예컨대, 관리 정보 데이터베이스)로부터 해당 포트에 대한 전송 선택 알고리즘(또는 방법) 테이블을 검색하고, 전송 선택 알고리즘 테이블로부터 해당 포트 내의 복수의 큐의 각각(또는 각 큐에 대응되는 각 트래픽 클래스)에 대한 전송 선택 알고리즘 정보를 획득 할 수 있다. 해당 큐에 대한 전송 선택 알고리즘은 도 16에 도시된 것처럼, 정수 식별자를 수단으로 전송 선택 알고리즘 테이블에서 식별될 수 있다.
네트워크 디바이스는 전송 선택 알고리즘 정보에 기초하여 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택할 수 있다(S18020). 전송 선택 알고리즘이 버스트 선택 알고리즘인 경우의 대응되는 큐로부터 버스트 데이터의 전송을 위한 데이터 프레임을 선택하는 방법에 대하여는 이하에서 도 19를 참조하여 상세히 설명한다.
도 19는 본 발명의 일 실시예에 따른 네트워크 장치의 버스트 전송 알고리즘을 이용한 전송 선택 방법을 나타내는 순서도이다. 도 19에서는 도 12 내지 도 18과 중복되는 설명에 대한 자세한 설명은 생략한다.
본 발명의 일 실시예에 따른 네트워크 디바이스는 도 18에서 설명한 바와 같이 해당 포트 또는 해당 포트 내의 각 큐(또는 각 트래픽 클래스)에 대하여 할당된 전송 선택 알고리즘에 대한 정보를 획득할 수 있다. 이때, 획득된 해당 포트에 대한 또는 해당 포트의 각 큐(또는 각 트래픽 클래스)에 대한 전송 선택 알고리즘은 버스트 전송 알고리즘일 수 있다.
일 실시예에서, 해당 포트 내의 모든 큐에 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘일 수 있다. 다른 실시예에서, 해당 포트 내의 큐들 중 일부에 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘일 수 있다. 예를 들면, 해당 포트 내의 큐들 중 하나 또는 두 개의 큐에 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘일 수 있다. 이하에서는, 해당 포트 내의 모든 큐에 전송 선택 알고리즘이 할당된 실시예에 대하여 설명하지만, 이는 설명의 편의를 위한 예시에 불과하고, 동일하거나 유사한 설명이 해당 포트 내의 큐들 중 일부에만 전송 선택 알고리즘이 할당된 실시예에 대하여 적용될 수 있다.
도 19를 참조하면, 복수의 큐의 각각에 대하여 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘인 경우, 네트워크 디바이스는 복수의 큐 각각을 재구성할 수 있다(S19010). 실시예로서, 네트워크 디바이스는 출력 포트의 아웃바운드 큐들의 각각을 미리 정의된 형태의 2개의 서브 큐들로 재구성할 수 있다. 예를 들면, 네트워크 디바이스는 출력 포트의 아웃바운드 큐들의 각각을 핑퐁(ping/pong) 형태의 한 쌍의 서브 큐들로 재구성할 수 있다.
실시예로서, 재구성된 한 쌍의 서브 큐(예컨대, 핑퐁 형태의 서브 큐)는 서로 상이한 동작 상태를 가질 수 있다. 예를 들면, 한 서브 큐가 읽기 상태(read status)인 경우, 이와 쌍을 이루는 다른 서브 큐는 쓰기 상태(write status)일 수 있다. 이를 통해, 브릿지의 출력 포트는 하나의 큐에서 읽기/쓰기 동작을 함께 또는 동시에 수행하는 것이 아닌, 서로 상이한 동작을 수행하는 한 쌍의 서브 큐로 재구성되어 읽기 동작 및 쓰기 동작을 각각 분리하여 수행할 수 있다. 일 실시예에서, 재구성된 2개의 서브 큐들의 각 사이즈는 동일할 수 있다. 즉, 각 서브 큐의 사이즈는 큐 사이즈의 절반일 수 있다. 이에 대하여는 도 13 등을 참조하여 상술한 바 자세한 설명은 생략한다.
네트워크 디바이스는 미리 설정된 상태변경 조건을 만족하는지 여부를 결정할 수 있다(S19020). 네트워크 디바이스는 쓰기 상태의 서브 큐들 중 하나가 미리 설정된 상태변경 조건을 만족하는지 여부를 결정할 수 있다. 일 실시예에서, 쓰기 상태에 있는 서브 큐 중 하나가 데이터 프레임으로 완전히 채워진 경우, 네트워크 디바이스는 상태변경 조건을 만족하는 것으로 결정할 수 있다. 다른 실시예에서, 쓰기 상태에 있는 서브 큐 중 하나에서 데이터 프레임이 스레시홀드 사이즈 이상으로 채워진 경우, 네트워크 디바이스는 상태변경 조건을 만족하는 것으로 결정할 수 있다.
실시예로서, 네트워크 디바이스는 미리 설정된 기간 내에 미리 설정된 상태변경 조건을 만족하는지 여부를 결정할 수 있다. 여기서, 미리 설정된 기간은 하나의 서브 큐가 채워지길 기다리는 타임아웃 기간을 말한다. 실시예로서, 타임아웃 기간은 서브 큐의 사이즈에 기초하여 설정될 수 있다. 이에 대하여는 도 13 등을 참조하여 상술한 바 자세한 설명은 생략한다.
미리 설정된 상태변경 조건이 만족된 경우, 네트워크 디바이스는 전체 서브 큐들의 상태를 변경시킬 수 있다(S19030). 이를 통해, 읽기 상태인 서브 큐들은 쓰기 상태로 변경되고, 쓰기 상태인 서브 큐들은 읽기 상태로 변경될 수 있다.
네트워크 디바이스는 읽기 상태로 변경된 서브 큐들로부터 버스트 데이터의 전송을 위한 데이터 프레임을 선택할 수 있다(S19040). 실시예로서, 네트워크 디바이스가 읽기 상태인 서브 큐로부터 버스트 데이터의 전송을 위한 데이터 프레임을 선택하는 방식은 스트릭 프라이어티 알고리즘(또는 방법)을 사용하여 읽기 상태인 서브 큐로부터 전송을 위한 데이터 프레임을 선택하는 방식과 동일한 방식에 의할 수 있다. 예를 들면, 네트워크 디바이스는 가장 높은 우선순위를 갖는 트래픽 클래스를 갖는 읽기 상태인 서브 큐에 저장된 제1 데이터 프레임들 모두를 전송을 위해 선택하고, 이후에, 그 다음으로 높은 우선순위를 갖는 트래픽 클래스를 갖는 읽기 상태인 서브 큐에 저장된 제2 데이터 프레임들 모두를 전송을 위해 선택하는 방식으로, 트래픽 클래스에 따라 순차적으로 서브 큐로부터 버스트 전송을 위한 데이터 프레임을 선택할 수 있다. 이에 대하여는 도 13 등을 참조하여 상술한 바 자세한 설명은 생략한다.
미리 설정된 상태변경 조건이 만족되지 않는 경우, 네트워크 디바이스는 전체 서브 큐들의 상태를 유지할 수 있다(S19050). 네트워크 디바이스는 현재 읽기 상태인 서브 큐들로부터 전송을 위한 데이터 프레임을 선택할 수 있다(S19060). 이에 대하여는 도 13 등을 참조하여 상술한 바 자세한 설명은 생략한다.
이와 같이, 버스트 전송 방법은 가장 많은 데이터가 입력되는 트래픽 클래스에 지배되어 큐에서 데이터를 출력하지만, 버스트하게 출력되는 아웃풋 내에서는 가장 높은 우선순위(또는 트래픽 클래스)를 갖는 프레임들이 우선하도록 한다. 즉, 버스트 데이터를 출력하기 위한 상태변경 조건의 만족 여부는 가장 많은 데이터가 입력된 큐에 의존하지만, 실제 버스트 데이터의 출력은 큐와 연관된 트래픽 클래스의 우선순위에 의존한다. 또한, 버스트 전송 방법은 큐 제어가 간단하고, 각 큐를 핑퐁 형태의 서브 큐로 재구성하는 것 역시 소프트웨어에 의한 처리도 가능하므로 구현 상의 어려움도 적다는 이점을 갖는다.
본 명세서에서는 해당 포트의 모든 트래픽 클래스(또는 트래픽 클래스에 대응되는 큐)에 버스트 전송 알고리즘이 적용되는 실시예들을 중심으로 설명하였으나, 이는 설명의 편의를 위한 예시에 불과하고, 본 발명의 범위가 이에 의해 한정되지는 않는다. 예를 들면, 해당 포트의 일부 트래픽 클래스(또는 트래픽 클래스에 대응되는 큐)에 대하여 버스트 전송 알고리즘이 적용되고, 나머지 트래픽 클래스(또는 트래픽 클래스에 대응되는 큐)에 대하여는 다른 전송 선택 알고리즘(예컨대, 스트릭 프라이어티 알고리즘 및/또는 크래딧-베이스드 알고리즘)이 적용될 수 있다. 이 경우, 각 알고리즘이 적용되는 트래픽 클래스간의 우선순위 레벨은 미리 설정된 값에 따르거나, 새로 정의된 값에 따를 수 있다. 예를 들면, 버스트 전송 알고리즘이 적용되는 트래픽 클래스들(또는 큐들)이 가장 높은 우선순위 레벨을 갖고, 크래딧-베이스드 알고리즘이 적용되는 트래픽 클래스들(또는 큐들)이 그 다음 높은 우선순위 레벨을 갖고, 스트릭 프라이어티 알고리즘이 적용되는 트래픽 클래스등(또는 큐들)이 가장 낮은 우선순위 레벨을 가질 수 있다.
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
본 발명은 본 발명의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
발명의 실시를 위한 형태
다양한 실시예가 본 발명을 실시하기 위한 최선의 형태에서 설명되었다.
본 발명은 일련의 네트워크 분야에서 이용된다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 자명하다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.

Claims (12)

  1. 네트워크 디바이스에 있어서,
    적어도 하나의 데이터 프레임을 저장하는 복수의 큐, 상기 복수의 큐의 각각은 상이한 트래픽 클래스에 대응되는;
    상기 복수의 큐와 연결된 프로세서를 포함하되,
    상기 프로세서는,
    상기 복수의 큐에 대한 전송 선택 알고리즘에 대한 정보를 획득하고,
    상기 전송 선택 알고리즘에 대한 정보에 기초하여 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하며,
    상기 전송 선택 알고리즘은, 스트릭 프라이어티(strict priority) 알고리즘, 크래딧-베이스드 쉐이퍼(credit-based shaper) 알고리즘 또는 버스트 전송(burst transmission) 알고리즘에 해당하는, 네트워크 디바이스.
  2. 제 1 항에 있어서,
    상기 복수에 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘인 경우, 상기 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 것은:
    상기 복수의 큐의 각각을 한 쌍의 서브 큐로 재구성하되, 상기 한 쌍의 서브 큐는 상이한 동작 상태를 가지고,
    쓰기 상태의 서브 큐들 중 하나가 미리 설정된 상태변경 조건을 만족하는지 여부를 결정하고,
    상기 하나의 서브 큐가 미리 설정된 상태변경 조건을 만족하는 경우, 모든 서브 큐들의 동작 상태를 변경하고,
    읽기 상태로 변경된 서브 큐들로부터 버스트 데이터의 전송을 위한 데이터 프레임들을 선택하는 것을 포함하는, 네트워크 디바이스.
  3. 제 2 항에 있어서,
    상기 읽기 상태로 변경된 서브 큐들로부터 전송을 위한 데이터 프레임들을 선택하는 것은:
    제1 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제1 데이터 프레임들을 전송을 위해 선택하고,
    상기 제1 데이터 프레임들이 전송을 위해 선택된 이후에, 제2 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제2 데이터 프레임들을 전송을 위해 선택하는 것을 포함하되, 상기 제1 트래픽 클래스는 가장 높은 우선순위를 갖는 트래픽 클래스이고, 상기 제2 트래픽 클래스는 상기 제1 트래픽 클래스보다 낮은 우선순위를 갖는 트래픽 클래스인, 네트워크 디바이스.
  4. 제 3 항에 있어서,
    상기 프로세서는,
    상기 쓰기 상태의 서브 큐들 중 하나가 상기 데이터 프레임들로 완전히 채워진 경우, 상기 상태변경 조건을 만족하는 것으로 결정하는, 네트워크 디바이스.
  5. 제 3 항에 있어서,
    상기 프로세서는,
    상기 쓰기 상태의 서브 큐들 중 하나가 미리 설정된 기간 이내에 상기 미리 설정된 상태변경 조건을 만족하는 경우에만, 상기 서브 큐들 모두의 동작 상태를 변경하는, 네트워크 디바이스.
  6. 제 2 항에 있어서,
    상기 한 쌍의 서브 큐는 서로 동일한 사이즈를 갖는, 네트워크 디바이스.
  7. 데이터 프레임을 저장하는 복수의 큐를 포함하는 네트워크 디바이스의 전송 선택 방법에 있어서, 상기 복수의 큐의 각각은 상이한 트래픽 클래스에 대응됨,
    상기 복수의 큐에 대한 전송 선택 알고리즘에 대한 정보를 획득하는 단계; 및
    상기 전송 선택 알고리즘에 대한 정보에 기초하여 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 단계를 포함하며,
    상기 전송 선택 알고리즘은, 스트릭 프라이어티(strict priority) 알고리즘, 크래딧-베이스드 쉐이퍼(credit-based shaper) 알고리즘 또는 버스트 전송(burst transmission) 알고리즘에 해당하는, 네트워크 디바이스의 전송 선택 방법.
  8. 제 7 항에 있어서,
    상기 복수의 큐에 할당된 전송 선택 알고리즘이 버스트 전송 알고리즘인 경우, 상기 대응되는 큐로부터 전송을 위한 데이터 프레임을 선택하는 단계는:
    상기 복수의 큐의 각각을 한 쌍의 서브 큐로 재구성하는 단계로서, 상기 한 쌍의 서브 큐는 상이한 동작 상태를 가지며:
    쓰기 상태의 서브 큐들 중 하나의 서브 큐가 미리 설정된 상태변경 조건을 만족하는지 여부를 결정하는 단계;
    상기 하나의 서브 큐가 미리 설정된 상태변경 조건을 만족하는 경우, 서브 큐들 모두의 동작 상태를 변경하는 단계;
    읽기 상태로 변경된 서브 큐들로부터 버스트 데이터의 전송을 위한 데이터 프레임들을 선택하는 단계를 포함하는, 네트워크 디바이스의 전송 선택 방법.
  9. 제 8 항에 있어서,
    상기 읽기 상태로 변경된 서브 큐들로부터 전송을 위한 데이터 프레임들을 선택하는 단계는:
    제1 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제1 데이터 프레임들을 전송을 위해 선택하고,
    상기 제1 데이터 프레임들이 전송을 위해 선택된 이후에, 제2 트래픽 클래스에 대응되는 서브 큐에 저장된 모든 제2 데이터 프레임들을 전송을 위해 선택하되, 상기 제1 트래픽 클래스는 가장 높은 우선순위를 갖는 트래픽 클래스이고, 상기 제2 트래픽 클래스는 상기 제1 트래픽 클래스보다 낮은 우선순위를 갖는 트래픽 클래스인, 네트워크 디바이스의 전송 선택 방법.
  10. 제 9 항에 있어서,
    상기 네트워크 디바이스는,
    상기 쓰기 상태의 서브 큐들 중 하나의 서브 큐가 상기 데이터 프레임들로 완전히 채워진 경우, 상기 하나의 서브 큐가 상기 미리 설정된 상태변경 조건을 만족하는 것으로 결정하는, 네트워크 디바이스의 전송 선택 방법.
  11. 제 9 항에 있어서,
    상기 네트워크 디바이스는,
    상기 하나의 서브 큐가 미리 설정된 기간 이내에 상기 미리 설정된 상태변경 조건을 만족하는 경우에만, 서브 큐들 모두의 동작 상태를 변경하는, 네트워크 디바이스의 전송 선택 방법.
  12. 제 8 항에 있어서,
    상기 한 쌍의 서브 큐는 서로 동일한 사이즈를 갖는, 네트워크 디바이스의 전송 선택 방법.
KR1020197018083A 2016-12-19 2016-12-19 네트워크 장치 및 네트워크 장치의 전송 선택 방법 KR102164032B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/014894 WO2018117279A1 (ko) 2016-12-19 2016-12-19 네트워크 장치 및 네트워크 장치의 전송 선택 방법

Publications (2)

Publication Number Publication Date
KR20190084315A true KR20190084315A (ko) 2019-07-16
KR102164032B1 KR102164032B1 (ko) 2020-10-12

Family

ID=62626574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197018083A KR102164032B1 (ko) 2016-12-19 2016-12-19 네트워크 장치 및 네트워크 장치의 전송 선택 방법

Country Status (3)

Country Link
US (1) US10999222B2 (ko)
KR (1) KR102164032B1 (ko)
WO (1) WO2018117279A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7046091B2 (ja) * 2017-03-10 2022-04-01 シーメンス アクチエンゲゼルシヤフト Avbストリームのためのパスを予約する方法及び装置
JP6933535B2 (ja) * 2017-09-21 2021-09-08 株式会社東芝 通信装置、通信方法及びプログラム
EP3522477B1 (de) * 2018-01-31 2021-08-11 Siemens Aktiengesellschaft Verfahren zur daten-kommunikation in einem insbesondere industriellen netzwerk, vorrichtung zur durchführung des verfahrens, computerprogramm sowie computerlesbares medium
WO2020039538A1 (ja) * 2018-08-23 2020-02-27 三菱電機株式会社 通信装置、通信方法及び通信プログラム
US11080133B1 (en) * 2018-08-27 2021-08-03 Johnny Yau Systems and methods for reduced latency in data processing
EP3873009A1 (de) * 2020-02-28 2021-09-01 Siemens Aktiengesellschaft Verfahren zur synchronisation von steuerungsanwendungen über ein kommunikationsnetz zur übermittlung zeitkritischer daten, netzinfrastrukturgerät und kommunikationsendgerät
US11121889B1 (en) * 2020-06-15 2021-09-14 Moxa Inc. Apparatuses and methods for routing packets between a time-sensitive networking (TSN) network and a non-TSN network by virtual local area network (VLAN) tag manipulation
CN112769514A (zh) * 2020-12-22 2021-05-07 国家电网有限公司 基于时间敏感的通信设备
CN115865810B (zh) * 2023-02-22 2023-06-09 浙江中控研究院有限公司 一种时间敏感网络中信用值流量调度系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095498A1 (en) * 2000-06-05 2002-07-18 Accordion Networks Network architecture for multi-client units
JP2008165485A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 半導体装置及びバッファ制御回路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553061A (en) * 1994-06-27 1996-09-03 Loral Fairchild Corporation Packet processor having service priority and loss priority features
US7158528B2 (en) * 2000-12-15 2007-01-02 Agere Systems Inc. Scheduler for a packet routing and switching system
JP5183460B2 (ja) * 2008-12-26 2013-04-17 三菱電機株式会社 パケットスケジューリング方法および装置
CN104620548B (zh) 2012-09-11 2018-02-27 马维尔国际贸易有限公司 用于根据ieee 802.1 qbv传输分组的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095498A1 (en) * 2000-06-05 2002-07-18 Accordion Networks Network architecture for multi-client units
JP2008165485A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 半導体装置及びバッファ制御回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘A performance study of Ethernet Audio Video Bridging(AVB) for Industrial real-time communication,’ IEEE conf. of Emerging Tech. & Factory Automation, 2009.10.* *

Also Published As

Publication number Publication date
US20190386935A1 (en) 2019-12-19
KR102164032B1 (ko) 2020-10-12
WO2018117279A1 (ko) 2018-06-28
US10999222B2 (en) 2021-05-04

Similar Documents

Publication Publication Date Title
KR102164032B1 (ko) 네트워크 장치 및 네트워크 장치의 전송 선택 방법
CN111684776B (zh) 用于网络中的数据通信的方法、控制方法和通信系统
US9178831B2 (en) Methods and apparatus for RBridge hop-by-hop compression and frame aggregation
US9736085B2 (en) End-to end lossless Ethernet in Ethernet fabric
CN111788794B (zh) 用于配置灵活以太网节点的方法和设备
US7394758B2 (en) Method for supporting SDH/SONET APS on Ethernet
JP4150258B2 (ja) ネットワークデバイスにおける選択的データフレーム間引き
US20210083970A1 (en) Packet Processing Method and Apparatus
KR102164033B1 (ko) 네트워크 장치 및 네트워크 장치의 큐 관리 방법
US8527674B2 (en) Data packet switching
CN113302885A (zh) 车载网络的以太网和控制器区域网络协议转换
TWI627843B (zh) 在網路節點之訊務管理方法、封包交換型網路的網路節點、電腦可讀取媒體及電腦程式產品
CN109921972B (zh) 数据包传输和/或接收的方法
CN114631290B (zh) 数据分组的传输
JP2022547143A (ja) データ伝送制御方法、装置、及び記憶媒体
WO2023093727A1 (zh) 时间敏感网络数据传输方法及系统
US9197438B2 (en) Packet forwarding node
Amari et al. AeroRing: Avionics full duplex ethernet ring with high availability and QoS management
US20230353422A1 (en) Network Switch, Communication System and Method for Operating a Communication System for Transmitting Time-Critical Data
US8228823B2 (en) Avoiding high-speed network partitions in favor of low-speed links
DeSanti et al. FCoE in perspective
US7009973B2 (en) Switch using a segmented ring
CN111278059B (zh) 一种报文转发方法和装置
CN117014384A (zh) 一种报文传输方法以及报文转发设备
Cavalieri Estimating KNXnet/IP routing congestion

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