출고면

Forwarding plane
Cisco VIP 2-40(구세대 라우터).
하이엔드 Cisco 12000 시리즈의 퍼포먼스루트 프로세서

라우팅에서는 전송 플레인(데이터 플레인 또는 사용자 플레인이라고도 함)은 착신 인터페이스에 착신하는 패킷의 처리를 결정하는 라우터 아키텍처의 일부를 정의합니다.일반적으로, 라우터가 착신 패킷의 행선지 주소를 검색해, 수신 요소로부터, 라우터의 내부 전송 패브릭을 경유해, 적절한 발신 인터페이스에의 패스를 판별하기 위해서 필요한 정보를 취득하는 테이블을 참조합니다.

경우에 따라서는, 테이블이 패킷을 폐기하는 것을 지정하는 경우가 있습니다.이 경우 라우터는 ICMP의 "destination unreachable" 또는 기타 적절한 코드를 반환할 수 있습니다.단, 일부 보안 정책에서는 잠재적인 공격자가 타깃이 보호되고 있음을 인식하지 않도록 라우터가 패킷을 사일런트 폐기하도록 지시하고 있습니다.

착신 전송 요소도 패킷의 Time-to-Live(TTL; 존속가능시간) 필드를 줄여 새로운 값이 0일 경우 패킷을 폐기합니다.Internet Protocol(IP) 사양에서는 Internet Control Message Protocol(ICMP) time exceeded 메시지가 패킷의 발신자(즉, 송신원주소로 나타나는 노드)에 송신되는 것을 나타내고 있습니다만, 라우터는 패킷을 사일런트하게 드롭 하도록(시큐러티 정책에 따라서) 설정되어 있는 경우가 있습니다.

특정 라우터의 실장에 따라서는, 행선지 주소가 검색되는 테이블은, 라우팅 테이블(Routing Information Base(RIB; 라우팅 정보 베이스)라고도 불린다) 또는 라우팅 컨트롤 플레인에 의해서 읽혀지는(즉, 로드된) 개별의 Forwarding Information Base(FIB; 전송 정보 베이스)가 됩니다만, 포워딩 플레인이 검색용으로 많이 사용됩니다.gher 속도.수신처를 조사하기 전 또는 후에, 송신원주소, IP 프로토콜 식별자 필드, Transmission Control Protocol(TCP) 또는 User Datagram Protocol(UDP) 포트 번호등의 다른 특성에 근거해 패킷을 드롭 하는 결정을 하기 위해서, 다른 테이블을 참조할 수 있습니다.

전달 플레인 함수는 전달 [1]요소에서 실행됩니다.고성능 라우터에는 분산형 포워딩 요소가 여러 개 있기 때문에 병렬 처리를 통해 라우터의 퍼포먼스가 향상됩니다.

발신 인터페이스는 패킷을 적절한 데이터 링크 프로토콜로 캡슐화합니다.라우터 소프트웨어와 그 설정에 따라서는, 통상, 발신 인터페이스에 실장되는 함수에 의해서, 다양한 패킷필드가 설정되는 경우가 있습니다.예를 들어, Differentiated 서비스에 의해서 사용되는 DSCP 필드 등입니다.

일반적으로 입력 인터페이스에서 출력 인터페이스로의 직접 경로를 출력 인터페이스에서 최소한의 변경으로 패브릭을 통과하는 경로를 라우터의 고속 경로라고 합니다.패킷이 세그멘테이션이나 암호화 등 중요한 처리를 필요로 하는 경우, 패킷은 저속 패스(라우터의 서비스 플레인이라고도 불립니다)로 이행할 수 있습니다.서비스 플레인은 패킷payload에 포함되는 Web URL 등의 상위 레이어 정보에 근거해 전송 또는 처리를 결정할 수 있습니다.

라우터 전송 성능 문제

벤더는 특정 시장을 위한 라우터 제품을 설계합니다.가정용으로 설계된 라우터의 설계(아마도 여러 대의 PC와 VoIP 텔레포니를 지원)는 비용을 가능한 한 낮게 유지함으로써 이루어집니다.이러한 라우터에는 별도의 전송 패브릭이 없으며 액티브한 전송 패스는 메인프로세서에 대한 경로와 메인프로세서에 대한 경로뿐입니다.

요구가 까다로운 애플리케이션용 라우터는 전송 플레인에서 높은 throughput을 얻기 위해 비용과 복잡성이 높아집니다.

라우터 포워딩 퍼포먼스에 영향을 주는 설계 요인은 다음과 같습니다.

  • 데이터 링크층 패킷 처리 및 추출
  • 패킷 헤더의 디코딩
  • 패킷 헤더에서 수신처 주소 검색
  • 패킷의 다른 필드 분석
  • 입력 인터페이스와 출력 인터페이스를 상호 접속하는 "패브릭"을 통한 패킷 전송
  • 출력 인터페이스에서의 처리 및 데이터 링크 캡슐화

라우터에는 1개 이상의 프로세서가 탑재되어 있을 수 있습니다.단일 프로세서 설계에서는 이러한 성능 파라미터는 프로세서 속도뿐만 아니라 프로세서의 경쟁에 의해 영향을 받습니다.고성능 라우터에는 범용 프로세서칩 또는 특수 Application-Specific Integrated Circuit(ASIC; 특정 용도용 집적회로)가 반드시 여러 개의 처리 요소가 있습니다.

고성능 제품은 각 인터페이스 카드에 여러 개의 처리 요소를 갖추고 있습니다.이러한 설계에서는 메인 프로세서는 전송에는 관여하지 않고 컨트롤 플레인 및 관리 처리에만 관여합니다.

벤치마크 퍼포먼스

인터넷 엔지니어링 태스크포스(Internet Engineering Task Force)에서는 운영 및 유지보수 영역의 2개 작업 그룹이 성능 측면에 대해 다룹니다.IPPM(Interprovider Performance Measurement) 그룹은 이름에서 알 수 있듯이 서비스의 운용 측정에 초점을 맞추고 있습니다.단일 라우터 또는 좁게 정의된 라우터의 시스템에서의 퍼포먼스 측정은 Benchmarking Working Group(BMWG; 벤치마킹작업그룹)

RFC 2544는 BMWG의 주요 [2]문서입니다.기존의 RFC 2544 벤치마크에서는 정의된 부하 입력에 라우터의 절반(즉 테스트 대상 디바이스(DUT) 포트)을 사용하여 출력이 출력 포트로 표시되는 시간을 측정합니다.

출고정보기반설계

당초, 모든 행선지는 RIB 로 검색되고 있었습니다.라우터를 고속화하기 위한 첫 번째 단계는 메인메모리에 개별 RIB와 FIB를 설치하는 것입니다.일반적으로 RIB보다 엔트리가 적은 FIB는 고속 행선지 검색을 위해 편성됩니다.대조적으로, RIB는 라우팅 프로토콜을 통해 효율적인 업데이트를 위해 최적화되었습니다.

초기 유니프로세싱 라우터는 보통 FIB를 해시 테이블로 편성했지만 RIB는 링크 리스트일 수 있습니다.실장에 따라서는 FIB의 엔트리가 RIB보다 적거나 같은 수가 될 수 있습니다.

라우터가 개별 전송 프로세서를 탑재하기 시작했을 때, 통상, 이러한 프로세서는 메인 프로세서보다 메모리 용량이 훨씬 적기 때문에, 전송 프로세서는 가장 빈번하게 사용되는 루트만을 보유할 수 있었습니다.예를 들어 초기 Cisco AGS+ 및 7000에서는 전송 프로세서캐시에 약 1000개의 루트엔트리를 저장할 수 있었습니다.기업에서는, 서버나 그 외의 일반적인 행선지 서브넷의 수가 1000 미만이기 때문에, 이 방법이 유효하게 기능하는 경우가 많습니다.그러나 이러한 캐시는 일반적인 인터넷 라우팅에 비해 너무 작았습니다.수신처가 캐시에 없는 경우, 라우터 설계에 따라 동작이 다릅니다.

캐시 누락 문제

캐시 미스 상태에 의해 패킷이 메인프로세서로 반송되어 완전한 라우팅 테이블에 액세스 할 수 있는 저속 경로로 조회될 수 있습니다.라우터의 설계에 따라서는 캐시 미스에 의해 메인메모리의 고속 하드웨어 캐시 또는 고속 캐시가 갱신될 수 있습니다.일부 설계에서는 캐시 누락에 대한 고속 캐시를 무효화하고 캐시 누락의 원인이 된 패킷을 메인 프로세서를 통해 전송한 다음 누락의 원인이 된 수신처를 포함하는 새 테이블을 캐시에 다시 채우는 것이 가장 효율적이었습니다.이 방법은 가상 메모리가 있는 운영 체제와 비슷하며, 이 운영 체제는 가장 최근에 사용한 정보를 물리적 메모리에 유지합니다.

메모리 비용이 낮아지고 퍼포먼스 요구가 높아짐에 따라 RIB와 같은 수의 루트엔트리를 가지면서도 고속 업데이트가 아닌 고속 검색을 위해 배치된 FIB가 등장했습니다.RIB 엔트리가 변경될 때마다 라우터는 대응하는 FIB 엔트리를 변경합니다.

FIB 설계 대안

고성능 FIB는 특수한 알고리즘과 하드웨어의 구현 고유의 조합을 통해 속도를 달성합니다.

소프트웨어

FIB 검색에는 다양한 검색 알고리즘이 사용되고 있습니다.해시 테이블과 같은 잘 알려진 범용 데이터 구조가 처음 사용되었지만, IP 주소에 최적화된 특수 알고리즘이 등장했습니다.다음과 같은 것이 있습니다.

멀티코어 CPU 아키텍처는 고성능 네트워크 시스템을 구현하기 위해 일반적으로 사용됩니다.이러한 플랫폼은 시스템 스루풋을 최대화하기 위해 전용 코어의 고속 경로 환경 내에서 고성능 패킷 처리를 수행하는 소프트웨어 아키텍처를 쉽게 사용할 수 있습니다.완료까지의 실행 모델은 OS의 오버헤드와 [4]레이텐시를 최소화합니다.

하드웨어

검색 속도를 높이기 위해 다양한 형태의 고속 RAM과 최종적으로는 기본 Content-Addressable Memory(CAM; 콘텐츠 주소 지정 가능 메모리)가 사용되었습니다.CAM은 비교적 적은 수의 고정 길이의 MAC 주소를 검색할 필요가 있는 레이어2 스위치에서는 유용하지만 가변 길이의 라우팅 프레픽스를 가진 IP 주소의 유틸리티는 한정되어 있습니다(「클래스리스 도메인간 라우팅」을 참조).Ternary CAM(CAM)은 비용이 많이 들지만 가변 길이의 프리픽스 [5]검색에 적합합니다.

Forwarder 룩업 설계의 과제 중 하나는 필요한 특수 메모리의 양을 최소화하고 메모리의 [6]소비전력을 최소화하는 것입니다.

분산 전송

라우터를 고속화하기 위한 다음 단계는 메인 프로세서와 다른 전용 포워딩 프로세서를 설치하는 것이었습니다.아직 단일 경로가 존재하지만, 전송은 더 이상 단일 프로세서에서 제어와 경쟁할 필요가 없었습니다.고속 라우팅 프로세서는 일반적으로 하드웨어 메모리(SRAM 등)가 메인 메모리 내의 FIB보다 빠르고 비용이 많이 드는 작은 FIB를 가지고 있었습니다.메인 메모리는 일반적으로 Dynamic Random-Access Memory(DRAM; 다이내믹랜덤 액세스 메모리)였습니다.

조기 분산 전송

다음으로 라우터는 고속 공유[7] 버스 또는 공유 [8]메모리를 통해 통신하는 여러 전송 요소를 갖추기 시작했습니다.시스코에서는 포화 상태가 될 때까지 공유 버스를 사용했지만 Juniper는 공유 메모리를 [9]선호했습니다.

각 전송 요소에는 고유의 FIB가 있습니다.예를 들어 Cisco 7500의[10] Versatile Interface Processor를 참조해 주세요.

결국 공유자원은 병목현상이 되어 공유버스 속도의 제한은 약 200만 패킷/초(Mpps)가 되었습니다.크로스바 직물은 이 병목현상을 타파했다.

공유 경로가 병목현상이 되다

전송 대역폭이 증가함에 따라 캐시 누락 오버헤드가 제거되더라도 공유 경로는 스루풋을 제한했습니다.라우터에 16개의 포워딩 엔진이 탑재되어 있는 경우, 1개의 버스가 있는 경우, 패킷 전송은 한 번에 1개만 가능했습니다.포워딩 엔진이 출력 인터페이스가 포워더 카드에 존재하는 논리 인터페이스 또는 물리 인터페이스 중 하나임을 검출하여 패킷플로우가 포워더 내부에 있는 특수한 경우가 있었습니다.그러나, 이 특별한 경우에서도, 패킷을 버스로부터 송신해, 버스로부터 수신하는 것이 종종 더 쉬웠습니다.

일부 설계는 여러 공유 버스를 실험했지만, 최종적인 접근방식은 모든 전송 엔진이 다른 모든 전송 엔진에 하드웨어 경로를 갖는 전화 스위치에서 크로스바 스위치 모델을 적용하는 것이었습니다.크로스바 전송 패브릭은 소수의 전송 엔진으로 고성능 라우팅에 실용적이고 효율적입니다.크로스바 시스템에는 Clos 네트워크와 같은 다단계 설계가 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ ForCES 프레임워크, RFC 3746, Network Working Group, 2004년4월
  2. ^ 네트워크 인터커넥트 디바이스 방법론, RFC 2544, S. Bradner & J. McQuade, 1999년 3월
  3. ^ 최장 일치 프리픽스, ID, W. Doeringer 'et al.' , IEEE/ACM Transactions on Networking, 1996년 2월
  4. ^ "6WINDGate Software Modules". 6WIND. Retrieved 14 August 2015.
  5. ^ Ternary-CAM으로의 범위분류기 효율적 매핑, IEEE 고속상호접속 심포지엄, H. Liu, 2002년 8월
  6. ^ TCAM 소비전력 절감스루풋 향상, 고속 인터커넥트에 관한 IEEE 심포지엄, R Panigrahy & S. Sharma, 2002년 8월
  7. ^ 호스트 인터페이스 피어링을 사용한 하이 퍼포먼스 IP 전송, J. Touch et al., Proc. 제9회 LANMAN(로컬 및 메트로폴리탄 에리어 네트워크) 관련 IEEE 워크숍, 1998년 5월
  8. ^ 소프트웨어 IP 라우터의 공유 메모리 멀티프로세서 아키텍처, Y. Luo병렬 및 분산 시스템에서의 IEEE 트랜잭션, 2003
  9. ^ Juniper Networks Router Architecture, Juniper Networks 레퍼런스 가이드: JUNOS Routing, Configuration, and Architecture, T.토마스, 애디슨-웨슬리 프로페셔널, 2003
  10. ^ Cisco 7500 라우터의 하드웨어 아키텍처Cisco IOS 소프트웨어 아키텍처 내부(CCIE Professional Development, V. Bollapragada 등, Cisco Press, 2000)