Thuật toán khởi động chậm (Slow Start).

Một phần của tài liệu Nghiên cứu cơ chế điều khiển trong giao thức TCP (Trang 37 - 40)

Nguyên lý bảo toàn gói tin trong điều khiển lưu lượng TCP: ”giữ cho số gói số liệu có mặt trong mạng của một kết nối không thay đổi”

2.3.2.1Thuật toán khởi động chậm (Slow Start).

Thuật toán này được thực hiện việc tăng dần lượng dữ liệu được vận chuyển trong mạng để đạt tới sự cân bằng. Khởi động chậm ta hiểu một cách cụ thể là bắt đầu với một giá trị cửa sổ (lượng dữ liêu được gửi đi) nhỏ, sau ta tăng dần lên theo cấp số cộng. Nhưng vì cấp số cộng ở đây là tăng theo số gói ACK biên nhận, cho nên quá trình tăng của nó cũng nhanh. Như tăng theo hàm số mũ.

Thuật toán như sau:

• Thêm vào một biến trạng thái mới, gọi là cửa sổ tắc nghẽn, congestion window (cwnd) tới mỗi trạng thái kết nối.

• Khi khởi động, hay khởi động lại sau một mất mát nào đó, đặt cwnd tới bằng một gói tin.

• Với mỗi ACK cho dữ liệu mới, tăng cwnd bởi một, (tức là cửa sổ tắc nghẽn được tăng lên gấp đôi).

• Khi gửi, gửi lượng nhỏ nhất của cwnd và cửa sổ đã thông báo của người nhận. Hoạt động của thuật toán được mô tả trong hình 16 sau:

Hình 16. Hoạt động của thuật toán Slow Start

Thuật toán khởi động chậm định nghĩa thêm khái niệm “cửa sổ tắc nghẽn” (congestion window), gọi là cwnd, cho thực thể TCP phát. Một khi kết nối TCP được

thiết lập, cwnd được gán giá trị: cwnd=1 đơn vị gói tin có độ dài được thông báo bởi thực thể TCP đối tác.

Thực thể TCP bắt đầu phát với cwnd=1. Mỗi khi nhận được thông báo biên nhận trả lời ACK, giá trị cửa sổ cwnd được tăng thêm ACK (nói cách khác, thì giá trị cwnd được tăng gấp đôi), cho đến khi xuất hiện tình trạng tắc nghẽn số liệu thể hiện qua việc gia tăng của thời gian khứ hồi RTT. Đến đây, thực thể phát cần biết rằng độ lớn của cửa sổ cwnd đã quá lớn, và cần phải có điều chỉnh thích hợp.

Thuật toán được thể hiện như sau: Initialize: cwnd==1

For (each segment ACKed) Cwnd++

Hình 17. Hoạt động của Slow Start

Với hình 17 trên, ta thấy cửa sổ tắc nghẽn, cwnd được tăng theo hàm số mũ (nó liên tiếp được nhân đôi), và khi việc mất mát gói tin (được xác định bởi bộ thời gian tại phía người gửi) chỉ ra rằng sự tắc nghẽn là đã xảy ra.

Một chú ý quan trọng trong hoạt động này, đó là tốc độ tăng của kích thước cửa sổ w. Để đạt tới kích thước cửa sổ w, nó mất thời gian RTT.log2w, trong đó RTT là thời gian khứ hồi. Như vậy, dễ thấy rằng nếu các kết nối có RTT khác nhau, chúng sẽ nhận được sự chia sẻ băng thông theo thời gian khác nhau, và sự chia sẻ này không công bằng với nhau. Cụ thể, các kết nối có RTT nhỏ hơn, sẽ mất ít thời gian hơn để tăng dần lên lượng băng thông mà chúng chiếm dữ. Các kết nối có chặng đường đi xa hơn, có thời gian RTT lớn hơn sẽ bị sự chia sẻ không công bằng băng thông, khi băng thông tăng nhanh được chia sẻ dần cho các kết nối có chặng đường đi ngắn hơn.

Vì vậy, việc nghiên cứu để thực hiện được các chính sách quản lý hàng đợi hợp lý, thực hiện sự chia sẻ công bằng băng thông giữa các kết nối đầu cuối- đầu cuối (end-to-end) có thời gian trễ khác nhau là quan trọng. Chúng giúp đảm bảo sự công bằng trong truyền thông mạng, giúp mạng hoạt động ổn định và hiệu quả hơnl trong khoá luận tốt nghiệp này, việc xây dựng lên mô hình hàng đợi có chứa các mức ưu tiên cho các kết nối, từ đó gán cho mỗi kết nối có được tỉ lệ băng thông định trước sẽ được xem xét, khi đó các kết nối sẽ không bị chiếm dụng băng thông lẫn nhau một cách không công bằng.

Một phần của tài liệu Nghiên cứu cơ chế điều khiển trong giao thức TCP (Trang 37 - 40)