[Network] Packet flow in a router

kihongsi·2023년 3월 28일
0

network

목록 보기
1/2

패킷이 라우터로 들어오게 되면, Data Plane 영역에서는 여러 과정을 통해 해당 패킷이 어디에서 어디로 이동해야 하는지를 결정한다.

Ingress packet processing

  1. Input Network Interface
    Input interface를 통해 IP 패킷이 들어오면 인터페이스는 다음과 같은 역할을 수행한다.
    a) Interprets the Ethernet header
    b) Detect frame boundaries
    c) Identifies the starting point of the IP packet
    d) L2 processing logic

    • L2 헤더 제거 후 packet context에 L2 정보 추가(src, dst의 MAC 주소 등)
    • L2 헤더가 제거된 payload를 L3 processing logic으로 전송
      e) L3 processing logic
    • IP 헤더 유효성 검증
    • IP 헤더 정보(DA, SA, protocol type, DSCP bits, type of load(TCP or UDP) 등을 추출해 packet context에 추가
  2. 만들어진 Packet context를 Forwarding Engine에 전송

  3. 포워딩 엔진은 포워딩 테이블을 통해 next-hop을 결정(outgoing port 등)

  4. 이 과정에서 L3 process logic은 Buffer Memory에 잠시 IP 패킷을 저장해 놓는다.

  5. 포워딩 엔진이 next-hop을 결정하면 버퍼 메모리에 저장된 패킷에 해당 packet context를 결합해 Backplane Interface로 전송한다.

  6. 백플레인은 이 packet context를 읽고 알맞은 egress card로 보내준다. (이 때 패킷의 우선순위가 영향을 미친다)

Egress Packet Processing

  1. egress line card의 백플레인 인터페이스는 패킷을 수신한 후 line card memory에 저장한다.

  2. Packet context는 새로운 메모리 주소를 할당받은 후 Queue Manager로 보내진다.

    • 이 때 queue manager은 패킷 우선순위를 통해 패킷을 해당하는 큐로 보내준다.
    • 여기서 scheduling algorithm가 사용된다.(to choose next packet to be transmitted)
  3. 전송될 패킷이 스케쥴링 되면 Traffic Manager가 트래픽을 파악하여 send, delay, drop 여부를 결정해준다.

  4. packet context가 egress network interface로 도착하고, 메모리에서 해당하는 packet을 retrieve한다.

    • 이후 L3 processing logic이 TTL과 checksum을 업데이트 해준다.
    • L2 processing logic은 제거했던 L2 헤더를 붙여준다.
  5. 전송!

0개의 댓글