Tác giả:
+ Lê Anh Đức
+ Ngô Tự Nhiên
3.1. Mô hình lập trình capsule
Một mạng ANTS bao gồm: các ứng dụng sử dụng mạng bằng cách gửi và nhận những gói tin đặc biệt được gọi là các capsule qua một active node cục bộ (hay còn gọi là một router có khả năng lập trình). Mỗi active node được kết nối với với các node lân cận với nó. Các ứng dụng có thể lựa chọn các loại capcule khác nhau tùy thuộc vào phần mềm. Code sẽ được thực thi tại mỗi active node khi nó đi qua. Do đó, để tạo ra một dịch vụ mới thì nó chỉ cần xây dựng một tập các loại capsule mới với các code lập trình tương ứng. Vì vậy, mô hình này cho phép quá trình xử lý tùy biến dọc theo mạng, và cho phép các ứng dụng mới được triển khai chỉ bằng một bước mà không cần yêu cầu việc triển khai thêm hay xây dựng thử nghiệm. Và các ứng dụng mới được lựa chọn một cách rõ ràng bằng cách lựa chọn loại capsule hơn là việc nâng cấp router.
3.2. Forward packet mở rộng
Mô hình lập trình capsule dễ hiểu và linh hoạt nhưng lại khó thực thi. Để có thể thực thi ở hiệu suất cao cần được giới hạn theo 2 cách:
• Việc forward một capsule được chia làm các phần như: truyền code và thực thi code. Việc phân chia việc thực thi những forwarding thành những phần trên cho phép mỗi phần được thực thi với các kỹ thuật phù hợp và cho phép code được cache ở những active node để tăng hiệu suất. Nhiều kỹ thuật có thể được sử dụng để truyền code phụ thuộc vào kích thước và tần suất của việc truyền
• Mô hình capsule được sửa đổi để phù hợp với 1 mạng mà trong đó chỉ những node xác định mới là active node. Ở những node bình thường thì các capsule sẽ được forward như những gói tin IP bình thường. ANTS xem những active node như những node đặc biệt được nhúng vào mạng.
Hình 3. 1 Các trường trong gói capsule
3.3. Các thành phần kiến trúc
Gồm một mô hình lập trình capsule, một giao thức demand pull code và hệ điều hành của node
3.4. Capsule programing module
Gồm 3 phần: định dạng của capsule; luật forward; và API của node
3.4.1. Định dạng của capsule
Mỗi capuslemang theo những trường sau: địa chỉ nguồn, đích; resource limit (tương tự như TTL của IPv4 và hopcount của IPv6); version( xác định version của ANTS); type(xác định loại forwarding routine tương ứng); previous address (được sử dụng để truyền code trong mạng); các trường header khác (phụ thuộc vào loại capsule được xác định ở trường type); payload.
• Trong những trường này thì trường type là quan trong nhất vì nó xác định forwarding routine; code group và protocol mà capsule đó thuộc về. Mỗi bit đều được sử dụng để xử lý capsule ở mỗi node. Yêu cầu là type phải là duy nhất dễ dàng kiểm tra và phân phối.
• Code group và protocol được xác định bởi các cấu trúc phân cấp vì vậy cho phép nó được sử dụng an toàn trong mạng mà trong đó các code không phải lúc nào cũng có. Định nghĩa các capsule type bằng cách sẽ cung cấp 2 đặc tính quan trọng:
- Các type mới có thể được phân phối một cách nhanh chóng. Vì các dấu hiệu của nó là duy nhất và type phụ thuộc vào code tương ứng, do đó chỉ cần chọn một hàm dấu hiệu với một tầm lớn để làm cho khả năng đụng độ là nhỏ nhất. Với số hash 128 bit ngẫu nhiên như MD5 thì đụng độ xảy ra khi có 264 dầu hiệu đồng thời. Do đó, các dịch vụ mới có thể được hỗ trợ bằng sự đồng ý tương hỗ giữa những phần xác định.
- Các type sẽ xác lập một secure binding giữa capsule và code tương ứng. Vì hash là một chiều nên sẽ xóa được nguy cơ giả code vì mỗi node có thể nhanh chóng xác minh (mà không cần thêm những thông tin bên ngoàni) rằng một tập các code xác định sẽ tương ứng với một capsule tương ứng.
3.4.2. Active node API
Trong thực tế, một loại routine có thể được xác định phụ thuộc vào active node API sẵn có. Ví dụ: nếu không thể lưu và truy cập các trạng thái node thì các chương trình capsule sẽ không thể giao tiếp với nhau. Ngoài ra việc thực thi code phụ thuộc vào API. Ví dụ: các hàng xóm của một node xác định có thể được tìm thấy bằng cách đi qua toànn bộ bảng định tuyến để hỏi những node kế cận hay hỏi trực tiếp node là phụ thuộc vào hàm API nào được hỗ trợ. Ví dụ: Các hàm API cho capsule forwarding routine:
Bảng 3.1: Các phương thức của Node
Khi kết hợp với các khả năng được cung cấp bởi mô hình forward mở rộng; những loại API này đủ để hỗ trợ các loại dịch vụ mới một cách hiệu quả:
• Các đặc tính của mạng có thể được khám phá và những đường mới được tính toán bằng cách sử dụng các hàm truy nhập môi trường kết hợp với các header và việc truyền có kiểm soát.
• Các dịch vụ định tuyến mới được cung cấp bằng cách sử dụng soft-store để duy trì những đường vừa được tính và forwarding sẽ đi theo những đường này.
• Multicast có thề được cung cấp bằng cách tạo ra các capsule mới trong mạng và chúng sẽ đi theo những đường được duy trì trong soft-store.
+ Lê Anh Đức
+ Ngô Tự Nhiên
3.1. Mô hình lập trình capsule
Một mạng ANTS bao gồm: các ứng dụng sử dụng mạng bằng cách gửi và nhận những gói tin đặc biệt được gọi là các capsule qua một active node cục bộ (hay còn gọi là một router có khả năng lập trình). Mỗi active node được kết nối với với các node lân cận với nó. Các ứng dụng có thể lựa chọn các loại capcule khác nhau tùy thuộc vào phần mềm. Code sẽ được thực thi tại mỗi active node khi nó đi qua. Do đó, để tạo ra một dịch vụ mới thì nó chỉ cần xây dựng một tập các loại capsule mới với các code lập trình tương ứng. Vì vậy, mô hình này cho phép quá trình xử lý tùy biến dọc theo mạng, và cho phép các ứng dụng mới được triển khai chỉ bằng một bước mà không cần yêu cầu việc triển khai thêm hay xây dựng thử nghiệm. Và các ứng dụng mới được lựa chọn một cách rõ ràng bằng cách lựa chọn loại capsule hơn là việc nâng cấp router.
3.2. Forward packet mở rộng
Mô hình lập trình capsule dễ hiểu và linh hoạt nhưng lại khó thực thi. Để có thể thực thi ở hiệu suất cao cần được giới hạn theo 2 cách:
• Việc forward một capsule được chia làm các phần như: truyền code và thực thi code. Việc phân chia việc thực thi những forwarding thành những phần trên cho phép mỗi phần được thực thi với các kỹ thuật phù hợp và cho phép code được cache ở những active node để tăng hiệu suất. Nhiều kỹ thuật có thể được sử dụng để truyền code phụ thuộc vào kích thước và tần suất của việc truyền
• Mô hình capsule được sửa đổi để phù hợp với 1 mạng mà trong đó chỉ những node xác định mới là active node. Ở những node bình thường thì các capsule sẽ được forward như những gói tin IP bình thường. ANTS xem những active node như những node đặc biệt được nhúng vào mạng.
Hình 3. 1 Các trường trong gói capsule
3.3. Các thành phần kiến trúc
Gồm một mô hình lập trình capsule, một giao thức demand pull code và hệ điều hành của node
3.4. Capsule programing module
Gồm 3 phần: định dạng của capsule; luật forward; và API của node
3.4.1. Định dạng của capsule
Mỗi capuslemang theo những trường sau: địa chỉ nguồn, đích; resource limit (tương tự như TTL của IPv4 và hopcount của IPv6); version( xác định version của ANTS); type(xác định loại forwarding routine tương ứng); previous address (được sử dụng để truyền code trong mạng); các trường header khác (phụ thuộc vào loại capsule được xác định ở trường type); payload.
• Trong những trường này thì trường type là quan trong nhất vì nó xác định forwarding routine; code group và protocol mà capsule đó thuộc về. Mỗi bit đều được sử dụng để xử lý capsule ở mỗi node. Yêu cầu là type phải là duy nhất dễ dàng kiểm tra và phân phối.
• Code group và protocol được xác định bởi các cấu trúc phân cấp vì vậy cho phép nó được sử dụng an toàn trong mạng mà trong đó các code không phải lúc nào cũng có. Định nghĩa các capsule type bằng cách sẽ cung cấp 2 đặc tính quan trọng:
- Các type mới có thể được phân phối một cách nhanh chóng. Vì các dấu hiệu của nó là duy nhất và type phụ thuộc vào code tương ứng, do đó chỉ cần chọn một hàm dấu hiệu với một tầm lớn để làm cho khả năng đụng độ là nhỏ nhất. Với số hash 128 bit ngẫu nhiên như MD5 thì đụng độ xảy ra khi có 264 dầu hiệu đồng thời. Do đó, các dịch vụ mới có thể được hỗ trợ bằng sự đồng ý tương hỗ giữa những phần xác định.
- Các type sẽ xác lập một secure binding giữa capsule và code tương ứng. Vì hash là một chiều nên sẽ xóa được nguy cơ giả code vì mỗi node có thể nhanh chóng xác minh (mà không cần thêm những thông tin bên ngoàni) rằng một tập các code xác định sẽ tương ứng với một capsule tương ứng.
3.4.2. Active node API
Trong thực tế, một loại routine có thể được xác định phụ thuộc vào active node API sẵn có. Ví dụ: nếu không thể lưu và truy cập các trạng thái node thì các chương trình capsule sẽ không thể giao tiếp với nhau. Ngoài ra việc thực thi code phụ thuộc vào API. Ví dụ: các hàng xóm của một node xác định có thể được tìm thấy bằng cách đi qua toànn bộ bảng định tuyến để hỏi những node kế cận hay hỏi trực tiếp node là phụ thuộc vào hàm API nào được hỗ trợ. Ví dụ: Các hàm API cho capsule forwarding routine:
Bảng 3.1: Các phương thức của Node
Khi kết hợp với các khả năng được cung cấp bởi mô hình forward mở rộng; những loại API này đủ để hỗ trợ các loại dịch vụ mới một cách hiệu quả:
• Các đặc tính của mạng có thể được khám phá và những đường mới được tính toán bằng cách sử dụng các hàm truy nhập môi trường kết hợp với các header và việc truyền có kiểm soát.
• Các dịch vụ định tuyến mới được cung cấp bằng cách sử dụng soft-store để duy trì những đường vừa được tính và forwarding sẽ đi theo những đường này.
• Multicast có thề được cung cấp bằng cách tạo ra các capsule mới trong mạng và chúng sẽ đi theo những đường được duy trì trong soft-store.
Comment