M ở đầu
3.8.2 Các ràng buộc và hoạt động của giao thứ c
Sau khi vòng được khởi tạo, các tham số sau được khởi tạo ở tất cả các nốt: THTi := 0
LCi := 0
TRTi := TTRT
Giá trị TRTi luôn đếm giảm xuống. Nếu giảm về 0, thì các thao tác sau sẽđược thực thi:
TRTi := TTRT LCi := LCi + 1
39
Nguyễn Tiến Lâm Khóa luận tốt nghiệp - 2005 – ĐHCN
Giá trị LCi tăng lên một đơn vị mỗi khi giá trị TRTi giảm về 0, sau đó giá trị
TRTi lại tiếp tục quá trình đếm giảm. Bình thường, nếu giá trị LCi vượt quá 1 (xác
định có lỗi xảy ra) thì quá trình khôi phục vòng sẽđược khởi tạo.
Khi một trạm nhận được thẻ bài, nếu LCi = 0 thì thẻ bài đó là thẻ bài sớm (early token), nếu LCi > 0 thì thẻ bài đó là thẻ bài muộn (late token).
Khi một thẻ bài sớm đến nốt i, các thao tác sau được thực thi: THTi := TRTi
TRTi := TTRT
Trạm bắt đầu đếm giảm giá trị THTi đồng thời truyền các gói tin không
đồng bộ. Quá trình này có thể kéo dài chừng nào THTi > 0.
Sau khi THTi hết hiệu lực hoặc trạm không còn gói tin để truyền, trạm sẽ phát ra thẻ bài mới.
Khi một thẻ bài muộn đến nốt i, các thao tác sau được thực thi: LCi := 0
Trạm giải phóng thẻ bài
Chú ý rằng khi nhận thẻ bài muộn, giá trị TRTi không được khởi tạo lại và không có gói tin không đồng bộ nào được truyền.
Ví dụ 3.2
Một ví dụ của giao thức Timed token rotation khi truyền giữ liệu không đồng bộ.
Hình 3.15 đưa ra đồ thị thời gian của các sự kiện trong trường hợp có ba trạm hoạt động trong mạng FDDI. Ba trạm đó là S1, S2 và S3. Thời gian được biểu diễn theo chiều thẳng đứng, thẻ bài được biểu diễn bằng đường ngang đậm, và việc truyền gói tin
40
Nguyễn Tiến Lâm Khóa luận tốt nghiệp - 2005 – ĐHCN
Hình 3.15 Đồ thị thời gian của các sự kiện với ba trạm hoạt động trong FDDI Giảđịnh rằng các trạm đều không có gói tin cần truyền trong khoảng thời gian t = Tl (ở đây, Tl là độ trễ của vòng). Sau khoảng thời gian Tl, cả ba trạm đều bị bùng nổ
gói tin cần được truyền. Một chuỗi các sự kiện diễn ra như sau:
1. t = 0: Trạm S1 nhận được thẻ bài và khởi tạo lại giá trị TRT vì nó không có gói tin cần truyền và thẻ bài được truyền đến trạm tiếp theo.
2. t = t12: Trạm S2 nhận được thẻ bài và khởi tạo lại giá trị TRT. Ở đây t12 là
độ trễ do lan truyền tín hiệu từ trạm S1 đến S2.
3. t = t13: Trạm S2 nhận được thẻ bài và khởi tạo lại giá trị TRT. Ở đây t13 là
độ trễ do lan truyền tín hiệu từ trạm S1 đến S2.
4. t = Tl: Trạm S1 nhận được thẻ bài. Lúc này, nó có yêu cầu truyền gói tin. Nó giữ lấy gói tin và nhận thấy giá trị của TRT của nó là TTRT - Tl, giá trị LC của nó là 0. Vì thế nó gán THT := TRT, TRT := TTRT và giữ lấy thẻ bài để truyền trong khoảng thời gian là TTRT - Tl để truyền các gói tin.
41
Nguyễn Tiến Lâm Khóa luận tốt nghiệp - 2005 – ĐHCN
5. t = TTRT: Giá trị THT tại trạm S1 đã hết hiệu lực. Trạm S1 thả thẻ bài. 6. t = TTRT + t12: Trạm S2 nhận được thẻ bài. Lần nhận thẻ bài trước đó là tại thời điểm t = t12. Vậy thời gian kể từ lần nhận thẻ bài trước đến lần nhận thẻ bài này là TTRT, vì vậy, giá trị TRT của S2 tại thời điểm này là TTRT và giá trị LC là 1. Trạm S2 nhận thấy không thể truyền gói tin đi được. Vì thế nó gán giá trị LC của nó về 0 và thả
thẻ bài.
7. t = TTRT + t13: Trạm S3 nhận được thẻ bài. Lần nhận thẻ bài trước đó là tại thời điểm t = t13. Vậy thời gian kể từ lần nhận thẻ bài trước đến lần nhận thẻ bài này là TTRT, vì vậy, giá trị TRT của S3 tại thời điểm này là TTRT và giá trị LC là 1. Trạm S3 nhận thấy không thể truyền gói tin đi được. Vì thế nó gán giá trị LC của nó về 0 và thả
thẻ bài.
8. t = TTRT + Tl: Trạm S1 nhận được thẻ bài. Lần nhận thẻ bài trước đó là tại thời điểm t = Tl. Vậy thời gian kể từ lần nhận thẻ bài trước đến lần nhận thẻ bài này là TTRT, vì vậy, giá trị TRT của S1 tại thời điểm này là TTRT và giá trị LC là 1. Trạm S1 nhận thấy không thể truyền gói tin đi được. Vì thế nó gán giá trị LC của nó về 0 và thả
thẻ bài.
9. t = TTRT + Tl + t12: Trạm S2 nhận được thẻ bài. Lúc này, nó có yêu cầu truyền gói tin. Nó giữ lấy gói tin và nhận thấy giá trị của TRT của nó là TTRT - Tl, giá trị LC của nó là 0. Vì thế nó gán THT := TRT, TRT := TTRT và giữ lấy thẻ bài để
truyền trong khoảng thời gian là TTRT - Tl để truyền các gói tin. Nó ngừng truyền tại thời điểm t = TTRT + Tl + t12 + (TTRT - Tl) và thả thẻ bài.
11. t = 2*TTRT + t13: Trạm S3 nhận được thẻ bài, thẻ bài này là thẻ bài muộn nên nó sẽ thả thẻ bài.
12. t = 2*TTRT + Tl: Trạm S1 nhận được thẻ bài, thẻ bài này là thẻ bài muộn nên nó sẽ thả thẻ bài.
13. t = 2*TTRT + Tl + t12: Trạm S2 nhận được thẻ bài, thẻ bài này là thẻ bài muộn nên nó sẽ thả thẻ bài.
14. t = 2*TTRT + Tl + t13: Trạm S3 nhận được thẻ bài. Lúc này, nó có yêu cầu truyền gói tin. Nó giữ lấy gói tin và nhận thấy giá trị của TRT của nó là TTRT - Tl, giá
42
Nguyễn Tiến Lâm Khóa luận tốt nghiệp - 2005 – ĐHCN
trị LC của nó là 0. Vì thế nó gán THT := TRT, TRT := TTRT và giữ lấy thẻ bài để
truyền trong khoảng thời gian là TTRT - Tl để truyền các gói tin. Nó ngừng truyền tại thời điểm t = 2*TTRT + Tl + t13 + (TTRT - Tl) và thả thẻ bài.
19. t = 3*TTRT + 2*Tl: trạm S1 nhận lấy thẻ bài và bắt đầu lặp lại kể từ sự
kiện thứ 4.