4 Giao Thức OpenFlow
4.4 Phương Thức Kết Hợp Với Trường Của Gói Tin:
Các trường trong gói tin được sử dụng để kết hợp gồm: - Ether src: Địa chỉ MAC nguồn
- Ether dst: Địa chỉ Mac đích - Ether type: Loại chuẩn Ethernet - VLAN id : chỉ số VLAN
- VLAN priority: Mức độ ưu tiên của gói tin - MPLS label: Nhãn MPLS
- MPLS traffic class: Loại gói tin MPLS - IPv4 src: Địa chỉ IP nguồn
- IPv4 dst: Địa chỉ IP đích
39 - IPv4 ToS bits: loại dịch vụ
- TCP/ UDP / SCTP src port ICMP Type: Cổng nguồn - TCP/ UDP / SCTP dst port ICMP Code: Cổng đích
Ngồi ra có thêm 2 thơng tin khác :
- Ingress Port : Cổng gói tin đi vào
- Metadata: Dữ liệu được cung cấp từ bảng khác
Khi Switch nhận được gói tin đến Switch nó sẽ kiểm tra tất cả các trường trên.
Trong mỗi dịng điều kiện sẽ có các giá trị xác định hoặc bất cứ giá trị gì. Nếu Switch hỗ trợ mặt nạ bít trên địa chỉ ethernet nguồn và đích, địa chỉ IP nguồn và đích, nếu mặt nạ chính xác hơn thì sẽ được kết hợp.
Cơ chế kết hợp như sơ đồ dưới đây:
Hình 9: Lưu đồ cơ chế kết hợp
Khi nhận được gói tin, OpenFlow Switch sẽ thực hiện theo các bước ở lưu đồ trên. Switch bắt đầu tìm kiếm các Flow Entry trong bảng đầu tiên dựa trên nguyên lý
40
đường ống dẫn, có thể dẫn đến phải tìm kiếm trong các bảng tiếp theo. Các trường trong gói tin được kiểm tra để kết hợp với các Flow phụ thuộc vào loại gói tin.
Một gói tin được gọi là kết hợp với một Flow Entry, nếu các trường được sử dụng để kết hợp (Match Fields) bằng chính xác các giá trị trong Flow Entry. Nếu có một giá trị nào đó của bảng Flow Table mà là bất kỳ thì nó sẽ được gọi là kết hợp với mọi giá trị trong header của gói tin.
Để xử lý nhiều loại gói tin Ethernet, kết hợp Ethernet Type được xử lý dựa trên nội dung của gói tin. Nói chung nếu Ethernet Type được kết hợp thì OpenFlow sẽ biết được đâu là trường dữ liệu của gói tin. Nếu gói tin có trường Vlan thì trường Ethernet Type sẽ được tìm thấy ngay sau trường Vlan. Một ngoại lệ là Switch khơng thể xác định Ethernet Type với gói tin có trường MPLS tag.
Nếu một gói tin có dạng Ethernet II, thì giá trị Ethernet Type sẽ kết hợp với Ethernet Type của Flow Entry. Nếu gói tin là chuẩn 802.3 với trường header là một chuẩn 802.2 LLC, SNAP protocol id trong SNAP header được kết hợp với Ethernet Type trong Flow Entry. Một Flow Entry với trường Ethernet Type bằng 0x05FF sẽ kết hợp với tồn bộ các Frame 802.3 mà khơng có SNAP header.
Switch chỉ thực hiện cập nhật các tập chỉ thị và các biến đếm Counter với Flow Entry có độ ưu tiên cao nhất mà kết hợp với gói tin. Nếu có nhiều kết hợp với cùng độ ưu tiên thì q trình kết hợp sẽ khơng được thực hiện. Trường hợp này chỉ có thể nảy sinh khi Controller khơng set bít CHECK_OVERLAP trong bản tin Flow mod và đưa vào những dịng trùng lặp.
Với gói tin được phân mảnh thì nó cần được ghép lại trước khi xử lý đường ống dẫn nếu cấu hình Switch chứa cờ OFPC_FRAG_REASM.
Hiện tại Switch OpenFlow không đưa ra cách xử lý nếu nhận được gói tin bị lỗi hoặc bất thường.
42
Hình 10: Thứ tự kiểm tra kết hợp gói tin
Các biến đếm được cập nhật cho mỗi bảng, mỗi Flow, mỗi cổng, mỗi hàng đợi, mỗi nhóm, mỗi hành động. Quy chuẩn cho các biến Counter có thể được thực hiện bởi phần mềm hoặc phần cứng với giới hạn nhiều hơn. Bảng sau mô tả các biến đến và độ
43
44