Trong phần này chúng ta xem xét tổng quan thuật toán được đề xuất. Để đơn giản, chúng ta sẽ xét hệ thống với 3 ONU.
1) Hình dung rằng, tại một lúc nào đó của thời gian đến, OLT biết chính xác có bao nhiêu byte đang chờ đợi trong từng bộ đệm của ONU và RTT của từng ONU. OLT sẽ lưu dữ liệu này vào bảng dò được minh họa hình 5.3. Tại lúc đến, OLT gởi một bản tin điều khiển đến ONU1 cho phép nó gửi 6000byte. Chúng ta gọi bản tin này là Grant. Khi đó, hướng xuống OLT gởi dữ liệu đến tất cả các ONU, Grant chứa ID đích của của ONU cũng như kích thước cửa sổ được chấp nhận.
2) Vào lúc đang nhận Grant OLT, ONU1 bắt đầu gởi dữ liệu của nó theo kích thước được cấp. Trong ví dụ này, ta có 6000 byte. Cùng lúc đó ONU ghi dữ liệu mới nhận được từ người dùng của nó. Ở cuối cửa sổ truyền của nó, ONU1 sẽ phát bản tin điều khiển của chính nó. Bản tin này báo cho OLT biết được số lượng byte trong bộ đệm của ONU1 vào lúc đó. Trong trường hợp của chúng ta là 550 byte.
b)
c)
Hình 5.3: Các bước của thuật toán Interleaved Polling
3) Ngay trước khi OLT nhận trả lời từ ONU1, nó biết khi nào bit cuối cùng của ONU1 sẽ đến. Điều này được OLT tính toán như sau:
a) Bit đầu tiên sẽ đến ngay sau RTT time. RTT trong tính toán của chúng ta bao gồm RTT thực tế, thời gian xử lý Grant, thời gian phát Request và mào đầu của OLT để định dạng sự xếp hàng của bit và byte trong dữ liệu nhận được, chính xác là khoảng thời gian giữa lúc gởi Grant đến ONU và nhận dữ liệu từ cùng ONU.
b) Khi mà OLT biết bao nhiêu byte mà nó cho phép ONU1 gởi thì nó biết khi nào bit cuối cùng từ ONU1 sẽ đến. Sau đó nhận biết được RTT của ONU2, OLT sẽ sắp xếp 1 Grant đến ONU2 mà bit đầu tiên từ ONU2 sẽ đến với khoảng bảo vệ nhỏ sau khi bit cuối cùng từ ONU1 đến (5.3b).
Khoảng bảo vệ cung cấp sự bảo vệ cho sự thay đổi của RTT và thời gian xử lý bản tin điều khiển của các ONU khác nhau. Ngoài ra, bộ thu của OLT cần một ít thời gian để sửa lại tín hiệu đến vì các ONU có các mức năng lượng khác nhau do có khoảng cách đến OLT là khác nhau.
4) Sau một lúc, dữ liệu từ ONU1 đến. Ở cuối đường truyền của ONU1 có một Request mới chứa thông tin về khối lượng byte trong bộ đệm của ONU1 trước khi truyền Request. OLT sẽ sử dụng thông tin này để cập nhật vào bảng dò (Polling table) (hình 5.3c).
Bằng cách ghi lại thời gian khi mà Grant gởi đi và dữ liệu được nhận về, OLT liên tục cập nhật RTT cho các ONU tương ứng.
5) Tượng tự bước 4), OLT tính toán thời gian mà bit cuối cùng từ ONU2 sẽ đến. Do đó, nó sẽ biết khi nào gởi Grant đến ONU3 vì vậy dữ liệu của nó được nối vào phần cuối dữ liệu của ONU2. Sau một lúc, dữ liệu từ ONU2 sẽ đến. OLT sẽ cập nhật một lần nữa vào bảng của nó, thời gian này được lưu vào cho ONU2 (hình 5.3d).
N i R xWi G T 1 max ( 8 max) (5.1)
Nếu một ONU không có dữ liệu trong bộ đệm, nó sẽ gởi 0 byte trở lại OLT. Do đó, ở chu kỳ tiếp theo ONU sẽ được cấp 0 byte, chẳng hạn nó sẽ gởi một yêu cầu mới nhưng không có dữ liệu.
Chú ý rằng, kênh thu của OLT được sử dụng hầu hết 100%. Các ONU trống không được cấp cửa sổ truyền. Điều này dẫn tới chu kỳ thời gian được rút ngắn, nên tần số dò các ONU tích cực thường xuyên hơn.
Như vậy, theo sự mô tả trên thì không cần đống bộ cho các ONU. Mỗi ONU thực hiện cùng một thủ tục thông qua bản tin Grant nhận từ OLT. Toàn bộ sự sắp xếp và thuật toán định vị băng thông là ở tại OLT. Các ONU không cần dàn xếp hoặc nhận biết các thông số mới cũng không cần chuyển sang các thiết lập đồng hồ mới.
Nếu như OLT cho phép từng ONU gởi toàn bộ nội dung bộ đệm của nó trong một lần truyền thì dung lượng dữ liệu cao của các ONU có thể chiếm toàn bộ băng thông. Để tránh điều này, OLT sẽ giới hạn cửa sổ truyền tối đa. Vì vậy, mỗi ONU sẽ thiết lập một Grant để gởi càng nhiều byte mà nó đã yêu cầu trong chu kỳ trước nhưng không nhiều hơn giới hạn cực đại. Có nhiều sơ đồ khác nhau để xác định giới hạn, có thể là cố định dựa trên Service Level Agreement(SLA) cho từng ONU hoặc là động dựa trên tải mạng trung bình. Phần tiếp theo chúng ta sẽ xem xét vấn đề này.