KR101455017B1 - 스위치 큐 용량의 링크 계층 예약 - Google Patents

스위치 큐 용량의 링크 계층 예약 Download PDF

Info

Publication number
KR101455017B1
KR101455017B1 KR1020137018931A KR20137018931A KR101455017B1 KR 101455017 B1 KR101455017 B1 KR 101455017B1 KR 1020137018931 A KR1020137018931 A KR 1020137018931A KR 20137018931 A KR20137018931 A KR 20137018931A KR 101455017 B1 KR101455017 B1 KR 101455017B1
Authority
KR
South Korea
Prior art keywords
switch
data
reservation
source station
qrsv
Prior art date
Application number
KR1020137018931A
Other languages
English (en)
Other versions
KR20130128440A (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 KR20130128440A publication Critical patent/KR20130128440A/ko
Application granted granted Critical
Publication of KR101455017B1 publication Critical patent/KR101455017B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • H04L47/724Admission control; Resource allocation using reservation actions during connection setup at intermediate nodes, e.g. resource reservation protocol [RSVP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

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

Abstract

네트워크 스위치는, 소스 스테이션으로부터 계층 2 예약 요청을 수신하는 것에 응답하여, 소스 스테이션의 데이터 플로우를 위한 네트워크 스위치의 인그레스 큐의 용량에 대하여 예약을 설정한다. 예약이 액티브인 동안에 네트워크 스위치의 인그레스 큐에서의 큐 오버런 조건에 응답하여, 네트워크 스위치는 예약에 따라서 송신된 소스 스테이션의 데이터 플로우 내 데이터 프레임들을 보존하고 다른 데이터 프레임들을 폐기한다.

Description

스위치 큐 용량의 링크 계층 예약{LINK LAYER RESERVATION OF SWITCH QUEUE CAPACITY}
본 발명은 일반적으로 네트워크 통신에 관한 것이고, 구체적으로는 통신 네트워크에서 스위치 큐 용량의 예약에 관한 것이다.
이 기술분야에서 알려진 바와 같이, 네트워크 통신은 통상적으로 잘 알려진 7개의 계층 OSI(Open Systems Interconnection) 모델에 전제를 두는데, 이 모델은 여러 프로토콜 계층들의 펑션들을 정의하지만, 계층 프로토콜들 자체는 명시하지 않는다. 때때로 여기에서 계층 7 - 계층 1로 불리는, 상기 7개의 계층들은, 각각 애플리케이션 계층(application layer), 프리젠테이션 계층(presentation layer), 세션 계층(session layer), 전송 계층(transport layer), 네트워크 계층(network layer), 데이터 링크 계층(data link layer), 및 물리적 계층(physical layer)이다.
소스 스테이션(source station)에서, 데이터 통신은 데이터가 소스 프로세스로부터 펑션들 스택의 최상위 (애플리케이션) 계층에 수신될 때 시작된다. 이 데이터가 상기 스택의 연속적으로 더 낮은 각각의 계층에서(at each successively lower layer of the stack) 순차적으로 포맷되어 비트들의 데이터 프레임(a data frame of bits)이 데이터 링크 계층에서 획득된다. 최종적으로, 물리적 계층에서, 이 데이터는 네트워크 링크를 통해서 전자기 신호들의 형태로 목적지 스테이션 쪽으로 송신된다. 목적지 스테이션에서 수신될 때, 송신된 데이터는 데이터가 소스 스테이션에서 처리된 역순으로 펑션들의 대응 스택에 보내지고(passed up), 그렇게 하여 그 정보가 목적지 스테이션의 수신 프로세스(receiving process)에 공급된다.
OSI 모델에 의해 지원되는 것들과 같은, 계층화된 프로토콜들의 원리는, 데이터가 모델 계층들을 수직적으로 가로지르는 동안, 소스 스테이션과 목적지 스테이션에서 그 계층들은 피어-투-피어(peer-to-peer)(즉, 계층 N 대 계층 N) 방식으로 상호작용하고, 각 개별 계층의 펑션들은 개별 계층의 펑션과 그 바로 위 아래의 프로토콜 계층들 사이의 인터페이스에 영향을 주지 않고 수행된다는 것이다. 이러한 효과를 달성하기 위해, 소스 스테이션 내 프로토콜 스택의 각 계층은 데이터가 스택을 내려감에 따라 송신 프로세스(sending process)에 의해 생성되는 데이터에 통상적으로 정보를 (캡슐화된 헤더의 형태로) 추가한다. 목적지 스테이션에서, 이들 캡슐화된 헤더들은 상기 프레임이 스택의 계층들로 전파됨(propagates up)에 따라 하나씩 벗겨져서(stripped off) 캡슐화가 해제된 데이터가 수신 프로세스에 전달된다.
소스 스테이션과 목적지 스테이션을 연결하고 있는 물리적 네트워크는 하나 또는 그 이상의 무선 또는 유선 네트워크 링크들에 의해 상호 연결되는 많은 네트워크 노드들을 포함할 수 있다. 네트워크 노드에는 보통 네트워크 트래픽을 생산하고 소비하는 호스트(예를 들면, 서버 컴퓨터, 클라이언트 컴퓨터, 모바일 디바이스 등), 스위치 및 라우터가 포함된다. 종래의 네트워크 스위치는 여러 네트워크 세그먼트들을 상호 연결하고 OSI 모델의 데이터 링크 계층(계층 2)에서 데이터를 처리 및 전송한다. 스위치는 통상적으로 적어도 기본 브릿지 펑션들을 제공하며, 이 펑션들은 계층 2 MAC(Media Access Control) 주소에 의해서 데이터 트래픽을 필터링하는 것(filtering), 프레임들의 소스 MAC 주소들을 습득하는 것(learning), 및 목적지 MAC 주소들에 기초하여 프레임들을 포워드하는 것(forwarding)을 포함한다. OSI 모델의 네트워크(계층 3)에서 여러 네트워크들을 상호 연결하는 라우터는 통상적으로 라우트 처리(route processing), 경로 결정(path determination) 및 경로 스위칭(path switching)과 같은 네트워크 서비스들을 구현한다.
계층화된 통신 프로토콜을 구현하는 종래의 컴퓨터 네트워크에서, 데이터 접속의 신뢰도는 더 높은 계층 프로토콜들(즉, 계층 4 및 그 이상)의 영역(the province)이었다. 예를 들면, 인커밍(incoming) 데이터 프레임들을 처리하기 위한 스위치의 인그레스 포트(ingress port)의 용량이 그 인그레스 포트에 연결된 소스 스테이션에 의해 오버런(overrun)되면, 그 스위치는 처리될 수 없는 인커밍 프레임들을 조용히 폐기하고, 패킷 손실을 감지하고 필요한 경우 복구 연산을 수행하기 위해 전송(계층 4) 및 더 높은 계층 프로토콜들에 의지한다. 만일 소스 스테이션과 목적지 스테이션 사이의 데이터 통신이 패킷 손실을 용인하지 않으면, 소스 스테이션에서 송신 프로세스를 조절(throttle)하고 그 손실된 패킷들을 복구 및 재송신하기 위해 요구되는 처리는 그 데이터 통신을 지원하는 네트워크 노드들에 상당한 계산상의 부담을 줄 수 있으며, 특히 소스 스테이션의 호스트에 부담을 줄 수 있다.
패킷 복구와 연관된 네트워크 노드들에 대한 계산상의 부담(computational burden)을 경감하기 위한 시도로서, 국제 인터넷 표준화 기구(Internet Engineering Task Force, IETF)는 자원 예약 프로토콜(Resource Reservation Protocol, RSVP)(IETF RFC 2205에 기술됨)과 그것의 확장판인 RSVP-TE(RSVP-트래픽 엔지니어링) 프로토콜(IETF RFC 3209와 5151에 기술됨)을 개발했다. RSVP와 그것의 확장판인 RSVP-TE는 전송 계층(계층 4) 프로토콜들이며, 이들은 호스트들 또는 라우터들에 의해 네트워크에 걸쳐서 네트워크 계층 자원들을 예약하는데 채용되어 인터넷을 통해 특정한 수준(specific levels)의 QoS(quality of service)에서 애플리케이션 데이터 스트림들에 의한 통합 서비스들의 전달을 가능하게 한다.
적어도 하나의 실시 예에 따라서, 네트워크 스위치는, 소스 스테이션으로부터 계층 2 예약 요청을 수신하는 것에 응답하여, 소스 스테이션의 데이터 플로우(data flow)를 위한 네트워크 스위치의 인그레스 큐(ingress queue)의 용량에 대한 예약을 설정한다. 상기 예약이 액티브(active)인 동안 네트워크 스위치의 인그레스 큐에서의 큐 오버런 조건(a queue overrun condition)에 응답하여, 네트워크 스위치는 예약에 따라서 송신된 소스 스테이션의 데이터 플로우 내 데이터 프레임들을 보존하고 다른 데이터 프레임들을 폐기한다.
바람직한 실시 예에서, 데이터 플로우는 소스 스테이션의 복수의 데이터 플로우들과 연관되고, 예약을 설정하는 것은 소스 스테이션의 복수의 데이터 플로우들의 각각에 대한 복수의 예약들 각각의 예약을 설정하는 것을 포함한다. 바람직하게는, 데이터 플로우는 목적지 스테이션으로 주소지정되고, 네트워크 스위치는 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 복수의 스위치들과 연관되며, 상기 설정하는 것은 상기 데이터 경로에 있는 복수의 스위치들의 각각에 예약을 설정하는 것을 포함한다. 더 바람직하게는, 네트워크 스위치는 계층 2 예약 요청을 수신한다. 한층 더 바람직하게는, 계층 2 예약 요청은 링크 계층 탐색 프로토콜 (LLDP: Link Layer Discovery Protocol) 프레임에 명시된다.
바람직한 실시 예에서, 계층 2 예약 요청은 데이터 플로우를 소스 스테이션의 계층 2 주소와 플로우 식별자에 의해 식별한다. 바람직하게는, 예약을 설정하는 것은 네트워크 스위치의 예약 데이터 스트럭처에 예약을 기록하는 것을 포함한다. 더 바람직하게는, 네트워크 스위치는 타이머의 종료(expiration of timer)에 응답하여 예약을 제거한다. 한층 더 바람직하게는, 네트워크 스위치는 예약된 데이터 볼륨의 소진에 응답하여 예약을 제거한다. 한층 더 바람직하게는, 네트워크 스위치는 예약 동안 인그레스 큐 내의 예약된 용량을 수정한다. 한층 더 바람직하게는, 소스 스테이션은 계층 2 예약 요청을 송신한다.
이제 다음과 같이 첨부하는 도면들을 참조하여 단지 예시의 방식으로 본 발명의 실시 예들을 기술할 것이다.
도 1은 일 실시 예에 따른 데이터 처리 환경의 높은 수준 블록 다이어그램이다.
도 2는 일 실시 예에 따른 데이터 처리 시스템의 높은 수준 블록 다이어그램이다.
도 3은 일 실시 예에 따라서 가상화를 채용하는 데이터 처리 환경의 일 부분의 높은 수준 블록 다이어그램이다.
도 4는 일 실시 예에 따르는 계층 2 네트워크 스위치의 모범 실시 예의 높은 수준 블록 다이어그램이다.
도 5는 일 실시 예에 따라서 호스트가 가상 또는 물리적 스위치의 인그레스 큐 용량을 예약하는 모범 프로세스의 높은 수준 논리 순서도이다.
도 6은 일 실시 예에 따라서 가상 또는 물리적 스위치가 호스트의 데이터 플로우를 위한 인그레스 큐 용량을 예약하는 모범 프로세스의 높은 수준 논리 순서도이다.
도 7은 일 실시 예에 따라서 호스트와 스위치 사이에 그리고 스위치들 사이에 QRsv 통신을 구현하는데 이용될 수 있는 모범 링크 계층 탐색 프로토콜 (LLDP) 프레임을 예시한다.
도 8은 일 실시 예에 따라서 QRsv 요청 기능을 하는 LLDP 데이터 프레임에 담겨 호스트에 의해 스위치로 보내질 수 있는 모범 QRsv 요청 TLV를 도시한다.
도 9는 일 실시 예에 따라서 QRsv 요청에 대한 QRsv 응답 기능을 하는 LLDP 데이터 프레임에 담겨 스위치에 의해 호스트로 보내질 수 있는 모범 QRsv 응답 TLV를 예시한다.
도 10은 일 실시 예에 따라서 소스 스테이션의 데이터 플로우를 위한 단-대-단(end-to-end) QRsv의 설정을 요청하기 위해 LLDP 데이터 프레임에 담겨 스위치에 의해 또 다른 스위치로 포워드 될 수 있는 모범 QRsv 요청 TLV를 도시한다.
도 11은 일 실시 예에 따라서 계층 2에서 QRsv의 설정과 이용의 한 예를 도시하는 시-공간 다이어그램이다.
여기에 개시하는 것은 계층 2에서 네트워크 스위치의 인그레스 큐 용량을 예약하기 위한 기술들이다. 그와 같은 예약의 사용은 RSVP와 같은 더 높은 계층 예약 프로토콜들과 연관된 높은 처리 오버헤드(the high processing overhead) 없이 데이터 통신의 향상된 신뢰도를 제공한다.
이제 도면들을 참조하는데 구체적으로 도 1을 참조하면, 일 실시 예에 따른 모범 데이터 처리 환경(100)의 높은 수준 블록 다이어그램이 예시된다. 도시된 바와 같이, 데이터 처리 환경(100)은 한 무리의 자원들(102)를 포함한다. 여러 호스트들, 클라이언트들, 스위치들, 라우터들, 스토리지 등이 포함될 수 있는 자원들(102)는 통신을 위해 상호 연결되며 하나 또는 그 이상의 공공(public), 사설(private), 커뮤니티(community), 공공(public) 또는 클라우드(cloud) 네트워크들 또는 이들의 조합으로 물리적 또는 가상적으로 (도시되지는 않음) 그룹화될 수 있다. 이러한 방식으로, 데이터 처리 환경(100)은 인프라스트럭처, 플랫폼들, 소프트웨어 및/또는 서비스들을 제공할 수 있는데, 이들에 여러 클라이언트 디바이스들(110)이 액세스 가능하며, 클라이언트 디바이스의 예들은 개인용 (예를 들어, 데스크탑, 랩탑, 넷북, 태블릿 또는 핸드헬드) 컴퓨터(110a), 스마트 폰(110b), 서버 컴퓨터 시스템(110c) 및 가전제품이 있으며, 가전제품의 예로는 매체 플레이어 (예를 들어, 셋톱 박스, 디지털 다기능 디스크 (DVD) 플레이어, 또는 디지털 비디오 레코더 (DVR))(110d)가 있다. 도 1에 도시된 클라이언트 디바이스들(110)의 유형들은 단지 예시일 뿐이며 클라이언트 디바이스들(110)은 패킷 네트워크를 통해서 자원들(102)와 통신하거나 그에 액세스 가능한 모든 유형의 전자 디바이스일 수 있다는 것으로 이해되어야 한다.
이제 도 2를 참조하면, 도 1의 자원들(102) 중에서 물리적 호스트를 구현하거나 또는 클라이언트 디바이스(110)을 구현하는데 이용될 수 있는 모범 데이터 처리 시스템(200)의 높은 수준 블록 다이어그램이 예시된다. 예시된 모범 실시 예에서, 데이터 처리 시스템(200)은 하나 또는 그 이상의 네트워크 인터페이스들(204)를 포함하며, 이 인터페이스들은 데이터 처리 시스템(200)이 케이블 및/또는 하나 또는 그 이상의 무선 또는 유선, 공공 또는 사설, 근거리 또는 광역 네트워크들(인터넷 포함)을 통하여 하나 또는 그 이상의 컴퓨팅 자원들(102)와 통신할 수 있도록 허용해준다. 데이터 처리 시스템(200)은 추가로 (통상적으로 하나 또는 그 이상의 집적 회로들을 포함하는) 하나 또는 그 이상의 프로세서들(202)를 포함하며, 이 프로세서들은, 예를 들어, 데이터 처리 환경(100)에서 데이터 또는 소프트웨어를 관리, 액세스 및 조작하기 위해 데이터 및 프로그램 코드를 처리한다. 데이터 처리 시스템(200)은 또한 입력/출력(I/O) 디바이스들(206)을 포함하며, 그 예로는 포트(ports), 디스플레이(displays), 사용자 입력 디바이스(user input devices) 및 부속 디바이스(attached devices) 등이 있으며, 이들은 입력들(inputs)을 수신하고 데이터 처리 환경(100)에서 데이터 처리 시스템(200) 및/또는 다른 자원(들)에 의해 수행되는 처리의 출력들(outputs)을 제공한다. 마지막으로, 데이터 처리 시스템(200)은 데이터 스토리지(210)을 포함하며, 이것은 메모리(memories), 솔리드 상태 드라이브(solid state drives), 광학 또는 자기 디스크 드라이브(optical or magnetic disk drives), 테이프 드라이브(tape drives) 등을 포함하는 하나 또는 그 이상의 휘발성 또는 비휘발성 스토리지 디바이스들을 포함할 수 있다. 데이터 스토리지(210)은 예를 들어 (소프트웨어, 펌웨어 또는 이들을 조합하여 포함하는) 프로그램 코드를 저장할 수 있으며, 이 프로그램 코드는 프로세서(들)(202)에 의해 실행되면 데이터 처리 시스템(200)이 여기에 기술되는 펑션의 적어도 일부를 구현하게 한다.
이제 도 3을 참조하면, 일 실시 예에 따라서 가상화를 채용하는, 물리적 호스트(310)을 포함하는 데이터 처리 환경(300)의 일 부분의 높은 수준 블록 다이어그램이 도시된다. 예를 들어, 데이터 처리 환경(300)은 도 1의 데이터 처리 환경(100)의 일 부분을 구현할 수 있고, 물리적 호스트(310)은 자원들(102) 중 하나 또는 클라이언트 디바이스(110)을 구현할 수 있다.
도시된 실시 예에서, 데이터 처리 환경(300)은 네트워크(302)를 포함하며, 이것은 인터넷과 같은 하나 또는 그 이상의 무선 또는 유선 근거리 통신망(LANs) 또는 광역 통신망(WANs)을 포함할 수 있다. 네트워크(302)에 액세스 스위치(304)가 연결되어 있으며, 이 액세스 스위치는 물리적 호스트(310)을 포함하는 하나 또는 그 이상의 물리적 호스트들을 위해 네트워크(302)에 OSI 계층 2 연결을 제공하며, 물리적 호스트(310)은 물리적 링크(306)에 의해 액세스 스위치(304)에 연결된다. 이해할 수 있는 바와 같이, 물리적 링크(306)은 유한의 가용 대역폭(a finite available bandwidth)을 가지며, 이 대역폭은 일반적으로 액세스 스위치(304)와 물리적 호스트(310)에 의해 이들의 통신 능력들에 기초하여 결정되거나 프로토콜-의존 협상(protocol-dependent negotiation)에 의해 결정된다.
도 3의 물리적 호스트(310)은 예를 들어 도 2에 도시된 바와 같이 데이터 처리 시스템(200)을 이용하여 구현될 수 있다. 예를 들면, 도시된 예에서, 물리적 호스트(310)의 네트워크 인터페이스(들)(204)는 PCIe(Peripheral Component Interconnect Express) 융합형 네트워크 어댑터(Converged Network Adapter, CNA)(312)를 포함한다. 도시된 실시 예에서, PCIe CNA(312)는 가상 이더넷 브릿지(VEB)(314)를 포함하며, 이것은 물리적 링크(306)에 결합되고, 또한 복수의 다양한 OSI 계층 2 네트워크들을 위한 서포트(support)에 결합된다. 그러므로, 이 예에서, PCIe CNA(312)는 적어도 파이버 채널 호스트 버스 어댑터(FC HBA)(316)과 융합형 강화 이더넷(Converged Enhanced Ethernet, CEE) 네트워크 인터페이스 카드(Network Interface Card, NIC)(318)을 포함한다.
물리적 호스트(310)은 가상 머신 모니터(VMM)(330)을 실행하고, VMM(330)은 물리적 호스트(310)의 자원들을 가상화하고 관리한다. VMM(330)은 하나 또는 그 이상의 (그리고 잠재적으로 수천의) VM들의 실행을 지원하며, 도시된 예에서 VM들은 VM들(350a)-(350n)을 포함한다. 도시된 실시 예에서, VM들(350)의 각각은 적어도 하나의 (그리고 어떤 경우에는 다수의) 가상 네트워크 인터페이스들(352a)-(352e)를 가지며, 이 인터페이스들은 적어도 OSI 모델의 계층 2에 네트워크 연결을 제공한다.
도시된 바와 같이, VMM(330)은 하나 또는 그 이상의 (그리고 도시된 실시 예에서는, 적어도 두 개의) 가상 네트워크들을 제공하며 이 네트워크들에 VM들(350)이 접속할 수 있다. 예를 들면, 도시된 실시 예에서, VMM(330)은 VEB(334)를 포함하는 가상 스위치(VS)(332)의 구현을 통해서 제1 가상 계층 2 네트워크를 제공한다. 이와 유사하게 VMM(330)은 FC NPIV(N_Port Identifier Virtualization)(336)의 구현을 통해 제2 가상 네트워크를 제공한다. 여러 실시 예들에서, VMM(330)에 의해 지원되는 가상 네트워크들의 각각은 예를 들어 특정 당사자의 사설 네트워크, 다수 당사자에 의해 공유되는 협력적 사설 네트워크, 또는 공공 네트워크일 수 있다.
도시된 예에서, VM(350a)의 네트워크 인터페이스(352a)는 VEB(334)를 통하여 제1 가상 네트워크에 연결되고, VM(350a)의 네트워크 인터페이스(352b)는 FC NPIV(336)을 통하여 제2 가상 네트워크에 연결된다. 이와 유사하게, VM(350n)의 네트워크 인터페이스(352c)는 VEB(334)를 통하여 제1 가상 네트워크에 연결되고, VM(350n)의 네트워크 인터페이스(352e)는 FC NPIV(336)을 통하여 제2 가상 네트워크에 연결된다. VM(350n)은 추가 네트워크 인터페이스(352d)를 포함하며 추가 네트워크 인터페이스(352d)는 VMM(330)(및 부수하는 오버헤드)에 의해 지원되는 가상 네트워크들을 우회하여 CEE NIC(318)의 "가상 펑션(virtual function)"으로서 제공되는 스택(320)에 VMM (330)을 통해서 직접적으로 연결된다. 도 3에 더 도시된 바와 같이, FC NPIV(336)은 PCIe CNA(312)의 FC HBA(316)에 연결되고, VS(332)의 VEB(334)는 CEE NIC(318)에 연결된다. FC HBA(316)과 CEE NIC(318)의 트래픽은 PCIe CNA(312)의 VEB(314)에 수렴한다.
아래에 더 논의되는 바와 같이, 물리적 호스트(310)과 액세스 스위치(304)와 같은 네트워크 스위치들이 협력하여 적어도 액세스 스위치(304)의 대역폭을 계층 2에 예약함으로써 데이터 통신의 신뢰도를 향상시킨다.
이제 도 4를 참조하면, 도 3의 액세스 스위치(304)와 같은 계층 2 네트워크 스위치(400)의 모범 실시 예의 높은 수준 블록 다이어그램이 도시된다. 물리적 네트워크 스위치 대신, VS(332)와 같은 가상 스위치가 또한, 호스트의 데이터 스토리지 내에 상기 도시된 포트들과 큐 스트럭처들이 구현되는 상태로, 유사하게 구성될 수 있다.
도시된 바와 같이, 네트워크 스위치(400)은 복수의 포트들(402a-402m)을 포함한다. 각 포트(402)는 복수의 수신(Rx) 인터페이스들(404a-404m) 각각의 Rx 인터페이스와 복수의 인그레스 큐들(406a-406m) 각각의 인그레스 큐를 포함하며, 인그레스 큐는 연관된 Rx 인터페이스(404)에 의해 수신된 데이터 프레임들을 버퍼링한다. 포트들(402a-402m)의 각각은 복수의 이그레스 큐들(egress queues)(414a-414m) 각각의 이그레스 큐와 복수의 송신(Tx) 인터페이스들(420a-420m) 각각의 Tx 인터페이스를 더 포함하며, Tx 인터페이스는 연관된 이그레스 큐(414)로부터의 데이터 프레임들을 송신한다.
네트워크 스위치(400)은 크로스바(410)을 포함하며, 크로스바(410)은 스위치 컨트롤러(430)의 지시 하에 입력 큐들(406a-406m) 중 어느 하나에서 이그레스 큐들(414a-414m) 중 어느 하나로 데이터 프레임들을 지능적으로 스위치한다(intelligently switch). 데이터 프레임들을 지능적으로 스위치하기 위해, 스위치 컨트롤러(430)은 관찰된 데이터 프레임들로부터 포트들과 데이터 프레임들에 의해 명시되는 목적지 MAC 주소들 사이의 연관(an association)을 습득하고(learn), 목적지 MAC 주소들과 포트들(402) 사이의 상기 습득된 연관을 포워딩 테이블(432)의 엔트리들에 기록한 다음, 크로스바(410)을 컨트롤하여 포워딩 테이블(432)에 기록된 연관들에 따라 데이터 프레임들을 스위치하도록 한다. 스위치 컨트롤러(430)은 또한 폴리시 모듈(policy module, 434)을 포함할 수 있으며, 폴리시 모듈(434)는 미리 정해진 기준을 만족하는 데이터 프레임들에 대해 원하는 폴리시 관리 및 시행(a desired policy management and enforcement)을 구현한다.
앞서 논의된 바와 같이, 만일 네트워크 스위치(400)의 주어진 Rx 인터페이스(404)에서 데이터 프레임들의 도착율(arrival rate)이 인커밍 데이터 프레임들을 버퍼링하기 위한 연관된 인그레스 큐(406)의 용량을 초과하면, 초과 데이터 프레임들은 조용히 폐기된다. 인그레스 큐들(406)의 오버런(overrun)은 다수의 (그리고 가능한 많은) VM들(350)이 네트워크 스위치(400)의 동일한 포트(402)에 데이터를 독립적으로 그리고 동시에 송신하는, 도 3의 데이터 처리 환경(300)과 같은 가상화된 환경들에서 특히 문제가 된다.
인그레스 큐들(406)의 오버런을 줄이고 그럼으로써 데이터 통신의 신뢰도를 향상시키기 위하여, 네트워크 스위치(400)은 바람직하게는 특정한 데이터 플로우들을 위한 인그레스 큐들(406) 내 용량의 예약을 지원한다. 특히, 도 5-6을 참조하여 아래에서 더 논의되는 바와 같이, 스위치 컨트롤러(430)은 데이터 플로우들 중 하나를 위하여 소스 스테이션과 목적지 스테이션 사이에 위치한 하나 또는 그 이상의 네트워크 스위치들(400)의 인그레스 큐(406) 내 용량의 예약을 요청하기 위해 소스 스테이션(예를 들어, 네트워크 어댑터(예를 들어, 도 3의 PCIe CNA(312)), 네트워크 어댑터를 위한 드라이버, 컨트롤 프로그램(예를 들어, 운영체제 또는 VMM(330)), 가상 머신(예를 들어, VM(350)) 또는 애플리케이션 프로그램)의 능력을 지원한다. 그런 다음, 네트워크 스위치(들)(400)의 스위치 컨트롤러(430)이, 예를 들어, 데이터 플로우들의 수, 이미 예약된 입력 큐 용량의 양과 같은 하나 또는 그 이상의 요인(factor)들에 기초하여, 그리고 폴리시 모듈(434)에 의해 표시되는 폴리시 참고사항들(policy considerations)에 의하여 예약 요청을 허가 또는 거부한다. 허가되면, 스위치 컨트롤러(430)은 그 예약을 예약 데이터 스트럭처에 기록하는데, 예를 들어, 예약 테이블(440)의 엔트리(442)에 기록한다. 표시된 바와 같이, 한 실시 예에서, 예약 테이블(440)의 각 엔트리(442)는, 예를 들어 대역폭이 예약되는 포트(402)를 식별하는 PID(port ID) 필드(444)와, 인그레스 큐 용량이 예약될 데이터 프레임들을 예를 들어 소스 MAC 주소 및/또는 플로우 ID로 식별하는 예약(Rsv) ID 필드(446), 및 상기 예약 ID와 연관된 데이터 플로우의 데이터 프레임들을 위해 예약되는 인그레스 큐 용량의 양(예를 들어, 인그레스 큐 엔트리들의 수, 인그레스 큐 용량의 백분율 및/또는 데이터의 총 볼륨으로 표시됨)을 표시하는 예약(Rsv) 사이즈 필드(448)을 포함할 수 있다. 이러한 방식으로 하면, 네트워크 스위치(400)에서 인그레스 큐 용량을 예약한 데이터 플로우의 프레임들은 데이터 플로우의 데이터 전송속도(data rate)가 예약된 용량보다 적거나 같은 동안에는 인그레스 큐 오버런 조건의 경우에도 드롭되지(dropped) 않을 것이다. 그 대신, 인그레스 큐 용량 예약을 하지 않거나 자신의 예약된 인그레스 큐 용량들을 초과하는 다른 데이터 플로우들의 데이터 프레임들은 드롭될 것이다.
이제 도 5를 참조하면, 일 실시 예에 따라서 도 3의 물리적 호스트(310)과 같은 호스트가 도 4의 네트워크 스위치(400)과 같은 스위치의 인그레스 큐 용량을 예약하는 모범 프로세스의 높은 수준 논리 순서도가 도시된다. 예시된 프로세스는 예를 들어 네트워크 어댑터(예를 들어, 도 3의 PCIe CNA(312)), 네트워크 어댑터를 위한 드라이버, 컨트롤 프로그램(예를 들어, 운영체제 또는 VMM(330)), 가상 머신(예를 들어, VM(350)) 또는 애플리케이션 프로그램과 같은 소스 스테이션에 의해 수행될 수 있다. 일반화를 위해, 그러한 모든 실시 예들은 소스 스테이션이 상주하는 "호스트"의 동작(operation)이라 한다.
도 5의 프로세스는 블록(500)에서 시작하고 그 다음 블록(502)로 진행하며, 이 블록은 호스트가 호스트의 데이터 플로우를 위하여 인그레스 큐 용량의 예약(이하, QRsv라함)을 요청할지 안 할지를 결정하는 것을 도시한다. 호스트는, 예를 들어, 데이터 플로우의 기대 대역폭, 프레임 손실에 대한 데이터 플로우의 허용한도, 및/또는 동일한 인그레스 큐를 공유하는 다른 데이터 플로우들의 수 등에 기초하여 블록(502)에 도시된 결정을 내릴 수 있다. 블록(502)에서 데이터 플로우에 대한 QRsv를 요청하지 않기로 한 결정에 응답하여, 프로세스는 블록(504)에서 종료된다. 그 결과, 호스트는 호스트와 목적지 스테이션 사이의 데이터 경로에 있는 스위치들 어디에서도 인그레스 큐 예약의 이점이 없이 데이터 플로우의 목적지 스테이션에 데이터 플로우를 송신할 것이며, 인그레스 큐 오버런으로 인해 데이터 프레임 손실의 위험이 따른다.
블록(502)로 돌아가서, 호스트가 데이터 플로우를 위한 QRsv를 요청하기로 결정하는 것에 응답하여, 프로세스는 블록(502)에서 블록(510)으로 진행한다. 블록(510)은 호스트가 데이터 플로우를 위한 QRsv 요청을 호스트와 목적지 스테이션 사이의 데이터 경로에 있는 네트워크 스위치에 보내는 것을 도시한다. QRsv 요청은 바람직하게는 Rsv ID로 데이터 플로우를 식별한다. 만일 QRsv 요청과 연관된 데이터 플로우가 주어진 소스 스테이션에 의해 송신되는 모든 데이터를 포함한다면, Rsv ID는 간단히 소스 스테이션의 소스 MAC 주소일 수 있다. 반면에, 만일 QRsv 요청이 주어진 소스 스테이션의 가능한 한 다수의 데이터 플로우들 중 단지 하나만을 위한 것이라면, Rsv ID는 소스 스테이션의 소스 MAC 주소와 추가 플로우 ID를 포함할 수 있다. 두 경우에, QRsv 요청은 바람직하게는 데이터 플로우를 위해 예약될 인그레스 큐 용량의 양을 표시하며 QRsv 하에 송신될 데이터의 총 볼륨(양)을 더 표시할 수 있다. 아래에서 더 논의되는 바와 같이, 바람직한 실시 예에서 QRsv 요청은 여기에 참조로 포함되는 IEEE 802.1AB 명세에 의해 정의되는 링크 계층 탐색 프로토콜(LLDP)과 같은 계층 2 프로토콜을 이용하여 이루어진다(communicated). 블록(510)에서 더 표시되는 바와 같이, 호스트는 QRsv 요청이 허가 또는 거부될 윈도우(window)를 정의하는 요청 타이머를 추가로 시작할 수 있다.
블록(510)에 이어서, 호스트는 블록(512)에 도시된 바와 같이 요청을 허가하거나 거부하는 QRsv 응답이 호스트에 의해 수신될 때까지 또는 요청 타이머가 종료될 때까지 기다린다. 그 다음, 호스트는 블록(514)에서 요청된 QRsv가 요청 타이머에 의해 정의된 윈도우 내에서 허가되었는지 허가되지 않았는지를 결정한다. 허가되지 않았다면, 프로세스는 블록(502)로 돌아가며, 이 블록은 이미 기술되었다. 그러나 호스트가 블록(514)에서 QRsv 요청이 허가되었다고 결정하면, 프로세스는 블록(520)으로 진행하고, 이 블록은 호스트가 자신의 QRsv를 (예를 들어, 도 4의 예약 테이블 엔트리와 유사한 테이블 엔트리에) 로컬로 기록하는 것을 도시한다. 추가로, 호스트는 QRsv의 지속시간(duration)을 추적하는 종료 타이머(expiration timer)를 선택적으로 실행할 수 있고, 여기에서 초기 종료 타이머 값이, 예를 들어, 디폴트 QRsv 지속시간에 의해 결정되거나 또는 QRsv 응답에 의해 명시되는 타이머 값에 기초하여 결정될 수 있다. 이 지점에서, 인그레스 큐 용량이 예약된 스위치(들)을 경유하여 호스트에 의해 송신된 데이터 플로우의 데이터 프레임들은 인그레스 큐 오버런 조건에 응답하여 드롭되지 않도록 보장된다.
블록(522)에 표시된 바와 같이, 데이터 플로우를 포함하는 데이터 프레임들의 송신 동안에, 호스트는 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 하나 또는 그 이상의 네트워크 스위치들과 재협상을 함으로써 자신의 QRsv를 선택적으로 증가 또는 감소시킬 수 있다. 호스트는 QRsv에 의해 예약된 대역폭을, 예를 들어, 적어도 부분적으로 데이터 플로우의 실제 데이터 전송속도에 기초하여 조정할 수 있다. 블록(524)에서, 호스트는 QRsv에 대한 종료 타이머가 종료되었는지 아닌지 또는 QRsv 하에서 송신된 데이터의 총 허용 볼륨이 소진되었는지를 결정한다. 만일 종료되거나 소진되지 않았다면, 프로세스는 선택적 블록(522)로 돌아가고, 이 블록은 이미 기술되었다. 그러나 호스트가 블록(524)에서 QRsv가 종료되거나 소진되었다고 결정하면, 프로세스는 이전에 기술된 블록(502)로 돌아가며, 원할 경우 호스트는 데이터 플로우를 위하여 QRsv의 갱신을 요청할 수 있음을 표시한다.
이제 도 6을 참조하면, 일 실시 예에 따라서 도 4의 네트워크 스위치(400)과 같은 물리적 네트워크 스위치 또는 가상 스위치가 소스 스테이션의 데이터 플로우를 위하여 인그레스 큐 용량을 예약하는 모범 프로세스의 높은 수준 논리 순서도가 도시된다. 일 실시 예에서, 도시된 프로세스는 스위치 컨트롤러(430)과 같은 하드웨어로 구현되며, 스위치 컨트롤러(430)은 소프트웨어 및/또는 펌웨어의 실행 또는 실행 없이 집적 회로에서 프로세스를 구현할 수 있다.
도시된 바와 같이, 프로세스는 블록(600)에서 시작하고 그 다음 블록(602)로 진행하며, 이 블록은 스위치가 호스트로부터 계층 2 QRsv 요청을 수신하고 이 호스트에 스위치의 포트가 네트워크 링크에 의해 결합되는 것을 도시한다. 위에서 표시된 바와 같이, QRsv 요청은 바람직하게는 소스 MAC 주소 및/또는 플로우 ID와 같은 Rsv ID로 데이터 플로우를 식별하고, 추가로 데이터 플로우를 위하여 예약될 인그레스 큐 용량의 양을 표시하며 QRsv 하에서 송신될 데이터의 볼륨을 더 표시할 수 있다.
블록(602)에서 QRsv 요청을 수신하는 것에 응답하여, 스위치는 블록(604)에서, 예를 들어, 관련 인그레스 큐(406)의 총 가용 대역폭과, 요청된 QRsv의 양(데이터 전송속도 및/또는 볼륨)과, 있을 경우 상기 관련 인그레스 큐(406)에 대하여 현재 액티브인 다른 QRsv들, 및/또는 동일한 포트(402)상의 다른 데이터 플로우들의 수에 기초하여 QRsv 요청을 허가할 것인지 아닌지를 결정한다. 블록(604)에서 QRsv 요청을 거부하기로 결정하는 것에 응답하여, 스위치는 QRsv 요청을 명시적으로 거부하는 QRsv 응답을 선택적으로 보내거나 또는 간단히 QRsv 요청을 조용히 폐기할 수 있으며, 그럼으로써 도 5의 블록들(512-514)를 참조하여 앞에서 기술된 바와 같이 요청하는 호스트의 요청 타이머가 타임 아웃 되도록 허용한다. 두 경우에, 도 6의 프로세스는 블록(604)에서 블록(602)로 돌아가며, 이 블록은 이미 기술되었다.
그러나 만일 스위치가 블록(604)에서 호스트의 QRsv가 허가될 수 있고 허가되어야 한다고 결정하면, 스위치는 QRsv를, 예를 들어, 예약 테이블(440)의 예약 테이블 엔트리(442)에 기록한다. 추가로, 스위치는, 도 5의 블록(520)을 참조하여 앞에서 기술된 바와 같이, QRsv의 지속시간을 정의하는 종료 타이머를 시작시킬 수 있다. 호스트가 소스 스테이션에 가장 인접한 스위치에서만 자신의 데이터 플로우를 위한 QRsv를 설정하도록 허용되거나 또는 요청하는 실시 예들에서, 프로세스는 블록(610)에서 블록(620)으로 진행하고, 이 블록은 아래에 기술된다. 호스트가 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 하나보다 많은 스위치에서 자신의 데이터 플로우를 위하여 QRsv를 설정하도록 허용되고 그리고 요청하는 다른 실시 예들에서, 프로세스는 블록(612)로 넘어간다.
블록(612)는 스위치가 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 마지막 홉(final hop)인지 아닌지를 결정하는 것, 즉, 목적지 스테이션이 데이터 링크에 의해 중개 스위치들이 없이 스위치의 포트에 연결되는지를 결정하는 것을 도시한다. 만일 그렇다면(마지막 홉이라면), 프로세스는 블록(620)으로 진행하고, 이 블록은 아래에 기술된다. 만일 그렇지 않다면, 프로세스는 블록(614)로 넘어가고, 이 블록은 스위치가 QRsv 요청의 소스 MAC 주소를 스위치의 포트에 대해 업데이트하고 QRsv 요청을 데이터 플로우의 목적지 스테이션으로 가는 데이터 경로에 있는 다음 스위치에 포워드하는 것을 예시하며, 여기에서 QRsv 요청은 또한 도 6에 도시된 바와 같이 처리될 것이다. 프로세스는 그런 다음 블록(614)에서 블록(620)으로 진행한다.
블록(620)은 스위치가 QRsv 요청을 수신받은 요청 스테이션에 요청된 QRsv의 허가를 확인해주는 QRsv 확인(confirmation)을 보내는 것을 도시한다. QRsv 확인은 바람직하게는 데이터 플로우를 위해 예약된 데이터 전송속도와, QRsv 하에서 송신될 수 있는 데이터의 총 허용 볼륨, 및/또는 예약의 지속시간을 나타낸다. 블록(622)에서 표시된 바와 같이, 데이터 플로우를 포함하는 데이터 프레임들을 송신하는 동안, 스위치는 소스 스테이션과 재협상함으로써 데이터 플로우를 위한 QRsv를 선택적으로 증가 또는 감소시킬 수 있다. 스위치는 QRsv에 의해 예약된 대역폭을 예를 들어 적어도 부분적으로 데이터 플로우의 실제 데이터 전송속도에 기초하여 조정하고, 다른 데이터 플로우들에 의해 예약된 대역폭을 조정하고, 그리고/또는 용량의 부족으로 스위치에 의해 거부된 QRsv 요청들을 조정할 수 있다. 블록(624)에서, 스위치는 QRsv에 대한 종료 타이머가 종료되었는지 아닌지 또는 QRsv 하에서 송신된 데이터의 총 허용 볼륨이 소진되었는지를 결정한다. 만일 종료되거나 소진되지 않았다면, 프로세스는 선택적 블록(622)로 돌아가며, 이 블록은 이미 기술되었다. 그러나 호스트가 블록(624)에서 QRsv가 종료되었거나 또는 소진되었다고 결정하면, 스위치는 예약 테이블(430)으로부터 QRsv에 대한 예약 테이블 엔트리(442)를 제거하고(블록 626), 프로세스는 앞에서 기술된 블록(602)로 돌아가며, 요청이 있을 경우 스위치는 데이터 플로우를 위한 QRsv를 갱신(renew)할 수 있음을 표시한다.
이제 도 7을 참조하면, 일 실시 예에 따라서 호스트와 스위치 사이 그리고 스위치들 사이의 계층 2 QRsv 통신을 구현하기 위해 이용될 수 있는, IEEE 802.1AB에 의해 정의되는 바와 같은 LLDP 프레임(또한 LLDP 데이터 유닛(LLPDDU)으로 불림)(700)이 도시된다. 도시된 실시 예에서, LLDP 프레임(700)은 프리앰블 필드(700)과 그 다음에 오는 목적지 MAC 주소 필드(702)를 포함한다. 호스트가 (자진해서 또는 구현 제약조건 때문에) 소스 스테이션에 가장 인접한 스위치에만 QRsv를 요청하는 경우에, 목적지 MAC 주소 필드(702)는 바람직하게는 가장 가까운 브릿지의 디폴트 주소(즉, 01:80:C2:00:00:0E)를 명시한다. 호스트가 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 모든 스위치들에 QRsv의 설정을 요청하는 경우에, 목적지 MAC 주소 필드(702)는 바람직하게는 데이터 플로우가 보내질 목적지 스테이션의 목적지 MAC 주소를 표시한다.
LLDP 프레임(700)은 소스 스테이션의 MAC 주소를 식별하는 소스 MAC 주소 필드(704)와, LLDP를 위해 할당된 이더타입(Ethertype)(즉, 0x88CC)을 보유하는 이더타입 필드(704), 및 (LLDP 하에서) 세 가지의 의무적인(mandatory) 섀시(Chassis) ID TLV(Type, Length, 및 Value) 필드(706), 포트(Port) ID TLV 필드(708) 및 TTL(Time-to-Live) TLV 필드(710)을 추가로 포함한다. LLDP에 의해 의무화되는(mandated) TLV들 다음에 오는, 선택적 TLV 필드(712)는 도 8-10을 참조하여 아래에서 아주 더 상세하게 기술되는 바와 같이, QRsv를 요청 또는 허가/거부하는데 이용되는 QRsv-관련 TLV를 명시한다.
이제 도 8을 참조하면, 일 실시 예에 따라서 QRsv 요청 기능을 하는LLDP 데이터 프레임(700)에 담겨 호스트에 의해 스위치로 보내질 수 있는 모범 QRsv 요청 TLV(800)이 도시된다. QRsv 요청 TLV(800)은 TLV 헤더를 포함하는데, 이는 127의 값에 의해 QRsv 요청 TLV(800)이 맞춤형(custom) TLV라는 것을 표시하는 타입 필드(800)과 QRsv 요청 TLV(800)의 길이를 옥텟(octet)으로 명시하는 길이 필드(802)를 포함한다. 도시된 예에서, 길이 필드(802)는 만일 스위치가 소스 스테이션의 모든 트래픽을 단일한 통합 데이터 플로우(a single unified data flow)로서 고려해야 한다면 14 옥텟의 길이를 명시하고 만일 스위치가 소스 스테이션의 다수 데이터 플로우들 중 하나를 위하여 예약들을 독립적으로 처리해달라는 요청을 받는다면 30 옥텟의 길이를 명시한다.
QRsv 요청 TLV(800)은 TLV 정보 문자열(information string)을 추가로 포함하는데, 이는 TLV를 공표하는(promulgating) 구성(organization)을 고유하게 식별하는 구성적으로 고유한 식별자(OUI: organizationally unique identifier) 필드(804)와, TLV의 구성적으로 정의된 서브타입(organizationally defined subtype)을 표시하는 구성적으로 정의된 서브타입 필드(806), 및 구성적으로 정의된 정보 문자열(808)을 포함한다. 구성적으로 정의된 서브타입 필드(806)의 도시된 예에서, 서브타입 1은 소스 스테이션에 인접한 스위치에서만 지시받는 소스 스테이션의 단일한 통합 데이터 플로우를 위한 QRsv 요청을 위해 명시되고, 서브타입 3은 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 모든 스위치들에서 소스 스테이션의 단일한 통합 데이터 플로우를 위하여 단-대-단 QRsv를 요청하는 QRsv 요청을 위해 명시되고, 서브타입 11은 소스 스테이션에 인접한 스위치에서만 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 QRsv 요청을 위해 명시되며, 서브타입 13은 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 모든 스위치들에서 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 단-대-단 QRsv를 요청하는 QRsv 요청을 위해 명시된다. 추가로, 도시된 예에서, 구성적으로 정의된 정보 문자열(808)은 QRsv 요청 TLV(800)을 보유하는 LLDP 프레임(700)이 QRsv 요청이라는 것을 표시하고 QRsv가 요청되는 바이트들 및 프레임들의 수(즉, 트래픽 볼륨)를 명시한다. 추가로, 만일 스위치가 소스 스테이션의 다수 데이터 플로우들을 위해 QRsv들을 분리하여 처리해야 한다면, 구성적으로 정의된 정보 문자열(808)은 소스 스테이션의 다수 데이터 플로우들 중 어느 하나를 위해 QRsv가 요청되는지를 고유하게 식별한다.
이제 도 9를 참조하면, 일 실시 예에 따라서 QRsv 응답 기능을 하는 LLDP 데이터 프레임(700)에 담겨 스위치에 의해 호스트로 보내질 수 있는 모범 QRsv 응답 TLV(900)이 도시된다. 보유중인 LLDP 데이터 프레임(700)에서, 소스 및 목적지 MAC 주소 필드들 (702)와 (704)는 각각 발신 스위치(originating switch) 및 소스 스테이션의 MAC 주소를 명시한다.
QRsv 응답 TLV(900)은, TLV 헤더를 포함하는데, 이는 127의 값에 의해 QRsv 응답 TLV(900)이 맞춤형 TLV라는 것을 표시하는 타입 필드(900)과 QRsv 응답 TLV(900)의 길이를 옥텟으로 명시하는 길이 필드(902)를 포함한다. 도시된 예에서, 길이 필드(902)는 만일 QRsv 응답이 소스 스테이션에 인접한 스위치로부터 발신하여 소스 스테이션의 통합 데이터 플로우를 위한 QRsv 요청에 응답하면 18 옥텟의 길이를 명시하고, 만일 QRsv 응답이 목적지 스테이션에 인접한 원단(far end) 스위치로부터 발신하여 소스 스테이션의 통합 데이터 플로우를 위한 QRsv 요청에 응답하면 14 옥텟의 길이를 명시하고, 만일 QRsv 응답이 소스 스테이션에 인접한 스위치로부터 발신하여 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 QRsv 요청에 응답하면 32 옥텟의 길이를 명시하며, 그리고 만일 QRsv 응답이 목적지 스테이션에 인접한 원단 스위치로부터 발신하여 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 QRsv 요청에 응답하면 34 옥텟의 길이를 명시한다.
QRsv 응답 TLV(900)은 TLV 정보 문자열을 추가로 포함하는데, 이는 TLV를 공표하는 구성을 고유하게 식별하는 구성적으로 고유한 식별자(OUI) 필드(904)와, TLV의 구성적으로 정의된 서브타입을 표시하는 구성적으로 정의된 서브타입 필드(906), 및 구성적으로 정의된 정보 문자열(908)을 포함한다. 구성적으로 정의된 서브타입 필드(906)의 도시된 예에서, 만일 QRsv 응답이 소스 스테이션에 인접한 스위치에서 발신하여 소스 스테이션의 통합 데이터 플로우를 위한 QRsv 요청에 응답하면 서브타입 2가 명시되고, 만일 QRsv 응답이 목적지 스테이션에 인접한 원단 스위치에서 발신하여 소스 스테이션의 통합 데이터 플로우를 위한 QRsv 요청에 응답하면 서브타입 5가 명시되고, 만일 QRsv 응답이 소스 스테이션에 인접한 스위치에서 발신하여 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 QRsv 요청에 응답하면 서브타입 12가 명시되며, 만일 QRsv 응답이 목적지 스테이션에 인접한 원단 스위치에서 발신하여 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 QRsv 요청에 응답하면 서브타입 15가 명시된다.
도시된 예에서, 구성적으로 정의된 정보 문자열(908)은 QRsv 응답 TLV(900)을 보유하는 LLDP 프레임(700)이 QRsv 응답이라는 것을 표시하고 QRsv가 허가되는 바이트들 및 프레임들의 수(즉, 트래픽 볼륨)와 QRsv에 대한 종료 타이머 값을 명시한다. 만일 QRsv 응답 TLV(900)이 요청된 QRsv의 거부를 표시할 의도가 있다면, 구성적으로 정의된 정보 문자열(908)에 의해 명시되는 바이트들 및 프레임들은 0이 될 것이다. 추가로, 만일 스위치가 소스 스테이션의 다수 데이터 플로우들을 위한 QRsv들을 분리하여 처리해야 한다면, 구성적으로 정의된 정보 문자열(908)은 소스 스테이션의 다수 데이터 플로우들 중 어느 하나를 위해 QRsv가 허가 또는 거부되는지를 고유하게 식별한다.
이제 도 10을 참조하면, 일 실시 예에 따라서 소스 스테이션의 데이터 플로우를 위한 단-대-단(end-to-end) QRsv의 설정을 요청하기 위해 LLDP 데이터 프레임(700)에 담겨 스위치에 의해 또 다른 스위치로 포워드 될 수 있는 모범 QRsv 요청 TLV(1000)이 도시된다. QRsv 요청 TLV(1000)은 TLV 헤더를 포함하는데, 이는 127의 값에 의해 QRsv 요청 TLV(1000)이 맞춤형 TLV라는 것을 표시하는 타입 필드(1000)과 QRsv 요청 TLV(1000)의 길이를 옥텟으로 명시하는 길이 필드(1002)를 포함한다. 도시된 예에서, 길이 필드(1002)는 만일 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 스위치들이 소스 스테이션의 모든 트래픽을 단일한 통합 데이터 플로우로서 고려해야 한다면 18 옥텟의 길이를 명시하고, 만일 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 스위치들이 소스 스테이션의 다수 데이터 플로우들 중 하나를 위해 예약들을 분리하여 처리하도록 요청받으면 34 옥텟의 길이를 명시한다.
QRsv 요청 TLV(1000)은 TLV 정보 문자열을 추가로 포함하는데, 이는 TLV를 공표하는 구성을 고유하게 식별하는 구성적으로 고유한 식별자(OUI) 필드(1004)와, TLV의 구성적으로 정의된 서브타입을 표시하는 구성적으로 정의된 서브타입 필드(1006), 및 구성적으로 정의된 정보 문자열(1008)을 포함한다. 구성적으로 정의된 서브타입 필드(1006)의 도시된 예에서, 서브타입 4는 소스 스테이션의 단일한 통합 데이터 플로우를 위한 단-대-단 QRsv를 요청하는 QRsv 요청을 명시하고, 서브타입 14는 소스 스테이션의 다수 데이터 플로우들 중 하나를 위한 단-대-단 QRsv를 요청하는 QRsv 요청을 명시한다. 또한, 도시된 예에서, 구성적으로 정의된 정보 문자열(1008)은 QRsv 요청 TLV(1000)을 보유하는 LLDP 프레임(700)이 QRsv 허가임을 표시하고 QRsv가 요청되는 바이트들 및 프레임들의 수(즉, 트래픽 볼륨)와 QRsv가 제공될 지속시간을 명시한다. 만일 QRsv 요청 TLV(1000)이 포워딩 스위치(forwarding switch) 또는 프리시딩 스위치(preceding switch)에 의해, 요청된 QRsv에 대한 거부를 표시할 의도라면, 구성적으로 정의된 정보 문자열(1008)에 의해 명시되는 바이트들 및 프레임들은 0이 될 것이다. 추가로, 만일 스위치가 소스 스테이션의 다수 데이터 플로우들을 위한 QRsv들을 분리하여 처리해야 한다면, 구성적으로 정의된 정보 문자열(1008)은 소스 스테이션의 다수 데이터 플로우들 중 어느 하나를 위해 QRsv가 허가 또는 거부되는지를 고유하게 식별한다.
이제 도 11을 참조하면, 일 실시 예에 따라서 계층 2에서 QRsv의 설정과 이용의 한 예를 도시하는 시-공간 다이어그램이 도시된다. 도시된 예에서, 호스트(1110)은 데이터 프레임들을 다수의 계층 2 스위치들(1102)를 경유하여 목적지 스테이션(1104)로 송신하려고 한다. 스위치들(1102a-1102n)은 적어도 소스 스테이션/호스트에 가장 인접한 근단(near end) 스위치(1102a)와 목적지 스테이션(1104)에 가장 인접한 원단(far end) 스위치(1102n)를 포함한다.
프로세스는 호스트(1100)에서 소스 스테이션(예를 들어, 네트워크 어댑터, 네트워크 어댑터의 드라이버, 운영체제 또는 VMM과 같은 컨트롤 프로그램, 가상 머신 또는 애플리케이션 프로그램)이 QRsv 요청, 예를 들어, QRsv 요청 TLV(800)을 보유하는 LLDP(700)을 송신하는 것으로 시작한다. 전술된 바와 같이, QRsv 요청(1110)은 호스트(1100)에 가장 인접한 스위치(1102a)에 QRsv를 요청하거나 또는 호스트(1100)과 목적지 스테이션(1104) 사이의 모든 스위치들(1102a-1102n)에 단-대-단 QRsv를 요청할 수 있다.
만일 QRsv 요청(1110)이 스위치(1102a)에만 QRsv를 요청하면, 스위치(1102a)는 QRsv 요청(1110)에 QRsv 응답(1116)(예를 들어, QRsv 응답(900)을 갖는 LLDP(700))으로, 요청된 QRsv를 허가 또는 거부하는 응답을 한다. 반면에, 만일 QRsv 요청(1110)이 호스트(1100)과 목적지 스테이션(1104) 사이의 데이터 경로에 있는 모든 스위치들(1102a-1102n)에 단-대-단 QRsv를 요청하면, QRsv 요청(1112)(예를 들어, QRsv 요청 TLV(1000)을 포함하는 LLDP(700))는 스위치(1102n)에 도달할 때까지 스위치(1102a)와 후속 스위치들(1102)에 의해 포워드된다. 이 경우에, 스위치(1102n)은 QRsv 요청(1112)에 QRsv 응답(1114)(예를 들어, 적절하게 구성된 QRsv 응답 TLV(900)을 포함하는 LLDP(700))로 응답하며, 상기 QRsv 응답(1114)는 스위치들(1102n-1102a)에 의해 포워드되어 QRsv 응답(1116)으로서 호스트(1100)에 제공된다.
호스트(1100)은 그 다음으로 데이터 플로우의 데이터 프레임들(1118)을 스위치들(1102a-1102n)을 경유하여 목적지 스테이션(1104)에 송신한다. QRsv 요청이 허가되었다고 가정하면, 적어도 스위치(1102a)(와 어떤 경우들엔, 모든 스위치들(1102a-1102n))는 최대한 QRsv에서 약정된 데이터 전송속도, 데이터 량 및 지속시간 파라미터들까지 보장된 서비스를 데이터 플로우 내 데이터 프레임들에 제공한다. 그러므로, 만일 예를 들어 스위치(1102a)가 호스트(1100)이 예약을 한 포트에서 그 예약이 액티브인 동안에 인그레스 큐 오버런 조건을 경험한다면, 스위치(1102a)는 데이터 프레임들(1118)을 보존하고 호스트(1100)의 예약을 이행하기 위해 다른 프레임들을 폐기할 것이다. QRsv의 소진 또는 종료에 뒤이어, 호스트(1100)은, QRsv 요청(1124)에 의해 표시되는 바와 같이, 데이터 플로우를 위한 QRsv를 다시 요청할 수 있다.
기술된 바와 같이, 일부 실시 예들에서, 네트워크 스위치는, 소스 스테이션으로부터 계층 2 예약 요청을 수신하는 것에 응답하여, 소스 스테이션의 데이터 플로우를 위한 네트워크 스위치의 인그레스 큐의 용량 예약을 설정한다. 예약이 액티브인 동안에 네트워크 스위치의 인그레스 큐에서의 큐 오버런 조건에 응답하여, 네트워크 스위치는 예약에 따라서 송신된 소스 스테이션의 데이터 플로우 내 데이터 프레임들을 보존하고 다른 프레임들을 폐기하며, 그렇게 함으로써 소스 스테이션은 인그레스 큐 오버런 조건에도 불구하고 자신의 데이터 플로우를 위해 네트워크 스위치에 의해, 보장된 포워딩을 누린다. 여러 실시 예들에서, 예약은 소스 스테이션이 복수의 데이터 플로우들을 위해 설정하는 복수의 예약들 중 하나일 수 있다. 또한, 예약은 소스 스테이션과 목적지 스테이션 사이의 데이터 경로에 있는 복수의 스위치들 각각에 요청되고 설정될 수 있다.
본 발명이 하나 또는 그 이상의 바람직한 실시 예들을 참조하여 기술된 바와 같이 구체적으로 도시되었지만, 이 기술분야에서 통상의 기술을 가진 자들은 본 발명의 정신과 범위에서 벗어남이 없이도 형태와 세부사항에서 여러 가지 변경이 이루어질 수 있다는 것을 이해할 수 있을 것이다. 예를 들면, 실시 예들이 여기에서 기술된 펑션들을 지시하는 프로그램 코드(예를 들어, 소프트웨어, 펌웨어 또는 이들을 조합한 것)를 실행하는 호스트들과 네트워크 스위치들에 관하여 기술되었지만, 실시 예들은 머신에 의해 처리되어 그 머신이 하나 또는 그 이상의 기술된 펑션들을 수행하게 할 수 있는 프로그램 코드를 저장하는 유형의(tangible) 머신-판독가능 스토리지 매체 또는 스토리지 디바이스(예를 들어, 광 스토리지 매체, 메모리 스토리지 매체, 디스크 스토리지 매체 등)을 포함하는 프로그램 제품으로서 구현될 수도 있다는 것을 이해해야 한다. 또한, 본 발명은 물리적 네트워크 스위치 내 계층 2에서 인그레스 큐 용량의 예약을 참조하여 기술되었지만, 예시된 프로세스들은 도 3의 VS(332)와 같은 가상 스위치 내 인그레스 큐 용량의 예약에도 동일하게 적용될 수 있다는 것을 이해할 수 있다.

Claims (31)

  1. 데이터 처리 방법에 있어서, 상기 방법은:
    소스 스테이션으로부터 LLDP(Link Layer Discovery Protocol) 프레임에 명시된 계층 2 예약 요청을 수신하는 단계;
    상기 소스 스테이션으로부터 상기 계층 2 예약 요청을 수신하는 것에 응답하여, 물리적 플랫폼에 구현된 네트워크 스위치가 상기 소스 스테이션의 데이터 플로우를 위해 상기 네트워크 스위치의 인그레스 큐(an ingress queue)의 용량에 대한 예약을 설정하는 단계; 및
    상기 예약이 액티브인 동안 상기 네트워크 스위치의 상기 인그레스 큐에서의 큐 오버런 조건에 응답하여, 상기 네트워크 스위치가 상기 예약에 따라서 송신된 상기 소스 스테이션의 데이터 플로우 내 데이터 프레임들을 보존하고, 다른 데이터 프레임들(other data frames)을 폐기하는 단계;를 포함하는
    데이터 처리 방법.
  2. 제1항에 있어서,
    상기 데이터 플로우는 상기 소스 스테이션의 복수의 데이터 플로우들 중 하나와 연관되고; 그리고
    상기 예약을 설정하는 단계는, 상기 소스 스테이션의 상기 복수의 데이터 플로우들의 각각에 대한 복수의 예약들 각각을 설정하는 단계를 포함하는,
    방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 스위치에서, 상기 스위치는:
    복수의 인그레스 큐들 각각을 각각의 포트가 포함하는 복수의 포트들;
    상기 복수의 포트들 사이에서 데이터 프레임들을 스위칭하는 크로스바; 및
    소스 스테이션으로부터 LLDP(Link Layer Discovery Protocol) 프레임의 페이로드에 명시된 계층 2 예약 요청 -상기 계층 2 예약 요청은 상기 예약에 따라 전송될 총 허용 데이터 볼륨(total permissible data volume)을 표시함- 을 수신하는 것에 응답하여, 상기 소스 스테이션에 의해 송신되는 상기 총 허용 데이터 볼륨만큼의 데이터 플로우에 대해 상기 복수의 인그레스 큐들 중 하나의 용량에 대한 예약을 설정하는 스위치 컨트롤러;를 포함하고,
    상기 예약이 액티브인 동안 상기 스위치의 인그레스 큐에서의 큐 오버런 조건(queue overrun condition)에 응답하여, 상기 스위치는 상기 예약에 따라서 송신된 상기 소스 스테이션의 데이터 플로우 내 데이터 프레임들을 보존하고 다른 데이터 프레임들(other data frames)은 폐기하고,
    상기 예약에 따라 상기 소스 스테이션으로부터 상기 총 허용 데이터 볼륨을 수신하는 것에 응답하여, 상기 스위치 컨트롤러는 상기 복수의 인그레스 큐들 중 하나의 용량에 대한 상기 예약을 상기 스위치로부터 제거하는,
    스위치.
  13. 제12항에 있어서,
    상기 데이터 플로우는 상기 소스 스테이션의 복수의 데이터 플로우들 중 하나와 연관되고; 그리고
    상기 스위치 컨트롤러는 상기 소스 스테이션의 상기 복수의 데이터 플로우들의 각각에 대한 복수의 예약들 각각을 설정하는
    스위치.
  14. 제12항에 있어서,
    상기 데이터 플로우는 목적지 스테이션으로 주소지정 되고,
    상기 스위치는 상기 소스 스테이션과 상기 목적지 스테이션 사이의 데이터 경로에 있는 복수의 스위치들 중 하나이고, 그리고
    상기 스위치는 상기 소스 스테이션에 더 인접한 또 다른 스위치로부터 상기 계층 2 예약 요청을 수신하는
    스위치.
  15. 삭제
  16. 삭제
  17. 제12항에 있어서, 상기 스위치 컨트롤러는 자신이 상기 예약을 기록하는 연관된 예약 데이터 스트럭처를 포함하는
    스위치.
  18. 제12항에 있어서, 상기 스위치 컨트롤러는 타이머의 종료에 응답하여 상기 예약을 제거하는
    스위치.
  19. 삭제
  20. 삭제
  21. 시스템에 있어서, 상기 시스템은:
    상기 청구항 제12항의 스위치; 및
    데이터 링크에 의해 상기 스위치에 결합된 데이터 처리 시스템;을 포함하되, 상기 데이터 처리 시스템은:
    프로세서;
    상기 프로세서에 결합된 데이터 스토리지; 및
    소스 스테이션;을 포함하고, 상기 소스 스테이션은 상기 데이터 처리 시스템 내에 배치되고 상기 계층 2 예약 요청을 상기 스위치에 송신하여, 상기 소스 스테이션에 의해 송신되는 데이터 플로우를 위한 상기 스위치의 인그레스 큐의 용량에 대하여 예약을 요청하며, 상기 소스 스테이션은, 상기 예약의 허가에 응답하여, 예약된 용량에 따라서 상기 데이터 플로우의 데이터 프레임들을 상기 스위치에 송신하며, 그렇게 함으로써 상기 데이터 처리 시스템은 상기 스위치에 의한 상기 데이터 프레임들의 보장된 포워딩을 획득하는
    시스템.
  22. 데이터 처리 시스템에 있어서, 상기 데이터 처리 시스템은:
    프로세서;
    상기 프로세서에 결합된 데이터 스토리지; 및
    상기 데이터 처리 시스템 내의 소스 스테이션;을 포함하고,
    상기 소스 스테이션은 계층 2 예약 요청을 네트워크 스위치에 송신하여, 상기 소스 스테이션에 의해 전송되는 데이터 플로우를 위하여 상기 네트워크 스위치의 인그레스 큐의 용량에 대하여 예약을 요청하고, 여기서 상기 계층 2 예약 요청은 상기 예약에 따라 전송될 총 허용 데이터 볼륨(total permissible data volume)을 표시하며,
    상기 소스 스테이션은, 상기 예약의 허가에 응답하여, 상기 예약된 용량에 따라서 그리고 상기 총 허용 데이터 볼륨의 적용을 받는 상기 데이터 플로우의 데이터 프레임들을 상기 네트워크 스위치에 송신하고, 그렇게 함으로써 상기 데이터 처리 시스템은 상기 네트워크 스위치에 의해 상기 데이터 프레임들의 보장된 포워딩을 획득하는
    데이터 처리 시스템.
  23. 컴퓨터 판독가능 스토리지 매체에 있어서,
    상기 컴퓨터 판독가능 스토리지 매체는 컴퓨터 프로그램을 포함하고,
    상기 컴퓨터 프로그램은, 컴퓨터에 의해서 실행될 때, 아래의 단계들을 수행함으로써 컴퓨터가 계층 2 스위치를 구현하도록 하는 컴퓨터 프로그램 코드들을 포함하고, 상기 단계들은:
    소스 스테이션으로부터 LLDP(Link Layer Discovery Protocol) 프레임의 페이로드에 명시된 계층 2 예약 요청 -상기 계층 2 예약 요청은 상기 예약에 따라 전송될 총 허용 데이터 볼륨(total permissible data volume)을 표시함- 을 수신하는 것에 응답하여, 상기 소스 스테이션에 의해 송신되는 상기 총 허용 데이터 볼륨만큼의 데이터 플로우에 대해 상기 계층 2 스위치의 복수의 인그레스 큐들 중 하나의 용량에 대한 예약을 설정하는 단계;
    상기 예약이 액티브인 동안 상기 계층 2 스위치의 상기 인그레스 큐에서의 큐 오버런 조건(queue overrun condition)에 응답하여, 상기 예약에 따라서 송신된 상기 소스 스테이션의 데이터 플로우 내 데이터 프레임들을 보존하고 다른 데이터 프레임들(other data frames)은 폐기하는 단계; 및
    상기 예약에 따라 상기 소스 스테이션으로부터 상기 총 허용 데이터 볼륨을 수신하는 것에 응답하여, 상기 인그레스의 용량에 대한 상기 예약을 상기 계층 2 스위치로부터 제거하는 단계;를 포함하는
    컴퓨터 판독가능 스토리지 매체.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020137018931A 2011-03-09 2012-02-15 스위치 큐 용량의 링크 계층 예약 KR101455017B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/043,798 2011-03-09
US13/043,798 US9007909B2 (en) 2011-03-09 2011-03-09 Link layer reservation of switch queue capacity
PCT/IB2012/050689 WO2012120388A1 (en) 2011-03-09 2012-02-15 Link layer reservation of switch queue capacity

Publications (2)

Publication Number Publication Date
KR20130128440A KR20130128440A (ko) 2013-11-26
KR101455017B1 true KR101455017B1 (ko) 2014-10-28

Family

ID=46795510

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137018931A KR101455017B1 (ko) 2011-03-09 2012-02-15 스위치 큐 용량의 링크 계층 예약

Country Status (9)

Country Link
US (2) US9007909B2 (ko)
JP (1) JP5497246B2 (ko)
KR (1) KR101455017B1 (ko)
CN (1) CN103404094B (ko)
CA (1) CA2819209C (ko)
DE (1) DE112012000393B4 (ko)
GB (1) GB2502235B (ko)
TW (1) TWI538437B (ko)
WO (1) WO2012120388A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5377399B2 (ja) * 2010-04-09 2013-12-25 株式会社日立製作所 フレーム転送装置及びフレーム転送方法
CN102143066B (zh) * 2011-02-17 2014-12-24 华为技术有限公司 建立标签交换路径的方法、节点设备和系统
US9338077B1 (en) * 2011-09-13 2016-05-10 Amazon Technologies, Inc. Address resolution in unnumbered pseudo-point-to-point network
US9485188B2 (en) * 2013-02-01 2016-11-01 International Business Machines Corporation Virtual switching based flow control
CN104009937B (zh) * 2013-02-22 2018-03-02 中兴通讯股份有限公司 一种增强型传输选择标准配置信息传输方法及装置
CN103152239A (zh) * 2013-02-25 2013-06-12 汉柏科技有限公司 一种基于Open VSwitch的虚拟网络实现方法和系统
US9288135B2 (en) 2013-12-13 2016-03-15 International Business Machines Corporation Managing data flows in software-defined network using network interface card
US9979668B2 (en) * 2014-12-22 2018-05-22 Intel Corporation Combined guaranteed throughput and best effort network-on-chip
US10417029B2 (en) * 2015-08-03 2019-09-17 Hewlett Packard Enterprise Development Lp Virtual machine migration
US9979693B2 (en) * 2016-01-28 2018-05-22 Fiber Logic Communications, Inc. IP allocation method for use in telecommunication network automatic construction
DE112017003501T5 (de) * 2016-07-11 2019-03-28 Harmonic, Inc. Scheduling von downstream-datenverkehr einer virtuellen ccap
CN110519333B (zh) * 2019-07-31 2022-04-22 苏州浪潮智能科技有限公司 数据传输的方法及装置
US11218394B1 (en) 2019-09-30 2022-01-04 Amazon Technologies, Inc. Dynamic modifications to directional capacity of networking device interfaces
US11528187B1 (en) 2019-09-30 2022-12-13 Amazon Technologies, Inc. Dynamically configurable networking device interfaces for directional capacity modifications
US11831553B2 (en) * 2021-07-16 2023-11-28 Nokia Solutions And Networks Oy Distinguishing traffic-engineered packets and non-traffic-engineered packets
CN113568303B (zh) * 2021-09-26 2021-12-14 成都数默科技有限公司 一种基于pid控制算法的网络流量抓包限流丢包方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745246B1 (en) * 2000-01-28 2004-06-01 Advanced Micro Devices, Inc. Apparatus and method in a network switch for modifying a bandwidth request between a requestor and a router
US20070201499A1 (en) * 2006-02-24 2007-08-30 Texas Instruments Incorporated Device, system and/or method for managing packet congestion in a packet switching network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3622312B2 (ja) * 1996-01-29 2005-02-23 株式会社日立製作所 パケット交換機およびセル転送制御方法
JP4454072B2 (ja) * 1999-08-03 2010-04-21 富士通株式会社 IP通信ネットワークシステム及びQoS保証装置
CN100363909C (zh) * 1999-10-20 2008-01-23 阿尔卡塔尔公司 QoS提供方法和数据通信交换机
US6961318B2 (en) * 2000-05-12 2005-11-01 International Business Machines Corporation Data transmission system for reserving a virtual connection over multiple IP networks by means of a reservation
JP3934915B2 (ja) 2000-11-24 2007-06-20 松下電器産業株式会社 フロー制御装置及び方法
CN1788500A (zh) * 2003-05-14 2006-06-14 皇家飞利浦电子股份有限公司 时分多路复用电路交换路由器
KR100603567B1 (ko) 2004-09-02 2006-07-24 삼성전자주식회사 스위치에서의 대역폭 예약을 통한 QoS 보장 방법 및 그시스템
DE102004047349A1 (de) * 2004-09-29 2006-04-06 Infineon Technologies Ag Datensicherungsschicht-Protokolleinheit, Mobilfunkeinrichtungen, Mobilfunknetzwerk-Kontrolleinheit und Verfahren zum Auslesen von Daten aus einer Mehrzahl von Datensicherungsschicht-Protokoll-Pufferspeichern
JP2007274467A (ja) 2006-03-31 2007-10-18 Nec Corp ネットワーク中継装置、ネットワークシステム、データ中継方法及びデータ中継プログラム
TWI340578B (en) * 2006-12-10 2011-04-11 Cameo Communications Inc A method for anti-rogue connection in a network system
US8619603B2 (en) * 2009-06-04 2013-12-31 Broadcom Corporation Method and system for end-to-end management of energy efficient networking protocols
ATE546915T1 (de) 2008-01-24 2012-03-15 Mitsubishi Electric Corp Bandgarantie-kommunikationssystem
US8385202B2 (en) 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
CN101741678B (zh) * 2008-11-26 2012-02-29 华为技术有限公司 一种建立虚拟局域网连接的方法、设备与系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745246B1 (en) * 2000-01-28 2004-06-01 Advanced Micro Devices, Inc. Apparatus and method in a network switch for modifying a bandwidth request between a requestor and a router
US20070201499A1 (en) * 2006-02-24 2007-08-30 Texas Instruments Incorporated Device, system and/or method for managing packet congestion in a packet switching network

Also Published As

Publication number Publication date
US9007909B2 (en) 2015-04-14
GB2502235A (en) 2013-11-20
US20120230196A1 (en) 2012-09-13
CA2819209A1 (en) 2012-09-13
JP2014502469A (ja) 2014-01-30
JP5497246B2 (ja) 2014-05-21
DE112012000393B4 (de) 2016-09-29
GB201316080D0 (en) 2013-10-23
US20120230192A1 (en) 2012-09-13
CN103404094A (zh) 2013-11-20
TW201251374A (en) 2012-12-16
CA2819209C (en) 2021-01-19
WO2012120388A1 (en) 2012-09-13
US8917594B2 (en) 2014-12-23
DE112012000393T5 (de) 2013-10-10
TWI538437B (zh) 2016-06-11
GB2502235B (en) 2014-04-02
CN103404094B (zh) 2016-05-04
KR20130128440A (ko) 2013-11-26

Similar Documents

Publication Publication Date Title
KR101455017B1 (ko) 스위치 큐 용량의 링크 계층 예약
US9473414B2 (en) Method and system for supporting packet prioritization at a data network
US9071529B2 (en) Method and apparatus for accelerating forwarding in software-defined networks
US9025451B2 (en) Positive feedback ethernet link flow control for promoting lossless ethernet
JP5497244B2 (ja) スイッチング・ネットワークにおいてフロー制御を実施するための方法、マスタ・スイッチ、スイッチング・ネットワーク、プログラム、装置、システム
US8503307B2 (en) Distributing decision making in a centralized flow routing system
WO2019166081A1 (en) Transparent integration of 3gpp network into tsn based industrial network
US8942094B2 (en) Credit-based network congestion management
WO2013181940A1 (zh) 一种数据流调度的方法、设备和系统
EP2345016B1 (en) Method and apparatus for reflecting forwarding plane utilization in a control plane
JP5065269B2 (ja) ローカル・エリア・ネットワーク管理
Kotani et al. Packet-in message control for reducing cpu load and control traffic in openflow switches
US6707799B1 (en) Dynamic control protocol for frame relay fragmentation in support of real-time applications such as VOIP and VOFR
RU2589867C2 (ru) Устройство связи, устройство управления, система связи, способ связи, способ управления устройством связи и программа
EP2809038A1 (en) Communication controller, information processing apparatus, storage apparatus, method of controlling communications, and communication control program
WO2015032260A1 (zh) 路由更新方法和路由设备
Bangash et al. Incast mitigation in a data center storage cluster through a dynamic fair-share buffer policy
US20240080275A1 (en) Method and apparatus for quality of service assurance for webrtc sessions in 5g networks
CN117793015A (zh) 专线网络的限速处理方法及装置、存储介质、电子设备
JP2013110665A (ja) バッファ装置、通信装置およびフレーム送信方法
JP2004260696A (ja) フレーム転送ネットワーク

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
FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190927

Year of fee payment: 6