3.3.1 Bài toán cần giải quyết
Ngày nay, các thiết bị đầu cuối di động thường được trang bị nhiều hơn một loại giao diện mạng, điều đó mở ra cho người dùng đầu cuối cơ hội có thể sử dụng nhiều loại công nghệ mạng khác nhau để truy cập vào Internet. Việc kết hợp băng thông nhiều đường truyền nhằm tăng băng thông của Mobile Node, đồng thời tăng tính bền vững cho các kết nối do có kết nối dự phòng thay thế trong trường hợp một kết nối nào đó bị mất đã trở thành đề tài nghiên cứu của nhiều tác giả.
Tuy nhiên, các giải pháp đã đề xuất vẫn còn một số hạn chế nhất định, hoặc là chưa tận dụng hết các giao diện sẵn có trong Mobile Node, hoặc là làm thay đổi quá nhiều kiến trúc mạng hiện tại hay giải thuật để giải quyết bài toán chưa được tối ưu, v.v….
Xuất phát từ tình hình thực tế hiện nay về tài nguyên của của các mạng di động, của thiết bị đầu cuối và mong muốn của người sử dụng chất lượng truyền tải ứng dụng, đồng thời đúc kết từ những mặt thành công và hạn chế của các nghiên cứu đi trước, chúng tôi đã nghiên cứu và đưa ra một giải pháp nhằm đạt được các mục tiêu sau đây:
1. Hỗ trợ chuyển giao dọc giữa các vùng mạng khác nhau khi thiết bị đầu cuốidi chuyển qua lại giữ các vùng mạng đó.
2. Sử dụng đồng thời các kết nối hiện có giữa thiết bị đầu cuối và Internet nhằm tăng băng thông cho các ứng dụng tầng trên, tăng tính bền vững, tin cậy cho các kết nối đang có nhờ tính thay thế của các kết nối.
3. Lập lịch để truyền tải các gói trên nhiều đường truyền khác nhau đến thiết bị đầu cuối nhằm đảm bảo gói tin đến được đích nhanh chóng và sử dụng hiệu quả hiệu năng của đường truyên.
4. Để giải pháp mang tính khả thi, dễ triển khai trong thực tế, giải pháp cần đảm bảo không gây ra sự thay đổi quá nhiều trong kiến trúc mạng sẵn có.
Phần tiếp theo sẽ giới thiệu về ý tưởng để giải quyết bài toán nhằm đạt được các mục tiêu đề ra.
3.3.2 Ý tƣởng đề xuất để giải quyết bài toán
Để giải quyết bài toán đặt ra, chúng tôi đã thực hiện hai giai đoạn:
- Giai đoạn thứ nhất: Sử dụng Mobile IP xây dựng hệ thống hỗ trợ chuyển giao dọc và sử dụng đồng thời nhiều đường truyền giữa Mobile Node với Internet.
- Giai đoạn thứ hai: Xây dựng một thuật toán lập lịch để truyền tải các gói tin có đích đến là Mobile Node sao cho tốc độ truyền tin là nhanh nhất, hiệu suất sử dụng băng thông của các đường truyền được tối ưu.
a. Giai đoạn thứ nhất:
Bài toán đặt ra cho giai đoạn này đã được giải quyết trong khoá luận tốt nghiệp Đại học năm 2009 của Nguyễn Tiến Đạt, một thành viên nghiên cứu trong cùng nhóm với tác giả luận văn này. Trong khoá luận đó, một kiến trúc mạng đã được đề xuất để giải quyết vấn đề hỗ trợ chuyển giao dọc kết hợp băng thông nhiều đường truyền đã được đưa ra. Hình 11 mô tả kiến trúc mạng đã được đề xuất.
Hình 11. Kiến trúc mạng hỗ trợ chuyển giao dọc và kết hợ băng thông nhiều đuờng truyền (Hình vẽ được trích dẫn từ khoá luận “Tối ưu hoá việc kết hợp băng thông nhiều đường truyền trong chuyển giao dọc trên các mạng không dây di động hỗn hợp”, Nguyễn Tiến Đạt, năm 2009)
Trong giải pháp này, Mobile-IP được sử dụng để quản lý quá trình di chuyển của Mobile Node. Home Agent sẽ cập nhật sự thay đổi của Mobile Node khi Mobile Node di chuyển tới một mạng khác hoặc thay đổi địa chỉ IP của một giao diện mạng. Bảng định tuyến của Home Agetn lưu tất cả địa chỉ IP của các giao diện mạng của
Mobile Node, từ đó định tuyến các gói tin gửi cho Mobile Node theo cơ chế đường hầm của Mobile-IP. Nếu như trong Mobile-IP tại mỗi thời điểm chỉ có một Foreign Agent được sử dụng thì ở đây, tại mỗi thời điểm Mobile Node có số lượng Foreign Agent bằng với số lượng các kết nối mà nó có trên các giao diện mạng đang hoạt động.
Giải pháp đề ra trong giai đoạn này đã được triển khai thành chương trình mô phỏng và đã đạt được tiêu chí đề ra. Phần tiếp theo sẽ chỉ đề cập đến ý tưởng để giải quyết bài toán lập lịch để truyền tải các gói tin đến là Mobile Node trong mô hình
kết hợp băng thôngnhiều đường truyền đã được đề xuất trong giai đoạn thứ nhất.
b. Giai đoạn thứ hai:
Đề tài đề xuất một giải thuật nhằm đánh giá năng lực của các kết nối giữa Mobile Agent và Mobile Node, từ đó đưa ra một tỷ lệ để phát các gói tin đến Mobile Node phù hợp với khả năng về băng thông của các kết nối nhằm đạt được mục đích chuyển tải các gói tin trên các kết nối đến được Mobile Node một cách nhanh nhất. Giải thuật lập lịch là các mô-đun phần mềm được cài đặt trên Mobile Node và Mobile Agent, vì thế nó khônglàm thay đổi quá nhiều đếnkiến trúc của mạng ban đầu. Mô hình lập lịch kết hợp băng thông nhiều đường truyền được minh hoạ trong hình 12.
`
Mobile Node Mobile Agent
Correspondent Node
Internet path 1
Internet path Internet path 2
Internet path 3
RNC BSC Access Point
Hình 12. Mô hình lập lịch kết hợp băng thông nhiều đường truyền
3.2 Hoạt động của giải thuật
Hoạt động của giải thuật có thể tóm tắt như sau như trong hình 13, bao gồm các nội dung: đưa ra một tỷ lệ phát các gói tin trên các kết nối đến Mobile Node, theo dõi quá trình truyền tin và tính tỷ lệ các gói tin đến trễ trên các kết nối, nếu tỷ lệ các gói tin
đến trễ vượt một ngưỡng đề ra thì điều chỉnh lại tỷ lệ phát các gói tin cho phù hợp với chất lượng kết nối.
Đầu tiên, Mobile Agent đưa ra một tỷ lệ phát các gói tin trên các kết nối từ nó đến Mobile Node. Tỷ lệ này có thể là bằng nhau, có thể được đưa ra dựa vào tỷ lệ độ lớn băng thông vật lý của các kết nối đó. Gọi tỷ lệ phát các gói tin này là r(1), r(2),…, r(n) tương ứng với các kết nối inf(1), inf(2), inf(n).
Tiếp theo, Mobile Agent đánh số thứ tự các gói tin mà nó sẽ chuyển đi. Việc đánh số thứ tự các gói tin sẽ được gửi đi nhằm giúp cho giải thuật
biết được một gói tin có đến đúng thứ tự hay không. Sau đó, Mobile Agent chuyển các gói tin đến Mobile Node theo tỷ lệ đã định ra.
Mobile Node khi nhận được các gói tin mà Mobile Agent gửi, căn cứ vào số thứ tự của gói tin mà nó nhận được, nó sẽ xác định gói tin đó có đến trễ hay không. Quy ước rằng, các gói tin có số thứ tự nhỏ thì phải đến trước các gói tin có số thứ tự lớn hơn. Nếu thoả mãn điều kiện đó, gói tin được cho là đến đúng thứ tự. Ngược lại, gói tin được cho là đến trễ. Vì giải thuật hướng tới một tỷ lệ phù hợp để phát các gói tin trên các kết nối nên ở đây chỉ quan tâm các gói tin đến trễ so với các kết nối khác chứ không phải các gói tin đến trễ trên từng kết nối. Một chú ý nữa là giải thuật không xét đến các gói tin bị mất.
Hoạt động của giải thuật ở Mobile Node và ở Mobile Agent được mô tả trong hình 14 và hình 15. Ở Mobile Node, mỗi kết nối được gắn một giá trị C là biến đếm số gói tin đến trễ. Khi một gói tin đến trên một kết nối có số thứ tự nhỏ hơn số thứ tự của gói tin sau cùng đến trên bất kỳ kết nối nào khác, gói tin đó sẽ được coi là trễ. Lúc này, Mobile Node sẽ tăng giá trị C của kết nối đó lên một đơn vị.
Đếm:=0
Giao diện vừa nhận được gói
tin trùng với giao diện được
lưu trong bộ đệm?
Lưu STT gói tin gần nhất nhận được và giao diện nhận được gói
tin đó
STT gói tin vừa nhận lớn hơn STT gói tin đang
lưu trong bộ đệm? Đếm:= Đếm + 1 Tỷ lệ gói tin trễ trên một giao diện lớn hơn ngưỡng?
Gửi bản tin yêu cầu điều chỉnh tỷ lệ phát gói tin đến Mobile Agent
Đúng Đúng Sai Đúng Sai Sai
Hình 14. Hoạt động của giải thuật ở Mobile Node
Nếu gọi số Rd(i) là tỷ lệ gói tin đến trễ trên kết nối i, T(i) là tổng số gói tin đã truyền đi trên kết nối i thì Rd(i) = C(i) / T(i), trong đó C(i) là số gói tin đến trễ trên kết
nối i.
Nếu Rd(i) lớn hơn một ngưỡng cho phép là Rth, Mobile Node gửi một bản tin yêu cầu điều chỉnh lại tỷ lệ phát các gói tin đến Mobile Agent. Trong khuôn dạng của bản tin này có trường chỉ ra giá trị nhận dạng kết nối, nhờ đó Mobile Agent biết được kết nối nào có tỷ lệ gói tin đến trễ vượt ngưỡng cho phép.
Nhận được bản tin yêu cầu điều chỉnh tỷ lệ phát gói tin kèm theo giá trị nhận dạng kết nối, Mobile Agent sẽ điều chỉnh lại tỷ lệ này bằng cách trừ giá trị r(i) của kết
chỉnh lại tỷ lệ phát đến Mobile Node để Mobile Node xoá các biến đếm C của các kết nối bằng cách thiết lập chúng về giá trị 0. Sau đó, Mobile Node gửi bản tin thông báo đã thiết lập các giá trị C bằng 0 cho Mobile Agent. Mobile Agent sau khi nhận được
Đưa ra tỷ lệ phát các gói tin trên các giao diện inf(1), inf(2),….,inf(n) là r(1), r(2)……,r(n); r(i):nguyên dương
Các r(i) <> 1 ( i=1-> n)
Đánh số thứ tự các gói tin
Có bản tin yêu cầu điều chỉnh tỷ lệ phát
từ Mobile Node gửi tới?
Nhân tất cả các r(1), r(2),………,r(n) với cùng một số nguyên dương A
(Sao cho A>1)
Sai
Sai Đúng Đúng
Phát các gói tin theo tỷ lệ đã định
Điều chỉnh tỷ lệ phát.
Nếu inf(i) có tỷ lệ trễ lớn hơn ngưỡng R thì điều chỉnh tỷ lệ phát trên các giao
diện thành r(1), r(2),….r(i)-1,…..r(n)
Đúng
Hình 15. Hoạt động của giải thuật ở Mobile Agent
bản tin thông báo này sẽ đánh số thứ tự cho các gói tin ứng dụng và truyền chúng trên các kết nối theo tỷ lệ mới mà nó vừa điều chỉnh.Hình 16 là lưu đồ trao đổi bản tin giữa Mobile Agent và Mobile Node.
Ở đây có hai vấn đề cần giải quyết. Một là khi trừ r(i) đi một đơn vị để điều chỉnh tỷ lệ phát các gói tin giữa các kết nối, cần phải đảm bảo cho giá trị này khác 0. Để làm được điều đó, mỗi khi có một r(i) nào đó bằng 1 thì nhân tất cả r(1), r(2),….,r(i), … r(n) lên cùng một hệ số nguyên dương lớn hơn 1.
Vấn đề thứ hai là, làm thế nào để phát gói tin theo tỷ lệ mà Mobile Agent đã đưa ra? Để giải quyết vấn đề này, đề tài sử dụng giải thuật DC (Distributiion Counter) để
đảm bảo cho tỷ lệ phát các gói tin trên các kết nối là không thay đổi cho đến khi có một tỷ lệ mới được Mobile Agent đưa ra.
Hình 16. Lưu đồ trao đổi bản tin giữa Mobile Agent và Mobile Node.
3.3 Triển khai thực thi giải pháp
3.3.1 Các yêu cầu cần thiết
Mục đích cuối cùng của giải pháp là thúc đẩy tốc độ truyền các gói tin từ Mobile Agent đến Mobile Node trên các đường kết nối khác nhau của giữa chúng. Việc áp dụng giải thuật tại Mobile Agent và Mobile Node phải làm tăng tốc độ tải các tập tin của Mobile Node. Vì vậy yêu cầu đặt ra là giải thuật cần đơn giản và được tối ưu hoá, vì nếu giải thuật quá phức tạp thì thời gian thực thi giải thuật ở Mobile Agent và Mobile Node lớn, dẫn đến mục tiêu tăng tốc độ truyền các tập tin đạt được là không cao.
Bên cạnh đó, giải pháp phải đảm bảo không làm thay đổi quá nhiều cấu hình hiện tại và đảm bảo tính trong suốt đối với người sử dụng. Người sử dụng chỉ cần cài đặt chương trình ứng dụng trên thiết bị đầu cuối của mình mà không cần biết đến các hoạt bên trong của giải thuật.
3.3.2 Thiết kế kiến trúc cơ bản của chƣơng trình mô phỏng giải thuật
Kiến trúc cơ bản của chương trình bao gồm các mô-đun chính như được chỉ ra trong hình 17. Chức năng của các mô-đun như sau:
Mobile Agent
Mobile Node
gói tin ứngdụng (STT gói tin, dữ liệu) yêu cầu điều chỉnh tỷ lệ phát (STT của kết nối)
xác nhận đã điều chỉnh tỷ lệ phát
thông báo đã thiết lập các biến đếm C bằng 0
+ Mô - đun PacketSniffer: Nhận các gói tin trên các giao diện của Mobile Node
+ Mô - đun Monitor: xác định xem các gói tin đến Mobile Node có bị trễ hay không, tính tỷ lệ các gói tin trễ trên các giao diện tại Mobile Node
+ Mô - đun MsgSender: Gửi các bản tin điều khiển như yêu cầu điều chỉnh tỷ lệ phát, thông báo trạng thái các biến đếm ,…. từ Mobile Node đến Mobile Agent
+ Mô - đun PacketCapture: Bắt các gói tin được gửi từ các thực thể mạng tới
+ Mô - đun MsgHander: Xử lý các gói tin mà nó bắt được. Nếu đấy là các gói tin ứng dụng có đích đến là Mobile Node thì nó chuyển các gói tin đó cho mô - đun Scheduler + Mô - đun Scheduler: Lập lịch chuyển tải các gói tin bao gồm việc xác định các kết nối đang có và định ra tỷ lệ phát các gói tin trên các kết nối đó.
+ Mô - đun PacketSender: Chuyển các gói tin đến Mobile Node theo tỷ lệ mà mô - đun Scheduler đã quyết định
Hình 17. Kiến trúc cơ bản của chương trình
a. Thiết kế chƣơng trình tại Mobile Agent:
Mobile Agent sử dụng một socket lắng nghe tất cả các gói tin truyền tới nó trên một card mạng. Sau khi lấy được một gói tin nó sẽ xem gói tin đó được chuyển tới Mobile Node nào và thực hiện việc lập lịch cho gói tin trên các kết nối khả dụng từ Mobile Agent tới Mobile Node.
Việc lập lịch dựa trên các thông tin về tỷ lệ trễ của các gói tin trên các giao diện mạng. Mỗi một giao diện mạng có một tỷ lệ các gói tin đến trễ. Nếu tỷ lệ các gói tin đến trễ vượt quá ngưỡng cho phép xuất hiện ở một trong các giao diện, một thông báo sẽ được gửi từ Mobile Node đến Mobile Agent yêu cầu điều chỉnh lại tỷ lệ phát các gói tin trên các giao diện. Việc phát các gói tin dựa trên tỷ lệ đã quy
định được thực hiện bằng cách áp dụng giải thuật DC đã được đề cập đến trong phần nghiên cứu liên quan.
Việc lập lịch phát các gói tin được thực hiện bởi hàm schedulePacket(). Kết quả thực thi của hàm này là một địa chỉ của một giao diện mạng ở phía Mobile Node. Nghĩa là, hàm schedulePacket() sẽ chọn ra kết nối nào giữa Mobile Agent và Mobile Node là thích hợp nhất để truyền một gói tin có đích đến là Mobile Node. Sau khi đã lập lịch xong, Mobile Agent sẽ thêm vào tiêu đề của gói tin gửi tới Mobile Node một trường thứ tự gửi gói tin để phục vụ cho quá trình lập lịch. Trường này có tên là packetSequence, được thêm vào phần padding của gói tin. Đồng thời Mobile Agent thay đổi địa chỉ đích đến của gói tin thành địa chỉ lấy được sau quá trình lập lịch hay chính là điạ chỉ giao diện mạng được chọn để truyền gói tin tại Mobile Node. Tiếp đó, Mobile Agent tính lại checksum cho gói tin. Cuối cùng, Mobile Agent gửi gói tin này tới giao diện đã được chọn ra ở Mobile Node nhờ quá trình lập lịch.
Mobile Agent đồng thời lắng nghe tất cả các gói tin từ các Mobile Node gửi tới thông qua một cổng cố định là cổng 2903. Các gói tin này mang thông tin điều khiển như thông tin lập lịch hoặc về kết nối mới từ Mobile Node tới Mobile Agent:
Khi có một kết nối mới được thiết lập thì gói tin Mobile Agent nhận được có trường Type là NEW_MSG
Nếu là gói tin mang thông tin lập lịch như tỷ lệ độ trễ mà Mobile Node gửi tới Mobile Agent thì gói tin nhận được có trường Type là UPDATE. Về phía Mobile Agent, khi nhận được một gói tin trên cổng 2903 thì tuỳ vào trường Type của gói tin đó là gì nó sẽ thực hiện các công việc thích hợp.