이 문서에서는 패킷의 수명을 설명합니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.라이브 네트워크에서 작업하는 경우, 사용하기 전에 모든 명령의 잠재적인 영향을 이해해야 합니다.
문서 표기 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
Cisco 로우엔드 라우터에는 1xxx, 25xx, 26xx, 3600, 3800, 4000, 4500 및 4700 시리즈가 포함됩니다.이러한 라우터를 사용하면 다른 사용자가 유선 상에서 메시지를 전송하고 다른 시스템의 컨트롤러가 메시지를 수신합니다.대부분의 시스템에서 이 컨트롤러는 패킷을 버퍼 메모리에 직접 저장합니다.메시지가 완전히 수신되면 컨트롤러는 인그레스 드라이버가 찾을 수 있도록 일부 포인터 정보를 저장한 다음 수신 인터럽트를 표시합니다.
참고: 컨트롤러에 메시지를 저장할 버퍼가 없는 경우 이 시점에서 "ignore"를 로깅하고 메시지를 수신하지 않습니다.
향후 어느 시점에서는 일반적으로 마이크로초로 측정되며 드라이버가 활성화됩니다.드라이버는 먼저 전송 대기열을 확인하고 나중에 수신 대기열을 확인합니다.지금은 수신 대기열 처리에 초점을 맞추도록 하겠습니다.드라이버는 큐의 필요한 부분을 확인하고, 메시지가 있는지 확인하고, 큐에서 메시지를 제거하고, 컨트롤러의 수신 버퍼 목록을 보충합니다.그런 다음 IP 또는 IPX(Internet Packet Exchange)와 같은 전달자가 메시지를 전달할지 결정합니다.
이 설명을 위해 IP 메시지라고 가정합니다.드라이버는 구성된 IP 빠른 경로에 IP 메시지를 전달하려고 합니다.먼저 메시지에서 링크 레이어 헤더를 제거한 다음 인그레스 인터페이스에서 빠른 경로가 구성되었는지 여부를 결정합니다.구성된 패킷이 없으면 패킷이 "입력 보류 대기열"에 배치되고 카운터가 검사됩니다.카운터가 0이면 "입력 보류 큐"가 모두 사용되고 패킷이 삭제됩니다.카운터가 0이 아니면 감소되고 메시지가 프로세스 경로에 대기열에 추가됩니다.
참고: "입력 보류 대기열"은 리터럴 센스의 대기열이 아닙니다.인터페이스에서 수신되고 완전히 처리되지 않은 패킷 집합입니다(메시지를 이그레스 인터페이스에 전달하거나 버퍼를 해제하여). 그러나 구성된 빠른 경로가 있고 일반적으로 있는 경우 빠른 경로로 메시지가 전달됩니다.
빠른 경로가 이제 메시지를 확인하고 일부 기능을 라우팅되지 않은 메시지에 적용합니다.이 단계에는 암호 해독 또는 압축 해제 또는 둘 다(필요한 경우), NAT(Network Addresses Translation) 수행, CAR(Input Committed Access Rate) 테스트 적용, 정책 라우팅 테스트 적용 등이 포함됩니다.
정책 라우팅이 사용되는 경우 실제로 이그레스 인터페이스를 선택합니다.정책 라우팅이 사용되지 않는 경우 다음 단계는 "패킷 스위칭"이라는 프로세스인 경로 캐시에서 대상 주소를 찾는 것입니다. 빠른 스위칭 모드에 따라 해당 캐시의 구조와 내용이 달라집니다.표준 고속 스위칭에서 캐시는 최근에 사용된 대상 접두사 경로 또는 대상 호스트 경로를 포함하며 경우에 따라 캐시 항목이 없는 경우도 있습니다.이 경우 메시지가 프로세스 수준으로 이동되고 다시 "입력 보류 대기열"으로 표시됩니다. Cisco Express Forwarding 스위칭에서 캐시(FIB 또는 Forwarding Information Base)는 완전한 경로 테이블이므로 프로세스가 발생하지 않습니다.
경로가 발견되면 경로 캐시 항목(또는 Cisco Express Forwarding에서 호출되는 "인접성")은 출력 소프트웨어, 하드웨어 인터페이스 및 메시지에 배치할 헤더(다음 관련 hop)를 나타냅니다. 멀티플렉싱 인터페이스의 경우, 이는 다음으로 관련된 가상 회로 또는 가상 채널입니다.
이 소프트웨어 인터페이스에는 여러 가지 문제가 적용될 수 있습니다.예를 들어, 인터페이스가 메시지 크기보다 작은 MTU(Maximum Transmission Unit)로 구성되었을 수 있습니다.빠른 경로에 프래그먼트가 없으므로 이 특정 이벤트는 프로세스 레벨로 "bump"할 이유가 됩니다.또한 NAT 처리, 출력 CAR 등을 위해 인터페이스를 구성할 수 있습니다.메시지 처리 단계에서 이러한 기능이 적용됩니다.마지막으로 출력 인터페이스의 링크 레이어 헤더가 메시지에 첨부되고 출력 드라이버에 전달됩니다.
다음 단계를 수행하는 드라이버의 빠른 전송 루틴에 메시지가 표시됩니다.
드라이버에서 "메시지를 전송하기 전에 새 버퍼에 복사해야 합니까?"와 같은 여러 가지 질문을 합니다.
트래픽 셰이핑이 활성 상태인지 여부를 결정합니다.트래픽 셰이핑이 활성 상태이면 메시지 도착 속도를 지정된 메시지 클래스의 메시지 전송 속도와 비교합니다.하위 인터페이스에서 쉐이핑 대기열이 형성되거나 큐가 존재하지 않지만 속도가 초과된 경우 소프트웨어 인터페이스의 대기열에 메시지가 배치됩니다.
트래픽 셰이핑이 활성 상태가 아니거나, 이 메시지에 적용되지 않거나, 속도가 초과되지 않은 경우, 이제 드라이버에서 출력 컨트롤러의 전송 큐의 깊이가 tx-queue-limit보다 낮은지 여부를 묻습니다.제한 이하일 경우, 드라이버는 전송에 대한 메시지를 대기열만 합니다.이 경로 뒤에 오는 메시지는 입력 시 고속 전환되고 빠른 켜기 출력이 발생한 것으로 간주됩니다.
그러나 빠르게 전환할 수 없는 경우 드라이버는 일반적으로 "출력 보류 대기열"이라고 하는 소프트웨어 대기열로 메시지를 전환합니다. 이러한 보류 대기열의 예로는 First In, First Out (FIFO) queuing, Priority Queuing, Custom Queuing, WFQ(Weighted Fair Queuing)가 있습니다.
이 메시지는 프로세스 경로를 따르는 메시지의 목적지이므로 이러한 메시지는 입력 시 빠른 전환 및 프로세스 전환 출력으로 간주됩니다.실제로 프로세스 스위칭은 아니었습니다.패킷이 빠른 경로에서 전환되었을 때 스위칭 결정이 내려졌습니다.그러나 메시지가 프로세스 경로와 공유되는 대기열로 전환되었습니다.메시지가 보류 대기열에서 제거되어 전송 컨트롤러로 대기열에 추가되면 나중에 프로세스 전환 상태로 간주됩니다.
프로세스 전환은 빠른 경로에서 메시지를 전송할 수 없을 때 발생하는 작업입니다.이는 메시지가 이 시스템으로 전송되었으며 라우팅 프로세스, 링크 유지 관리 프로세스, 네트워크 관리 프로세스 등에 의해 사용된다는 의미입니다.그러나 일부 트래픽은 실제로 LFI(Link Fragmentation and Interleaving)를 사용하여 점보그램의 세그먼트 간에 음성을 인터리빙하는 트래픽, X.25 트래픽, 프래그먼트화가 필요한 트래픽, 빠른 경로 경로 항목이 없는 트래픽 등 프로세스 경로를 통해 이동합니다.프로세스 경로의 처리는 빠른 경로와 개념적으로 동일하지만 여러 가지 이유로 구현이 다릅니다.출력 시 "입력 보류 대기열" 플래그가 지워지고 입력 인터페이스의 카운터가 증가하며(입력 보류 대기열에서 메시지 제거) 메시지가 출력 보류 대기열로 대기열에 추가됩니다.그런 다음 인터럽트가 시뮬레이션되어 출력 인터페이스에서 메시지 전송을 트리거할 수 있습니다.프로세스 오버헤드로 인해 고속 스위칭보다 속도가 느립니다.이러한 메시지가 수신될 때 다른 프로세스가 실행 중일 수 있으며, 처리해야 할 데이터 구조가 더 복잡할 수도 있습니다.