패킷 처리

Packet processing

디지털 통신망에서 패킷 처리는 통신망의 다양한 네트워크 요소를 통해 이동하면서 데이터나 정보의 패킷에 적용되는 매우 다양한 알고리즘을 가리킨다.네트워크 인터페이스의 성능이 향상됨에 따라, 패킷 처리 속도를 높일 필요가 있다.[1]

제어면데이터면의 표준화된 네트워크 분할에 부합하는 두 가지 종류의 패킷 처리 알고리즘이 있다.알고리즘은 다음 중 하나에 적용된다.

  • 패킷을 출발지에서 목적지로 안전하고 효율적으로 전송하는 데 사용되는 패킷에 포함된 제어 정보
또는
  • 일부 컨텐츠별 변환을 제공하거나 컨텐츠 중심 작업을 수행하는 데 사용되는 패킷의 데이터 컨텐츠(종종 페이로드라고 함)

어떤 네트워크 지원 장치(: 라우터, 스위치, 네트워크 요소 또는 컴퓨터나 스마트폰과 같은 단말기) 내에서 그것은 하위, 물리적 및 네트워크 계층에서 애플리케이션 계층까지 다층 네트워크 또는 프로토콜 스택의 횡단을 관리하는 패킷 처리 하위 시스템이다.

역사

패킷 처리의 역사는 인터넷패킷 교환의 역사다.패킷 처리 이정표에는 다음이 포함된다.

기록 참조 및 시간 표시 막대는 아래의 외부 리소스 섹션에서 확인할 수 있다.

통신 모델

네트워크가 성공하기 위해서는 네트워크 시스템의 아키텍처를 정의하는 통일된 표준이 필요하다.그러한 표준의 근본적인 요건은 전 세계의 하드웨어와 소프트웨어 제조업체들이 함께 작동할 네트워킹 기술을 개발하고 네트워크 상태를 진전시키기 위해 그들의 누적 투자 능력을 활용할 수 있는 프레임워크를 제공하는 것이다.

1970년대 국제표준화기구[2](ISO)와 국제전신전화협의위원회[3](CCITT, 현재 국제전기통신연합(ITU-T)로 불리는 두 기관이 각각 국제네트워킹표준 개발을 목표로 사업을 시작했다.1983년에 이러한 노력이 병합되었고 1984년에 개방형 시스템 상호연결을 위한 기본 참조 모델이라고 불리는 표준이 ISO에 의해,[4] 그리고 ITU-T에 의해 표준 X.200으로[5] 발표되었다.

OSI 모델은 네트워크 운영 체제의 작동 방식을 설명하는 7계층 모델이다[6].레이어드 모델은 다른 모델에 영향을 주지 않고 한 레이어를 변경할 수 있는 기능과 네트워크 OS의 작동 방식을 이해하는 모델로서 많은 이점을[7] 가지고 있다.층간 상호 접속이 유지되는 한, 벤더는 다른 층에 영향을 주지 않고 개별 층의 구현을 강화할 수 있다.

OSI 모델의 개발과 병행하여 미국 국방고등연구계획국[8](DARPA)에 의해 연구망이 구현되고 있었다.ARPAnet이라고 불리는 네트워크를 지원하기 위해 개발된 인터넷 작업 프로토콜은 TCP 또는 전송 제어 프로그램이라고 불렸다.[9]연구 개발이 진전되고 네트워크의 규모가 커짐에 따라, 이용되고 있는 인터넷 작업 설계가 다루기 어려워지고 있으며 OSI 모델의 층화된 접근법을 정확히 따르지 않는 것으로 판단되었다.이로 인해 원래의 TCP가 분할되고 TCP/IP 아키텍처가[10] 생성되었다 - TCP는 현재 전송 제어 프로토콜과 인터넷 프로토콜의 IP 서열로 서 있다.

패킷 처리의 도래

패킷 네트워크는[11] 1960년대 초반에 통신 네트워크를 더 신뢰할 수 있게 만들 필요가 있었기 때문에 생겨났다.패킷 구조를 이용한 레이어드 모델의 구현으로 볼 수 있다.

초기 상용 네트워크는 음성 통신에 사용되는 전용 아날로그 회로로 구성되었다.패킷 교환의 개념은 네트워크 전체의 장비 장애에도 불구하고 계속 기능할 통신 네트워크를 만들기 위해 도입되었다.이 패러다임 변화에서 네트워크는 출발지에서 목적지까지 원하는 수의 경로로 작동하는 작은 패킷의 데이터를 전송하는 시스템의 모음으로 간주된다.초기 패킷 처리 기능은 네트워크를 통한 패킷 라우팅, 전송 오류 감지수정, 기타 네트워크 관리 기능을 지원했다.

패킷 처리 기능을 지원하는 패킷 교환은 기존의 회선 교환 네트워크에 비해 몇 가지 실질적인 이점이 있다.[12]

  • 다중 데이터 유형(음성, 데이터, 비디오 등)을 지원하는 올디지털 환경은 사용자의 삶을 풍요롭게 했을 뿐만 아니라,[13][14] 이전에는 서로 다른 데이터 유형을 지원하기 위해 서로 다른 네트워크를 구현해야 했던 네트워크 제공자의 효율성을 크게 높였다.
  • 동일한 물리적 링크를 사용하는 여러 '논리적 회로'를 통해 대역폭 활용률 향상
  • 출발지에서 목적지까지 네트워크를 통한 여러 경로로 인한 통신 지속 가능성
  • 부가 가치 정보 서비스는 패킷 처리 기능을 이용하여 필요한 처리를 제공할 수 있다.

패킷 구조

네트워크 패킷은 패킷 교환 네트워크를 위한 기본 구성 블록이다.[15]파일, 이메일 메시지, 음성 또는 비디오 스트림과 같은 항목이 네트워크를 통해 전송될 때, 하나의 큰 데이터 블록보다 네트워크를 통해 더 효율적으로 이동될 수 있는 패킷이라고 불리는 청크로 깨진다.수많은 표준이[16] 패킷의 구조에 적용되지만, 일반적으로 패킷은 다음과 같은 세 가지 요소로 구성된다.

  • 헤더 – 오리진, 목적지, 길이 및 패킷 번호를 포함한 패킷에 대한 정보를 포함한다.
  • 페이로드(또는 본문) – 패킷을 구성하는 데이터 포함
  • 트레일러 – 패킷의 끝을 나타내며 오류 감지 및 수정 정보를 자주 포함

패킷 교환 네트워크에서 송신 호스트 컴퓨터는 원래의 항목을 패킷으로 처리하고 각 패킷은 네트워크를 통해 그것의 목적지로 라우팅된다.일부 네트워크는 고정 길이 패킷(일반적으로 1024비트)을 사용하는 반면, 다른 네트워크는 가변 길이 패킷을 사용하고 패킷 길이를 헤더에 포함시켰다.

개별 패킷은 목적지에 대한 다른 경로를 취하여 목적지에 도착하지 않을 수 있다.대상 컴퓨터는 (트레일러의 정보를 사용하여) 각 패킷의 데이터의 정확성을 확인하고, 헤더에 있는 패킷 번호 정보를 이용하여 원래의 아이템을 재조립하여 수신 애플리케이션이나 사용자에게 아이템을 제시한다.

이 기본 예는 패킷 처리, 라우팅 및 조립이라는 세 가지 가장 기본적인 패킷 처리 기능을 포함한다.패킷 처리 기능은 단순한 것에서부터 매우 복잡한 것까지 다양하다.예를 들어, 라우팅 기능은 실제로 다양한 최적화 알고리즘과 테이블 조회를 포함하는 다단계 프로세스다[17].인터넷의 기본적인 라우팅 기능은 다음과 같다.

1. 목적지가 이 컴퓨터의 주소 '소유자'인지 확인하십시오.그렇다면 패킷을 처리하십시오.그렇지 않은 경우:
a. IP Forwarding이 'Yes'로 설정되어 있는지 확인하십시오.그렇지 않으면 패킷이 파괴된다.그렇다면, 그렇다면
i. 이 컴퓨터에 연결된 네트워크에 대상 주소가 있는지 확인하십시오.예인 경우 해당 네트워크로 패킷을 라우트하십시오.만약 안된다면, 그러면
1. 목적지 네트워크로 가는 루트가 있는지 확인한다.예인 경우 패킷을 다음 홉 게이트웨이로 라우팅하십시오.그렇지 않으면 패킷을 파괴하십시오.

보다 고급화된 라우팅 기능에는 네트워크 부하 분산[18] 가장 빠른 경로 알고리즘이 포함된다.[19]이러한 예는 가능한 패킷 처리 알고리즘의 범위와 그것들이 항목의 전송에 상당한 지연을[20] 도입할 수 있는 방법을 예시한다.네트워크 장비 설계자는 네트워크 지연 시간을 최소화하기 위해 하드웨어와 소프트웨어 가속기의 조합을 자주 사용한다.

네트워크 장비 아키텍처

IP 기반 장비는 데이터 평면, 제어면, 관리면의 세 가지 기본 요소로 분할할 수 있다.[21]

데이터 평면

데이터 평면은 인터페이스로부터 패킷을 수신하여 송신하고, 적용 가능한 프로토콜에서 요구하는 대로 처리하며, 적절하게 패킷을 전달, 삭제 또는 전달하는 네트워크 노드의 서브시스템이다.

제어면

제어면은 데이터 평면에서 사용되는 데이터를 변경하는데 사용할 수 있는 정보를 유지한다.이 정보를 유지하려면 복잡한 신호 프로토콜을 처리해야 한다.데이터 평면에서 이러한 프로토콜을 구현하면 전달 성능이 저하될 수 있다.이러한 프로토콜을 관리하는 일반적인 방법은 데이터 평면이 수신 신호 패킷을 감지하여 제어 평면으로 로컬로 전달하도록 하는 것이다.제어부 신호 프로토콜은 데이터 평면 정보를 업데이트하고 송신 신호 패킷을 데이터 평면에 주입할 수 있다.이 구조는 신호 트래픽이 글로벌 트래픽에서 매우 작은 부분이기 때문에 작동한다.

관리 평면

관리 기준면은 전체 시스템에 관리 인터페이스를 제공한다.여기에는 다음과 같은 운영 관리, 관리 또는 구성/프로비저닝 작업을 지원하는 프로세스가 포함되어 있다.

  • 통계 수집 및 집계를 지원하기 위한 시설,
  • 관리 프로토콜 구현 지원,
  • 명령줄 인터페이스, 웹 페이지 또는 기존 SNMP(Simple Network Management Protocol) 관리를 통한 그래픽 사용자 구성 인터페이스.

XML(eXtensible Markup Language) 기반의 보다 정교한 솔루션도 포함될 수 있다.

패킷 처리 응용[22] 프로그램의 목록은 보통 두 가지 범주로 나뉜다.다음은 오늘날 사용되는 다양성을 설명하기 위해 선택된 몇 가지 예들이다.

응용 프로그램 제어

  • 라우터의 기본 작동인 전달
  • 암호화/암호 해독, 암호화 알고리즘을 이용한 페이로드의 정보 보호
  • QOS(Quality of Service) - 패킷의 클래스에 따라 우선순위 또는 전문화된 서비스를 제공하는 등 패킷을 다르게 처리

데이터 응용 프로그램

  • 특정 비디오 인코딩을 대상에서 사용하는 특정 인코딩으로 변환하는 트랜스코딩
  • 대상 장치에 적합한 이미지 크기 및 밀도 변환 [23]및 전송
  • 데이터베이스 패턴(이미지 또는 음성 인식)과 일치하는 특정 패턴(이미지 또는 음성)의 탐지(일치 발생 시 일부 참석자 조치 수행)
  • 고급 애플리케이션에는 보안(호출 모니터링데이터 유출 방지), 표적 광고, 계층화된 서비스, 저작권 집행 및 네트워크 사용 통계 등의 영역이 포함된다.이러한 애플리케이션과 다른 많은 콘텐츠 인식 애플리케이션은 DPI(Deep Packet Inspection) 기술을 사용하여 패킷 페이로드 내에 포함된 특정 인텔리전스를 식별할 수 있는 능력에 기초한다.

패킷 처리 아키텍처

패킷 교환은[24] 또한 구조적인 타협을 불러온다.정보 전송에서 패킷 처리 기능을 수행하면 수행 중인 애플리케이션에 해가 될 수 있는 지연이 발생한다.예를 들어, 음성 및 비디오 애플리케이션에서, 네트워크에 의해 도입된 지연과 함께 아날로그-디지털에서 다시 목적지에서의 필요한 변환은 사용자에게 지장을 주는 눈에 띄는 격차를 야기할 수 있다.지연 시간은 복잡한 시스템에서 경험하는 시간 지연의 척도다.

패킷 처리에 대한 다중 아키텍처 접근방식은 특정 네트워크의 성능 및 기능 요구사항을 해결하고 지연 시간 문제를 해결하기 위해 개발되었다[25].

단일 스레드 아키텍처(표준 운영 체제)

표준 네트워킹 스택은 단일 프로세서(단일 스레드)에서 실행되는 운영 체제(OS)가 제공하는 서비스를 사용한다.단일 스레드 아키텍처는 구현이 가장 간단하지만 선점, 스레드 관리, 타이머, 잠금 등 OS 기능의 성능과 관련된 오버헤드를 받는다.이러한 OS 처리 오버헤드는 시스템을 통과하는 각 패킷에 부과되어 처리량 페널티가 발생한다.

멀티스레드 아키텍처(멀티 프로세싱 운영 체제)

SMP(대칭적 다중 처리) 플랫폼 또는 멀티코어 프로세서 아키텍처의 사용을 통해 프로토콜 스택 프로세싱 소프트웨어를 조정하여 다중 프로세서(멀티스레드)를 지원함으로써 OS 네트워킹 스택에 대한 성능 향상이 이루어질 수 있다.적은 수의 프로세서에 대해 성능 증가는 실현되지만,[26] 더 많은 프로세서(또는 코어)에 걸쳐 선형적으로 확장되지 못하며, 예를 들어, 8개의 코어가 있는 프로세서가 2개의 코어를 가진 프로세서에 비해 패킷을 상당히 빠르게 처리하지 못할 수 있다.

빠른 경로 아키텍처(운영 체제 바이패스)

빠른 경로 구현에서 데이터 평면은 두 개의 계층으로 분할된다.일반적으로 빠른 경로라고 불리는 하위 계층은 OS 환경 외부에서 들어오는 대부분의 패킷을 처리하고 전체 성능을 저하시키는 OS 오버헤드를 발생시키지 않는다.복잡한 처리가 필요한 패킷만 OS 네트워킹 스택(데이터 평면의 상위 계층)으로 전달되어 필요한 관리, 신호, 제어 기능을 수행한다.라우팅이나 보안과 같은 복잡한 알고리즘이 필요할 때 OS 네트워킹 스택은 제어면의 전용 소프트웨어 구성요소에 패킷을 포워드 한다.

멀티코어 프로세서는 빠른 경로 구현에 추가적인 성능 향상을 제공할 수 있다.[27]전체 시스템 처리량을 최대화하기 위해 여러 코어를 고속 경로 실행에 전용할 수 있는 반면 운영 체제, OS 네트워킹 스택, 애플리케이션 제어부 실행에는 하나의 코어만 필요하다.

플랫폼을 구성할 때 유일한 제한사항은 빠른 경로를 실행하는 코어가 OS 외부에서 실행되기 때문에 다른 소프트웨어와 공유되지 않고 고속 경로에만 전용되어야 한다는 것이다.트래픽 패턴이 변화함에 따라 시스템을 동적으로 재구성할 수도 있다.데이터 평면을 두 개의 계층으로 분할하는 것도 시스템 일관성을 보장하기 위해 두 계층이 동일한 정보를 가져야 하기 때문에 복잡성을 가중시킨다.

패킷 처리 기술

전문화된 패킷 처리 플랫폼을 만들기 위해 다양한 기술이 개발되고 배치되었다.하드웨어와 소프트웨어의 폭을 아우르는 이들 기술은 모두 속도와 처리량을 극대화하는 동시에 지연 시간을 최소화하는 것을 목적으로 설계되었다.

네트워크 프로세서

네트워크 프로세서 유닛(NPU)은 대부분의 컴퓨터에 전원을 공급하는 범용 프로세서(GPP)와 여러 면에서 유사하지만 네트워크 중심 운영에 맞춘 내부 아키텍처와 기능을 갖추고 있다.NPU는 일반적으로 주소 검색, 패턴 일치 및 대기열 관리와 같은 네트워크별 기능을 마이크로코드에 내장하고 있다.보안이나 침입 탐지 같은 상위 수준의 패킷 처리 작업은 NPU 아키텍처에 내장되는 경우가 많다.[28]네트워크 프로세서의 예는 다음과 같다.

멀티코어 프로세서

멀티코어 프로세서는 코어가 2개 이상인 단일 반도체 패키지로, 각각 개별 처리 단위를 나타내며 코드를 병렬로 실행할 수 있다.Intel Xeon[29] 같은 범용 CPU는 현재 최대 8개의 코어를 지원한다.일부 멀티코어 프로세서는 전용 패킷 처리 기능을 통합하여 완전한 SoC(System on Chip)를 제공한다.이들은 일반적으로 이더넷 인터페이스, 암호화 엔진, 패턴 매칭 엔진, QoS용 하드웨어 대기열 및 마이크로코어를 사용하는 보다 정교한 기능을 통합한다.이 모든 하드웨어 기능은 소프트웨어 패킷 처리를 오프로드할 수 있다.카비움 OCTEON II와 같은 이러한 특화된 멀티코어 패키지의 최근 예는 2개에서 32개까지의 코어까지 지원할 수 있다.

하드웨어 가속기

명확하게 정의 가능하고 반복적인 작업의 경우, 반도체 하드웨어 솔루션에 직접 내장된 전용 가속기를 만들면 범용 프로세서에서 실행되는 소프트웨어에 비해 작동 속도가 빨라진다.[30]초기 구현에서는 FPGA(현장 프로그래밍 가능한 게이트 어레이)나 ASIC(응용프로그램별 집적회로)를 사용했지만, 현재는 암호화와 압축과 같은 특정 기능이 내부 하드웨어 가속기로 GPP와 NPU에 모두 내장되어 있다.네트워크별 하드웨어 가속기가 탑재된 현재의 멀티코어 프로세서 예로는 보안을 위한 가속이 가능한 Cavium CN63xx, TCP/IP, QOS 및 HFA 패턴 매칭[31], 네트워킹 및 보안 가속 엔진이 탑재된 Netlogic Micro시스템s XFS 프로세서 제품군이 있다.[32]

심층 패킷 검사

개별 패킷의 내용에 따라 의사결정을 내릴 수 있게 되면 PCRF(Policy Chargeing and Rule Functions)와 QoS(Quality of Service)와 같은 다양한 새로운 애플리케이션이 가능해진다.패킷 처리 시스템은 DPI([33]Deep Packet Inspection) 기술을 이용하여 특정 트래픽 유형을 분리한다.DPI 기술은 패턴 매칭 알고리즘을 활용해 데이터 페이로드 내부를 살펴 네트워크 장치를 통해 흐르는 각 패킷의 내용을 파악한다.성공적인 패턴 일치를 제어 애플리케이션에 보고하여 적절한 추가 조치를 취한다.

패킷 처리 소프트웨어

운영 체제 소프트웨어에는 단일 및 다중 코어 환경 모두에서 작동하는 특정 표준 네트워크 스택이 포함될 것이다.[34]운영체제 바이패스(패스트 경로) 아키텍처를 구현할 수 있으려면 6WIND의 6WINDGATE와 같은 전문 패킷 처리 소프트웨어를 사용해야 한다.이러한 유형의 소프트웨어는 여러 블레이드, 프로세서 또는 코어에 걸쳐 분산되고 적절하게 확장할 수 있는 네트워킹 프로토콜 제품군을 제공한다.

참조

  1. ^ D. Cerovich, V. Del Piccolo, A.아마모우, K.하다두와 G.Pujolle, Fast Packet Processing: IEEE 통신 조사 및 자습서, vol. 20, 4, 페이지 3645-3676, 2018년 4분기. doi: 10.1109/COMST.2018.2851072
  2. ^ 국제표준화기구
  3. ^ 국제전기통신연합)
  4. ^ ISO/IEC 10731:1994.정보 기술 - 개방 시스템 상호접속 - 기본 참조 모델 - OSI 서비스의 정의를 위한 규약
  5. ^ ITU-T X.200-199407, X.200 : 정보 기술 - 오픈 시스템 상호접속 - 기본 참조 모델: 기본 모델
  6. ^ 테크-FAQ.OSI 모델 – 무엇이 중요한가; 왜 그것이 중요한가; 상관없는 이유
  7. ^ 컴퓨터 네트워킹 참고 사항.OSI 7 레이어 모델의 장점
  8. ^ "DARPA - Defense Advanced Research Projects Agency". Archived from the original on 2020-01-15. Retrieved 2012-01-05.
  9. ^ 살아있는 인터넷.ARPANET - 최초의 인터넷
  10. ^ W3 학교, TCP/IP 튜토리얼
  11. ^ 쉘든, 톰.패킷패킷 처리 네트워크.2001년 연결고리.
  12. ^ 코프랜드, 리QuickStudy: 패킷 교환 vs. 회로 교환식 네트워크.컴퓨터월드, 2000년 3월
  13. ^ 네그로폰테, N. Being Digital.빈티지, 1996년 1월.
  14. ^ 레딩, 비비안디지털 컨버전스: 완전히 새로운 삶의 방식.2006년 5월 디지털 라이프스타일 전시회.
  15. ^ 피터슨, L., 데이비, B.컴퓨터 네트워크(5판):시스템 접근 방식.모곤 카우프만, 2011년 3월
  16. ^ RFC 소스북.IP, 인터넷 프로토콜.
  17. ^ Streenstrip, 통신 네트워크의 M. Routing.프렌티스 홀, 1995년 4월.
  18. ^ Anderson, P.와 James, L. Performance의 특징은 다양하다 - 검토: Load Balancers.1999년 6월 NetworkWorldFusion.
  19. ^ 머시, S.경로 찾기 알고리즘을 사용한 패킷 교환 네트워크 라우팅.UC 산타 크루즈, 1996년
  20. ^ 메릴랜드의 U.S.소개, 속도지연 시간.2009
  21. ^ Nokia Communications Framework Guide.비행기란 무엇인가?2010년 2월
  22. ^ Vin, H. 패킷 처리 응용 프로그램: 개요.2003년 가을 텍사스 주의 유니브.
  23. ^ Reddy, M. Video Transcoding & Transrating - 31가지 맛의 비디오!벨라, 2011년 9월
  24. ^ 엘하나니, 아이. 함디, 엠.고성능 패킷 교환 아키텍처.스프링거, 2011년 11월
  25. ^ Selissen, M. 패킷 처리 요구 아키텍처, 네트워크 사이에서 균형 잡힌 필요.2002년 8월 EE 타임즈.
  26. ^ 푸옹, A, 풍, J, 뉴웰, D.향상된 Linux SMP 스케일링: 사용자 지향 프로세서 선호도.인텔 소프트웨어 네트워크, 2008년 10월.
  27. ^ CDC Innovation. 6WIND는 새로운 멀티코어 Intel® 플랫폼에서 패킷 처리 기능의 10배 가속화를 제공한다.2010년 3월
  28. ^ NetLogic Micro시스템s.고급 알고리즘 지식 기반 프로세서.
  29. ^ Intel® 멀티코어 프로세서를 통한 패킷 처리.2008.
  30. ^ 치어리더, R.고성능 WAN 최적화 시스템의 아키텍처 비교.인피네타, 추기경 지시 2011년 3월
  31. ^ Cavium. OCTEON II CN63XX 멀티코어 MIPS64 인터넷 애플리케이션 프로세서
  32. ^ NetLogic Micro시스템s. 멀티코어 프로세서 솔루션
  33. ^ dpacket.org Deep Packet Inspection/Processing 소개
  34. ^ 멀티코어 패킷 처리 포럼

외부 링크