3.4.1 Tính năng Multi-homing trong SCTP [33]
Multi-homing là tính năng cho phép cho một máy trạm chạy giao thức SCTP có thể có nhiều hơn một địa chỉ IP. Lợi ích của Multi-homing giúp thực thể SCTP vẫn hoạt động tốt ngay cả khi kết nối mạng tới một IP bị lỗi, IP còn lại sẽ đƣợc thay thế trong trƣờng hợp này. Trong trƣờng hợp thực thể kết nối chỉ có thể chạy với 1 địa chỉ IP nếu lỗi kết nối với IP đó xảy ra thì dẫn tới lỗi toàn bộ và không có khả năng khôi phục trong một thời gian ngắn, điều này đặc biệt nguy hiểm với các nút mạng là các phần tử chính (core) của mạng, việc lỗi một địa chỉ IP có thể dẫn tới làm tê liệt toàn bộ hệ thống.
Với các thực thể SCTP đƣợc thiết lập tính năng Multi-homing thì theo mặc định dữ liệu chỉ đƣợc truyền trên đƣờng chính (primary path) và cũng phản hồi các chunk SACK, HEARTBEAT, ACK ... cùng với địa chỉ đích của tầng giao vận mà nó nhận đƣợc gói tin.
Khi nút có nhiều địa chỉ IP và chạy tính năng Multi-homing thì mỗi giao tiếp mạng (interface network) đƣợc gắn với một IP khác nhau sẽ đƣợc gán riêng một giá trị RTO (Retransmission Timeout) độc lập với nhau [33]. Quá trình phát hiện tuyến đƣờng bị lỗi sẽ diến ra nhƣ sau: Mỗi khi bộ đếm thời gian T3-rtx bị timeout trên bất kì một địa chỉ nào hoặc khi HEARTBEAT đƣợc gửi đi tới một địa chỉ chƣa đƣợc sử dụng (idle) mà không đƣợc biên nhận trong một khoảng thời gian RTO, biến đếm lỗi của mỗi địa chỉ sẽ đƣợc tăng lên. Khi giá trị của biến đếm này vƣợt quá giá trị tham số ‗Path.Max.Retrans‘ đƣợc thiết lập trong giao thức thì địa chỉ đích sẽ đƣợc đánh dấu là không hoạt động và sẽ gửi thông báo lên tầng cao hơn. Khi một gói tin đƣợc biên nhận hoặc một HEARTBEAT đƣợc gửi tới địa chỉ đích và đƣợc biên nhận bằng gói bản tin HEARTBEAT ACK thì thực thể SCTP sẽ xóa biến đếm số lần lỗi cho mỗi địa chỉ đó. Khi tuyến đƣờng chính bị đánh dấu là không hoạt động, phía gửi sẽ tự động truyền dữ liệu mới sang địa chỉ đích dự phòng nếu địa chỉ này vẫn đƣợc đánh dấu là hoạt động. Ở đây chúng ta thấy rằng chỉ khi nào tuyến đƣờng chính thực sự không hoạt động thì thực thể SCTP mới chuyển sang tuyến đƣờng dự phòng. Trong rất nhiều trƣơng hợp tuyến đƣờng chính vẫn hoạt động tuy nhiên chất lƣợng tuyến đƣờng này không tốt nhƣng vẫn không đƣợc thay thế và trong nhiều trƣờng hợp nó sẽ ảnh hƣởng lớn tới hiệu năng của mạng đặc biệt là trong mạng không dây khi mà chất lƣợng tuyến đƣờng là không ổn định và thay đổi theo thời gian và không gian hoạt động.
Thực thể SCTP sẽ duy trì giám sát các địa chỉ đích trên tầng transport bằng cách định kì gửi đi các bản tin HEARTBEAT tới các địa chỉ này. Khoảng thời gian định kì này
có thể đƣợc thiết lập bởi tầng cao hơn (HB.interval). Khi các địa chỉ này nhận đƣợc bản tin HEARTBEAT phải ngay lập tức phản hồi lại bằng một bảng tin HEARTBEAT ACK để thông báo trạng thái của mình với phía gửi. Nhƣ vậy HEARTBEAT đƣợc coi nhƣ là sợi dây để duy trì trạng thái kết nối của các thực thể SCTP. Bản tin HEARTBEAT là bản tin 64 bit, lƣợng thông tin trong bản tin này cũng không nhiều (bao gồm thời gian hiện tại gửi gói tin, địa chỉ đích của gói tin).
Trong phần tiếp theo đây tôi sẽ trình bày về phƣơng pháp cải tiến của mình với tính năng Multi-homing dựa trên các thông tin đƣợc bổ sung thêm vào bản tin HEARTBEAT.
3.4.2 Đề xuất cải tiến tính năng Multi-homing
Nhƣ phân tích ở trên chúng ta thấy rằng chỉ khi nào tuyến đƣờng chính thực sự đƣợc đánh dấu là không hoạt động (inactive) thì thực thể giao thức SCTP mới bắt đầu có hành động chuyển lƣu lƣợng sang tuyến đƣờng dự phòng. Nếu trong trƣờng hợp tuyến đƣờng chính không thực sự lỗi nhƣng hoạt động rất chập chờn và thông lƣợng xuống rất thấp thì thực thể SCTP vẫn sẽ cố gắng duy trì kết nối đó điều này sẽ làm cho hiệu năng của mạng sẽ giảm đi trong khi đó đƣờng dự phòng hoàn toàn có thể đƣợc sử dụng để thay thế. Dựa trên ý tƣởng đó trong luận văn sẽ đề xuất phƣơng án cải tiến tính năng Multi- Homing trong SCTP đó là ―Chuyển sang tuyến đƣờng dự phòng khi tốc độ gửi tin ở tuyến đƣờng chính bị chậm‖. Luận văn sử dụng lại thông số độ trễ trung bình MAD đã phân tích ở mục 3.3 để xác định độ trễ của từng tuyến đƣờng. Tuyến đƣờng nào có giá trị MAD cao là tuyến đƣờng có chất lƣợng kém. Giá trị MAD đƣợc tính là tổng giá trị MAD trung bình của tất cả các tuyến đƣờng giữa 2 thực thể SCTP tham gia quá trình truyền dữ liệu. Để mô tả rõ ràng chúng ta sử dụng một ví dụ nhƣ sau: Hai thực thể SCTP nguồn và đích có nhiều hơn một giao tiếp mạng (interface) và các giao tiếp này sẽ đƣợc dùng để thiết lập tính năng Multi-homing. Tại một thời điểm nút nguồn sẽ chỉ coi tuyến đƣờng đến 1 giao tiếp mạng của nút đích là tuyến đƣờng chính, các tuyến đƣờng đến các giao tiếp mạng còn lại là tuyến đƣờng dự phòng. Toàn bộ lƣu lƣợng lúc này sẽ đƣợc truyền trên tuyến đƣờng chính trên. Khi mỗi gói tin đƣợc truyền đi theo tuyến đƣờng đó thì tại mỗi giao tiếp mạng sẽ tính toán đƣợc độ trễ trung bình MAD của các bản tin mà chúng xử lý. Các thông số này đƣợc tính toán tại tầng MAC sau đó đƣợc truyền lên tầng transport. Thực thể SCTP sẽ quản lý việc sắp xếp và lƣu trữ các giao tiếp mạng mà các đƣờng từ nguồn đến đích
qua đó có tổng độ trễ trung bình từ thấp đến cao. Sau mỗi khoảng thời gian định kì bản tin HEARTBEAT sẽ đƣợc gửi đi với cả nút nguồn và đích. Khi đó trong bản tin HEARTBEAT sẽ bổ sung thêm thông tin để thông báo với thực thế SCTP nguồn tuyến đƣờng nào có giá trị độ trễ trung bình thấp nhất để thực thể nguồn quyết định việc thay đổi tuyến đƣờng cho phù hợp.
Việc bổ sung thông tin tuyến đƣờng tốt nhất vào trong bản tin HEARTBEAT đƣợc thực hiện bằng cách sau: Trƣớc hết bổ sung thêm một số trƣờng thông tin trong bản tin HEARTBEAT chunk. Các trƣờng thông tin này sẽ lƣu trữ giá trị MAD tốt nhất và giao tiếp mạng tƣơng ứng của thực thể SCTP. Định kì trƣớc khi gửi bản tin HEARTBEAT đi thì thực thể SCTP sẽ thu thập thông tin giá trị MAD của từng giao tiếp mạng của nó, sau đó sẽ lấy giá trị MAD thấp nhất trong tất cả các giao tiếp mạng để đƣa vào bản tin HEARTBEAT. Khi nhận đƣợc bản tin HEARTBEAT phía nguồn sẽ xử lý và lấy ra thông tin về tuyến đƣờng tốt nhất và thực hiện thay đổi tuyến đƣờng chính đồng thời toàn bộ lƣu lƣợng sẽ đƣợc chuyển sang đƣờng truyền mới có độ trễ thấp hơn.
Nhƣ vậy, với phƣơng pháp đề xuất này tôi sẽ luôn luôn chọn đƣợc tuyến đƣờng có độ trễ thấp nhất để truyền, đồng thời chúng ta cũng thấy rằng giá trị tuyến đƣờng tốt nhất sẽ đƣợc cập nhật định kì theo thời gian mà các bản tin HEARTBEAT đƣợc gửi đi và do vậy giá trị này sẽ là giá trị tốt nhất ở thời điểm đó.
Trong phần tiếp theo tôi sẽ sử dụng bộ mô phỏng NS-2 để thực hiện mô phỏng và đánh giá kết quả phƣơng pháp đề xuất của mình với 2 mô hình mạng truyền thống là mô hình chuối (chain) và mô hình lƣới (grid).
CHƢƠNG 4: CÀI ĐẶT MÔ PHỎNG VÀ ĐÁNH GIÁ