Thứ Hai, 6 tháng 4, 2015

Tìm hiểu về Jumbo Frame

1.Các định nghĩa và phân loại
  • Một ethernet frame được định nghĩa là một đơn vị thông tin truyền trong mạng ethernet, bao gồm phần ethernet header, payload và FCS. Kích thước lớn nhất có thể được cho phép của phần payload được gọi là MTU.

Chuẩn IEEE 802.3 định nghĩa kích thước của ethernet frame là từ 64 đến 1518 bytes. Trong đó, phần header có kích thước 18 bytes, phần FCS có kích thước 4 bytes, còn lại phần payload có kích thước từ 46-1500 bytes. Như vậy, MTU là 1500.
Cùng với sự phát triển của công nghệ sản xuất thiết bị, một loại frame mới đã xuất hiện với kích thước phần payload lớn hơn rất nhiều so với chuẩn IEEE 802.3. Phần header cũng có thể tăng thêm nhưng không nhiều. Loại frame này thường được gọi với cái tên Jumbo Frames. Jumbo frame không được IEEE chuẩn hóa, nó tùy thuộc vào các nhà sản xuất thiết bị.

Việc mở rộng kích thước frames được liệt kê như sau :
  • Tăng thêm 4 bytes cho VLAN tagging theo chuẩn IEEE 802.1Q. Kích thước frame tăng lên tối đa thành 1522 bytes.
  • Tăng thêm 8 bytes cho thông tin nguồn gốc frames theo Provider Bridge(802.1ad). Kích thước frames tăng lên tối đa thành 1526 bytes.
  • 3 AE tăng thêm 64 bytes prefix tăng kích thước tối đa của frame lên thành 1582 bytes.
  • T11 cho phép MTU 2500 bytes đối với Fiber Channel over Ethernet(FCoE) frames.
  • MPLS mở rộng kích thước frame bằng việc thêm các nhãn vào frames. Kích thước frames tăng thêm (n*4), với n là số nhãn gắn thêm.
  • Baby Giant: thường dùng để gọi những frames sử dụng MPLS, 802.1Q, 802.1ad, và 802.3AE. Kích thước của Baby Giant thường lớn hơn ko đáng kể so với chuẩn MTU.
  • Mini Jumbo: thường dùng để gọi những frames với MTU là 2500 bytes. Những frames này thường được sử dụng bởi FcoE.
  1. Ưu điểm
Ưu điểm chính của jumbo frame là làm tăng hiệu năng hệ thống. Điểu này có thể được lý giải như sau:
Ưu điểm chính của jumbo frame là làm tăng hiệu năng hệ thống. Điểu này có thể được lý giải như sau:
  • Kích thước frame lớn dẫn đến số lượng frame mà CPU phải xử lý giảm.
  • Số lượng frame giảm dẫn đến kích thước phần header cũng giảm. Trong điều kiện tải nặng, phần header sẽ tiêu tốn một phần băng thông đáng kể.
  • Số lượng frame giảm làm giảm số lượng interrupt của NIC lên CPU. Đối với mỗi frame nhận được, NIC interrupt tới CPU để thông báo rằng nó nhận được một frame mới và CPU sẽ dừng mọi việc đang thực hiện lại để xử lý frame đó. Mỗi interrupt như vậy làm tiêu tốn một số lượng đáng kể chu kỳ của CPU.
  • Kích thước frame lớn cũng làm tiết kiệm nhiều chu kỳ của CPU do giảm số lần dữ liệu di chuyển trong bộ nhớ. Ở cả hai phía gửi và nhận, việc di chuyển data trong bộ nhớ hiệu quả hơn với những frames lớn bởi vì bộ nhớ được tổ chức thành các “pages”. Kích thước mỗi page thường là 4Kbytes, 8Kbytes hoặc 16Kbytes.
  • Kích thước frame lớn dẫn đến hiệu quả của việc sử dụng bộ đệm trên thiết bị tăng lên.
  • Hiệu quả hoạt động của router và switch được quyết định bởi số lần phân tích header mỗi frame nhận được để xem xét chuyển tiếp frame đó đi đâu. Số lượng frame giảm tất nhiên sẽ làm tăng hiệu năng của các thiết bị này.
1
Hình 1 – So sánh throughput và hiệu năng của CPU giữa Frame chuẩn và Jumbo frame
Một ví dụ khác cho thấy việc sử dụng jumbo frame tiết kiệm tài nguyên như thế nào:
  • Giả sử có một ứng dụng truyền file, yêu cầu throughput là 75MBps.
  • Nếu không sử dụng jumbo frame:
2
Hình 2 – Tiêu tốn tài nguyên khi không sử dụng jumbo frame
  • Nếu sử dụng jumbo frame:
3
Hình 3 – Tiêu tốn tài nguyên khi sử dụng jumbo frame
Nhìn vào hình 2 và 3, có thể thấy rõ lợi ích của việc sử dụng jumbo frame.
  1. Nhược điểm
Nhược điểm duy nhất của Jumbo frame đó là nó không phải là một chuẩn và do đó, không phải thiết bị nào cũng hỗ trợ. Việc thiết kế mạng có hỗ trợ jumbo frame mà sử dụng thiết bị của nhiều nhà cung cấp khác nhau cần tính toán đến việc tương thích giữa chúng.
Các chuẩn dưới đây khác nhau về kích thước header nhưng vẫn giữ nguyên kích thước MTU 1500 bytes:
  • IEEE 802.3 specification – 1518 bytes
  • 1Q (VLANs) – 1522 bytes
  • 1ad (Provider Bridge) – 1526 bytes
  • 1AS – 2000 bytes
  • 3AE – 1582 bytes
  • MPLS – 1518 bytes + N*4 bytes với N là số stacked label
Các chuẩn dưới đây thay đổi cả kích thước header và MTU:
  • Ethernet (IEEE 802.3 specification) – 1518 bytes
  • FcoE (T11 specification) – 2166 bytes
  • iCSI (VMWare de-facto) – 9000 bytes
Không thống nhất về các thuật ngữ:
  • Baby Giant: MPLS, 802.1Q, 802.1ad, 802.3AE.
  • Mini Jumbo: FcoE
  • Giant Jumbo: Packet có payload lớn hơn 1500 bytes
  • Payload MTU: kích thước của payload
  • Link MTU: Kích thước của header và payload
  1. Kích thước của Jumbo Frame
Như phần 3.1.3 đã đưa ra các lợi ích của Jumbo frame. Vấn đề đặt ra ở đây là có phải kích thước frame càng lớn càng có lợi hay là kích thước frame thế nào là hợp lý nhất? Hai vấn đề dưới đây sẽ trả lời câu hỏi này.
  • Thứ nhất, kích thước frame có thể lớn đến mức nào phụ thuộc vào sự hỗ trợ của NIC. Vì jumbo frame không phải là một chuẩn của IEEE nên không phải tất cả các thiết bị đều hỗ trợ. Ví dụ, với các NIC Gigabit thì kích thước frame cho phép có thể lên đến hơn 9000 bytes(chưa tính header).
  • Thứ hai, theo chuẩn IEEE 802.3, trong header frame ethernet có 4 bytes FCS(Frame Check Sequence) dùng để check lỗi frame trong quá trình truyền tải. Khi kích thước frame tăng lên, khả năng kiểm tra lỗi frame của FCS giảm đi. Kích thước tối đa để FCS có thể kiểm tra lỗi chính xác là 12000 bytes. Và như vậy nếu kích thước frame cứ tiếp tục tăng thì đến một lúc nào đó FCS sẽ không thể kiểm tra lỗi frame được nữa.
  • Thứ ba, với kích thước trong khoảng 9000 bytes đủ lớn để đóng gói theo chuẩn NFS (Network File System).
  • Một giải pháp cho phép triển khai jumbo frame trên những cơ sở hạ tầng mạng có sẵn đó là sử dụng VLANs, theo chuẩn IEEE 802.1Q. Các thiết bị trong mạng đều hỗ trợ multi VLANs hoặc IP subnets trên một cổng vật lý.
  1. Vấn đề chuẩn hóa Jumbo frames
Cho đến hiện tại, jumbo frames vẫn chưa được IEEE chuẩn hóa. Tất cả đều do các vendor tự định nghĩa. Điều này dẫn đến sự bất đồng bộ khi triển khai jumbo frame trên một hệ thống mạng mà có sử dụng thiết bị của nhiều vendor khác nhau.
  1. Mô tả hoạt động
Khi triển khai jumbo frame trên một mạng có thể xảy ra các trường hợp sau:
6.1 Tất cả các thiết bị đều hỗ trợ Jumbo frame cùng kích thước
Nếu tất cả các thiết bị trong mạng đều hỗ trợ jumbo frame cùng kích thước, quá trình làm trao đổi data giữa sender và receiver rất dễ dàng và hầu như không có khó khăn gì.
Quá trình truyền nhận data có thể sử dụng hoặc TCP hoặc UDP như là các giao thức ở layer 4 nhưng khác nhau về cách thức xử lý. TCP có một quá trình bắt tay giữa sender và receiver, ở đó các thiết bị trao đổi giá trị MSS của mình cho nhau thông qua bản tin ICMP. Ví dụ, nếu PC A và PC B cùng sử dụng chuẩn Fast Ethernet NICs, chúng sẽ cùng có giá trị MSS là 1460 bytes, từ đó tạo ra MTU là 1500 bytes và cuối cùng frame size là 1518 bytes.
6.2 Trên mạng có thiết bị lớp 2(Switch) không hỗ trợ Jumbo Frame
Nếu trên mạng mà có thiết bị lớp 2 không hỗ trợ Jumbo frame thì frame đó sẽ bị drop bởi vì sự phân mảnh chỉ có thể diễn ra trên các thiết bị layer 3(router).
6.3 Hai interface ingress và egress của router không cùng hỗ trợ Jumbo Frame
Trong TCP/IP packet có bit DF có nhiệm vụ quyết định xem có cho phép sự phân mảnh diễn ra hay không. Đây là một chức năng của TCP, thông thường được set trên tất cả các host. Khi nhận được gói tin có kích thước lớn, router sẽ xem xet bit DF. Nếu DF được set, router sẽ ngay lập tức drop gói tin đó và gửi lại bản tin ICMP cho sender để nói rằng “Fragmentation needed and DF set”. Khi sender nhận được bản tin ICMP này, nó sẽ giảm kích thước gói tin xuống cho đến khi nào gói tin có thể đi qua.
Nếu vì một lý do nào đó mà bản tin ICMP không đến được sender(do tấn công DOS hoặc firewall), sender sẽ không biết là gói tin đã bị drop để điều chỉnh kích thước lại cho phù hợp, hay không biết là gói tin có được gửi thành công hay không. Do đó, sender vẫn tiếp tục gửi gói tin với kích thước như cũ, dẫn đến kết quả là gói tin không bao giờ đến đích được. Điều này được gọi là “black hole”.
Khi bit DF không được set, packet có kích thước lớn sẽ được phân mảnh bởi router thành những packet có kích thước lớn nhất mà được hỗ trợ ở cả ingress và egress interfaces. Nếu có bất kỳ gói tin nào đã được phân mảnh mà bị drop thì TCP sẽ enable quá trình retransmit. Tuy nhiên, sender sẽ gửi lại toàn bộ cả packet lớn(jumbo frame) chứ không chỉ packet nhỏ đã được phân mảnh. Điều này sẽ làm lãng phí băng thông và làm mất ý nghĩa của jumbo frame.
Quá trình sử dụng bit DF và bản tin ICMP như phân tích ở trên được gọi là PMTUD( Packet MTU Discovery). Quá trình này chỉ áp dụng cho TCP flow, cái mà cung cấp quá trình retransmission. Nếu Jumbo frame sử dụng UDP, thì sẽ không có quá trình này. Nếu sender gửi jumbo frame sử dụng UDP qua một mạng có hỗ trợ jumbo frame nhưng receiver không chấp nhận jumbo frame, thì gói tin sẽ bị drop. Nếu sender gửi jumbo frame sử dụng UDP vào mạng không hỗ trợ jumbo frame, gói tin sẽ bị drop tại lớp 2 hoặc phân mảnh tại lớp 3.
  1. Giải pháp tích hợp jumbo frame trong một cơ sở hạ tầng mạng đã tồn tại
Với một hệ thống mạng đã tồn tại từ trước đó, không phải tất cả các thiết bị đều sẵn sàng hỗ trợ jumbo frame. Vì thế muốn triển khai jumbo frame trên mạng này, ta sử dụng hai cách sau:
Đặt các thiết bị hỗ trợ jumbo frame vào một LAN riêng, các thiết bị không hỗ trợ jumbo frame vào một LAN riêng.
Sử dụng cơ chế IEEE 802.1Q, các thiết bị hỗ trợ jumbo frame đặt vào trong một VLAN riêng, các thiết bị còn lại đặt vào một VLAN riêng.
4
Hình 4 – Tích hợp Jumbo frame vào kiến trúc mạng đã tồn tại
5
Hình 5 – Mô hình triển khai thực tế với hai LAN riêng biệt
Trên hình 5, các thiết bị jumbo frame ở bên trái được nối vào một switch cũng hỗ trợ gigabit và jumbo frame, tất cả đều thuộc “jumbo frame” LAN. Trong khi đó các thiết bị không hỗ trợ jumbo frame ở bên phải kết nối vào một switch khác. Tất cả đều thuộc “Non jumbo frame” LAN. Hai switch cùng nối vào một router. Nếu kết nối từ Jumbo frame LAN đến router chỉ là Fast Ethernet(100Mbps) thì traffic giữa các thiết bị trong Jumbo frame LAN vẫn có thể sử dụng jumbo frame an toàn.
6
Hình 6 – Mô hình triển khai thực tế với hai VLAN riêng biệt
Trong hình 6, một VLAN switch có 4 interfaces, trong đó hai interfaces có hỗ trợ jumbo frame và hai interface thì không. Hai interfaces hỗ trợ jumbo frame nối với hai PC hỗ trợ jumbo frame, và được cấu hình thuộc Jumbo Frame VLAN. Trong khi đó, hai interface không hỗ trợ jumbo frame được nối với hai PC không hỗ trợ jumbo frame và được cấu hình thuộc Non Jumbo Frame VLAN.

Không có nhận xét nào:

Đăng nhận xét