Sunday, July 24, 2011

Xử lý packet trong router Juniper_Packet Processing in Juniper router

Để có thể hiểu được cách mà các packets được xử lý trong router, ta cần phải biết các thành phần của PFE vì PFE là thành phần chịu trách nhiệm xử lý packet và forward chúng qua router.
+++++

Chức năng chính của PFE là cung cấp một bộ layer-2 và layer-3 switching. PFE thực hiện những chức năng này thông qua các ASIC. PFE được phân bổ thành các nhóm bao gồm một số hardware.

Các thành phần của PFE được phân thành 2 nhóm chính:

-Embedded OS software: điều hành chính các circuit boards.
-ASICs: tham gia vào việc forward các packets.

1.Embedded OS software

Tất cả các media types (fiber, coax, UTP...) yêu cầu một kết nối vật lý đến router. Physical Interface Card (PIC) là nơi đầu tiên một packet được đưa vào và cũng là nơi mà packet đi ra khỏi router.

Để tạo ra một high-thoughput router, đối với các dòng M160, M40, M20, PICs được sắp xếp vào các Flexible PIC Connectors (FPCs). Đối với các dòng router nhỏ hơn như M5, M10, FPCs được built vào Forwarding Engine Board. Nhiệm vụ chính của FPCs là nơi chứa PICs, chia sẻ bộ nhớ cho các PICs, I/O Manager ASICs, Packet Director ASICs.

Khi router boot, Embedded OS software (microcode) được download từ Routing Engine đến các CPUs trên circuit boards. Nó có khả năng vận hành các control board, FPCs, và PICs.

2.Application-Specific Intergrated Circuits

Mỗi một circuit board trong PFE chứa ít nhất 1 ASIC, một vài boards có thể chứa nhiều chips. Các thành phần ASICs chính trong (dòng M-series) Juniper router.

2.1.PIC I/O Manager ASIC

Mỗi PIC trên router chứa một PIC I/O Manager ASIC, tùy theo kiểu của PIC mà sẽ có kiểu ASIC tương ứng và ko giống nhau giữa các PICs.

ASIC này quản lý các tác vụ liên quan đến media như kiểm tra việc đóng khung data-link, phát hiện lỗi, tạo ra các thông báo theo từng level.

Thành phần này kết nối trực tiếp đến I/O Manager ASIC trên FPC đang chứa PIC.

Tóm lại, thành phần này có nhiệm vụ nhận packet đi vào từ physical media và đặt chúng lại physical media (Input và Output).

2.2.I/O Manager ASIC

Mỗi FPC chứa một I/O manager ASIC kết nối đến cả PC I/O Manager ASIC và Distributed Buffer Manager ASIC trên control board.

Khi một packet đi vào router, thành phần này sẽ kiểm tra cả layer-2 và layer-3 headers. Nếu packet hợp lệ, ASIC gỡ bỏ layer-2 header và chia nhỏ các packets thành những cell 64 bytes được gọi là J-cell. Thành phần này sẽ gửi các J-cell đến Distributed Buffer Manager ASIC để lưu trữ vào vùng có bộ nhớ chia sẻ.
Tại phía đi ra, I/O manager sẽ queue một J-cell đặc biệt gọi là result cell. Cell này chứa thông tin về next hop cũng như thông tin queue nào lưu trữ packet bên trong. Khi router đã sẵn sàng để gửi packet ra interface, I/O manager ASIC nhận tất cả các J-cell từ nơi lưu trữ packet thông qua Distributed Buffer Manager ASIC. I/O manager ASIC sẽ tái tạo lại packet, thêm vào time-to-live trước khi đóng gói packet vào một format layer-2 hợp lý. Cuối cùng packet được gửi đến PIC I/O manager ASIC để đưa vào physical media.

Tóm lại, thành phần có nhiệm vụ là kiểm tra, lưư trữ packet đi vào. Sau đó đưa ra ngoài với các thông tin được đính vào một cách phù hợp. Packet đi ra sẽ được đưa tới thành phần PIC I/O Manager ASIC

2.3.Distributed Buffer Manager ASIC

Mỗi control board trong router chứa 2 Distributed Buffer Manager ASICs. Những ASICs này kết nối đến I/O manager ASIC trên FPC và Internet Processor ASIC nằm trên circuit board.

ASIC này đc chia thành 2 phần nhỏ là Inbound/Outbound Distributed Buffer Manager ASIC. Mỗi thành phần quản lý các J-cells đi vào và đi ra.

Cả 2 thành phần ASICs làm việc kết hợp với nhau để nhận và lưu trữ J-cells trong bộ nhớ chia sẻ. Inbound tạo ra J-cell đặc biệt gọi là notification cell. Cell này chứa thông tin từ packet như source và dest IP, source và dest port, incoming interface trong router, các thiết lập QoS, giá trị TTL của packet. ASIC sau đó gửi notification cell đến Internet Processor ASIC.

Tóm lại, ASIC này sẽ quản lý các J-cells đi ra vào router. Chứa các giá trị của packet (IP, port, QoS...) và gửi đến Internet Processor ASIC

2.4.Internet Processor ASIC

Mỗi Juniper router đều chứa một Internet Processor ASIC trong control board. Đây là thành phần chính của PFE. Đây là ASIC duy nhất truy cập đến forwarding table, thực hiện các tác vụ dò tìm route, quyết định forwarding.

Nó nhận notification cells từ Inbound Distributed Buffer Manager ASIC và đưa chúng vào result cells sau khi thực hiện việc tìm route (route lookup).

Ngoài ra, nó còn thực thi việc lọc packet như một firewall, áp dụng các policy...

Tóm lại, ASIC này là ASIC trung tâm của PFE. Nó quyết định việc dò tìm route, quyết định việc forwarding.

3.Packet Flow( Unicast packet)

Khi đã hiểu được cách tổ chức các thành phần trong PFE, ta có thể hiểu được cách thức luồng dữ liệu đi qua router như thế nào. Ở đây ta đang xét luông Unicast packet

Luồng dữ liệu đi qua router:


  1. Một data packet đi vào interface của router. PIC I/O manager ASIC kiểm tra lỗi tại link-layer.

  2. PIC I/O Manager ASIC vận chuyển data packet, thêm vào các header của layer-2 và layer-3, đưa đến I/O manager ASIC

  3. I/O manager ASIC kiểm tra việc tích hợp các layer-2 và layer-3 headers. I/O manger ASIC gỡ bỏ layer-2 header và chia nhỏ data packet thành các J-cells. Các J-cells sẽ được gửi đến Inbound Distributed Buffer Manager ASIC

  4. Inbound Distributed Buffer manager ASIC bắt đầu nhận các J-cells từ I/O manager ASIC. Notification cell được built và chuyển đến cho Internet Processor ASIC

  5. Các J-cells tạo nên data packet được lưu trữ trong một vùng nhớ chia sẻ. Mỗi FPC cung cấp từng vùng nhớ, Inbound Distributed Buffer Manager ASIC gửi các J-cells đến tất cả FPCs trong router.

  6. I/O manager ASIC trên mỗi FPC nhận các J-cells và lưu chúng trong bộ nhớ .

  7. TRong khi các J-cells đang đc lưu trong vùng nhớ chi sẻ, Internet Processor ASIC nhận notification cell và thực hiện việc dò tìm route trong forwarding table. Các thông số như next-hop, route, outgoing interface trên router được xác định. Thông tin next-hop được lư trữ trong notification cell, và bây giờ trở thành result cell.

  8. Internet Processor ASIC gửi result cell đến Outbound Distributed Buffer Manager ASIC để xem xét và xác định outgoing interface. Result cell sau đó được gửi đến FPC để queue và chờ gửi đi.

  9. I/O manager ASIC queue result cell và áp dụng các cơ chế queue phù hợp. Khi result cell đi đến đầu của queue, I/O Manager ASIC yêu cầu các J-cells từ Outbound Distributed Buffer Manager ASIC.

  10. Outbound Distributed Buffer Manager ASIC sao chép ác J-cells từ nơi lưu trữ packet và gửi chúng đến I/O manager ASIC trên outgoing FPC.

  11. I/O manager ASIC sắp xếp lại data packet vào trong một đơn vị và hiệu chỉnh các giá trị TTL. ASIC sau đó gán thông tin phù hợp của layer-2 header và gửi packet đến PIC I/O Manager ASIC

  12. PIC I/O manager ASIC thực hiện bất kỳ những yêu cầu nào từ link-layer và gửi data packet ra ngoài interface của router.






No comments:

Post a Comment