Chương 12: Chặn cuộc gọi (Call blocking) Trước khi mạng đi vào trạng thái tắc nghẽn nghiêm trọng cơ chế điều khiển chấp nhận kết nối có thể chặn bất kỳ yêu cầu kết nối mới nào. Phương pháp này cũng tương tự như trong mạng điện thoại, khi mạng bò tắc nghẽn thì nó sẽ chặn các cuộc gọi mới và thông báo bận cho các cuộc gọi này. Phương pháp này có thể tránh tắc nghẽn nghiêm trọng cho các dòch vụ hướng liên kết tuy nhiên nó không thể áp dụng cho các dòch vụ hướng không liên kết. 2.5 Điều khiển luồng: Nhiều ứng dụng thông tin dữ liệu mong muốn tận dụng khả năng băng thông sẵn có và như vậy nó cố gắng hoạt động liên tục trong trạng thái tắc nghẽn nhẹ. Ý tưởng cơ bản là hạn chế lại tải đưa ra ngay trước khi xảy ra sự mất cell trên mạng có như vậy thì mới đạt được một độ thông suất cực đại mà không có sự mất cell. Một vấn đề khác là các User truy xuất băng thông sẳn có nên có một sự công bằng, có nghóa là nếu có nhiều User đang cạnh tranh tài nguyên ngang nhau thì không có User nào chiếm hết được băng thông sẳn có. Hơn nữa những User thích ứng với mạng nên được ngăn cách với những User quá tải. Sự cân bằng này có một cái tên tổng quát la điều khiển luồng (flow control). Thực chất mục đích của nó là điều khiển luồng tải đưa ra vừa đủ để đạt được một độ thông suất mà rất thỏa đáng với tài nguyên của mạng và với một độ mất cell rất thấp. Điều này yêu cầu một sự hợp tác giữa User và mạng theo đó mạng thông báo cho User về sự tắc nghẽn theo một cách thức kòp thời và những ứng dụng của User thì giảm lưu lượng theo tình trạng tắc nghẽn. Có ba phương pháp điều khiển luồng là : điều khiển dựa vào cửa sổ phát, dựa vào tốc độ và dựa vào credit. Các phương pháp này có điểm chung là đều cố gắng điều khiển luồng số liệu từ nguồn phát để tránh sự tắc nghẽn nặng trong mạng. Điểm khác nhau là cách thông báo phản hồi, chỉ thỉ tắc nghẽn được phát và cách để tránh tắc nghẽn. Để mô tả hoạt động của ba phương pháp này ta lấy một ví dụ về mô hình truyền file giữa hai client và một server thông qua một chuyển mạch với ngưỡng của bộ đệm được lấy bằng 8 với cấu trúc như hình sau: Tốc độ của cả hai liên kết nguồn cũng như liên kết ra là như nhau (bằng DS3). Khoảng thời gian lan truyền của một vòng RTT(Round Trip Time) được đo từ một nguồn tới chuyển mạch(đặt cùng một chổ với máy chủ) và quay trở lại chính nguồn đó. Hai nguồn phát cách nhau qua chuyển mạch là một vòng RTT 16 cell(khoảng 8 dặm với tốc độ DS3). Sở dó có giá trò này là bởi vì mức ngưỡng của bộ đệm chuyển mạch là 8 và một vòng khắp mạng sẽ gấp đôi nên số lượng cell chưa giải quyết trên một vòng mạng là 16. Đay là mô hình của một ứng Máy khách Máy khách Máy chủ Chuyển mạch Bộ đệm DS3 DS3 DS3 Thời gian một vòng RTT(Round Trip Time) dụng chuyển file giữa hai máy khách (client) và một máy chủ (server). Mỗi client phát một cách độc lập nhưng đồng thời với máy kia. Các thông số được chọn sao cho mỗi phương pháp đạt được độ thông suất khoảng 75% độ thông suất cực đại. Mỗi ví dụ kiểm soát 512 cell time hoặc 32 RTT. 2.5.1 Điều khiển luồng dựa vào cửa sổ phát: Trong phương pháp này mỗi nguồn phát (client hoặc workstation) có một cửa sổ phát, cửa sổ này xác đònh số lượng cell có thể được phát trong mỗi RTT liên tiếp, toàn bộ RTT bằng với 16 cell như đã mô tả ở trên. Chuyển mạch có một bộ đệm dùng chung với mức ngưỡng T = 8 cell. Mỗi một thời gian cho một vòng mạng RTT chuyển mạch sẽ tạo ra một sự phản hồi tới mỗi nguồn phát. Nếu nội dung của bộ đệm thấp hơn mức ngưỡng (<8) thì chuyển mạch sẽ phản hồi về nguồn phát sao cho các nguồn phát tăng cửa sổ phát của chúng một cách tuyến tính theo một lượng gia cửa sổ (bằng 1). Nếu số cell trong bộ đệm của chuyển mạch lớn hơn mức ngưỡng thì chuyển mạch sẽ tạo ra một sự phản hồi về các nguồn phát điều khiển các nguồn này giảm cửa sổ phát của chúng tới một lượng giảm gấp nhiều lần so với lượng gia tăng. Trong ví dụ này lượng giảm là 0,5. Nói một cách khác khi chuyển mạch phản hồi một chỉ thò tắc nghẽn thì mỗi nguồn sẽ giảm cửa sổ phát của nó đi một nửa, như vậy nó sẽ làm giảm phân nửa kích thước đột biến của cell kế tiếp . 2.5.2 Điều khiển luồng dựa vào tốc độ: Kỹ thuật này gần giống như kỹ thuật điều khiển luồng dùng cửa sổ phát, thay vì điều khiển cửa sổ phát thì trong kỹ thuật này chuyển mạch dùng cơ chế phản hồi để điều khiển tốc độ phát. Tốc độ phát được tính theo số cell phát trong khoảng RTT. Ban đầu tốc độ phát bằng 0. Với mỗi RTT chuyển mạch sẽ điều khiển phản hồi về nguồn phát để tăng hoặc giảm tốc độ của nguồn phát tùy theo nội dung của bộ đệm trong chuyển mạch. Bộ đệm của chuyển mạch có một mức ngưỡng trong ví dụ này là 8. Nếu nội dung của bộ đệm nằm bên dưới mức ngưỡng thì chuyển mạch sẽ tạo một thông báo phản hồi tới mỗi nguồn phát để cho phép nó tăng tốc độ phát theo theo một cấp số cộng (tăng một cell mỗi RTT). Nếu nội dung bộ đệm ở trên mức ngưỡng (>8) thì thông báo phản hồi từ chuyển mạch về nguồn phát sẽ chỉ thò nguồn phát để giảm tốc độ nguồn phát theo một cấp số nhân (giảm phân nửa tốc độ ngưỡng mỗi RTT). So với phương pháp dùng cửa sổ phát thì phương pháp này có ưu điểm là các cell phát với khoảng cách đều đặn hơn, đây là một thuận lợi quan trọng; tuy nhiên có hạn chế là nguồn phát trong phương pháp này phải phức tạp hơn để có thể điều khiển tốc độ phát của chúng. 2.5.3 Điều khiển luồng dựa vào credit: Trong phương pháp này thông số điều khiển luồng được điều chỉnh bởi nguồn là số lượng sẳn sàng để phát gọi là credit. Một nguồn phát có thể phát cell liên tục và giảm bộ đếm credit của nó đi một cho mỗi cell được phát ra, với điều kiện là dung lượng bộ đếm credit > 0. Khởi đầu bộ đếm credit bằng 0. Mỗi RTT, chuyển mạch sẽ gửi trở lại nguồn phát một thông báo chỉ thò giá trò bộ đếm credit cho mỗi nguồn (chúng có thể khác nhau). Trong ví dụ này chuyển mạch có một bộ đệm dành riêng cho mỗi kết nối ảo VCC hoặc VPC. Giá trò credit được tính dựa vào số lượng các cell còn lại trong trong bộ đệm cho mỗi kết nối ảo này. Trong ví dụ này bộ đệm là 8 cell cho mỗi nguồn phát, bởi vì RTT là 16 nên bộ đệm không thể nạp đầy bởi vì credit không thể lớn hơn 8 và credit chỉ được đưa ra chỉ một lần cho mỗi RTT. Bởi vì giá trò credit được phát ở mỗi RTT, nên mỗi nguồn phát sẽ đột biến một số cell rồi sau đó dừng lại cho tới khi nhận được credit kế tiếp. Phương pháp này cách ly các kết nối ảo và do đó tình trạng tắc nghẽn cũng có thể xảy ra trên từng liên kết ảo một.Điểm bất lợi của phương pháp này là sự phức tạp trong chuyển mạch và sự điều khiển luận lý credit. III. Khắc phục tắc nghẽn: Thủ tục khắc phục tắc nghẽn được khởi tạo khi mạng đã tắc nghẽn nhằm giảm sự xuống cấp của chất lượng dòch vụ. Các thủ tục này thường được khởi tạo khi tiû lệ mất tế bào và trễ tăng lên đáng kể. Các hoạt động ở mức này bao gồm : loại bỏ tế bào có chọn lựa, UPC động, hồi tiếp tổn hao (loss feedback) và xóa kết nối. 3.1 Loại bỏ tế bào có chọn lựa (Selective Cell Discard): Trong hầu hết thời gian mạng chỉ chấp nhận những nguồn dữ liệu mà có thể điều khiển. Thông thường khi có quá nhiều nguồn dữ liệu một lúc thì có thể tại một đường nào đó sẽ xảy ra quá tải, nhiệm vụ của mạng là phải loại bỏ bớt các cell gây nên tình trạng quá tải. Trong trường hợp này mạng sẽ loại bỏ các cell có CLP = 1 trong khi vẫn đảm bảo chất lượng dòch vụ trên cả hai luồng CLP = 0 và CLP = 1. Mục đích của sự loại bỏ cell này là tạo một sự đối xử ưu tiên cho những luồng cell có CLP = 0 hơn những luồng cell có CLP = 1 trong giai đoạn có tắc nghẽn. Sự loại bỏ cell có chọn lựa là một chức năng quan trọng và chuẩn hóa của thiết bò mạng nhằm mục đích thực hiện điều khiển tắc nghẽn. Nó được dùng để tránh tắc nghẽn và ngay cả khi khắc phục tắc nghẽn. Mạng sử dụng chức năng này để đảm Các cell có CLP=0 hoặc CLP=1 Dung lượng bộ đệm B Ngưỡng D Cổng ra Các cell tới CLP=0 hoặc CLP=1 Loại bo û cell có CLP=1 Loại bỏ cell có CLP=1 bảo cho luồng cell có CLP = 0 đạt được các thông số chất lượng dòch vụ. Hình vẽ sau mô tả sơ đồ loại bỏ cell: Bộ đệm của chuyển mạch có dung lượng là B cell, những cell đến được nạp vào bên trái của bộ đệm và những cell đi ra khỏi bộ đệm ở bên phải để đến cổng ra của chuyển mạch. Vì các cell tới có thể tới đồng thời từ nhiều đầu vào nên có thể gây ra tắc nghẽn trong bộ đệm. Trong trường hợp này những cell có CLP = 0 có thể chiếm bất cứ vò trí nào của bộ đệm. Trong bộ đệm có một ngưỡng dành cho các cell có CLP = 1 ở điểm D. Một khi bộ đệm bò lấp đầy đến mức D thì các cell có CLP = 1 sẽ bò loại bỏ; do đó sau điểm D chỉ có thể có các cell có CLP = 0 mới có thể chiếm các vò trí còn lại của bộ đệm, tất nhiên nếu tràn qua cả B thì cả các cell có CLP = 0 cũng bò loại bỏ. Bằng việc điều khiển mức ngưỡng D thì có thể điều khiển được hiệu suất mất cell có CLP = 1 và một phần nào đó ảnh hưởng đến sự trì hoãn cell. Khái niệm về ngưỡng của bộ đệm còn có thể mở ra thành nhiều ngưỡng khác nhau để thực hiện trên nhiều mức ưu tiên loại bỏ cell dựa trên cơ sở đường ảo, kênh ảo (VPI/VCI). 3.2 UPC động: Một cách khác để giải quyết tắc nghẽn là cấu hình lại các thông số UPC một cách linh động (UPC động). Điều này thực hiện bằng cách thỏa thuận lại với các user hoặc là mạng sẽ đơn phương đối với những kiểu kết nối nào đó. Một cách lý tưởng phương pháp này nên để người sử dụng có thể đònh nghóa và có thể điều khiển. 3.3 Hồi tiếp tổn hao: Một phương pháp khác để điều khiển tắc nghẽn là sử dụng giao thức lớp cao hơn (như TCP_Transmission Control Protocol) tại hệ thống đầu cuối để phát hiện tắc nghẽn xảy ra trong mạng và thực hiện giảm thông lượng phát trên chương trình ứng dụng tại hệ thống đầu cuối phát. Điều này dẫn đến dữ liệu đưa vào mạng giảm đi và do đó có thể giải tỏa được tắc nghẽn. Tuy nhiên phương pháp này có một số điểm bất lợi là: sự phản ứng đối với tắc nghẽn là khá chậm, thời gian đáp ứng tắc nghẽn tối thiểu là bằng thời gian một vòng mạng qua tất cả các mạng trung gian cộng với thời gian xử lý ở các hệ thống đầu cuối và có thể không phải là tất cả hệ thống đầu cuối đều nhận biết được tắc nghẽn và có cùng phản ứng như nhau nên dẫn đến sự mất công bằng trong xử lý. Một trong những phương thức điều khiển tắc nghẽn tiềm ẩn rất có giá trò và đang được sử dụng rộng rãi là giao thức điều khiển phát (TCP). Hoạt động của nó như sau: TCP sẽ phát từng nhóm số liệu theo kích thước nhất đònh gọi là cửa sổ phát, mỗi lần một nhóm truyền đi. TCP sẽ đợi cho đầu bên kia xác nhận trong khoảng thời gian cho trước. Khi nhận được xác nhận tốt, TCP sẽ phát một nhóm số liệu khác có kích thước cửa sổ phát gấp đôi kích thước cửa sổ mà nó vừa phát xong.Và nó sẽ tiếp tục như vậy nếu như nó vẫn nhận được xác nhận thu tốt từ đầu kia đưa đến. Khi cửa sở phát có kích thước bằng một nửa kích thước lớn nhất của cửa sổ phát lần trước (là lần dẫn tới tắc nghẽn) nó sẽ không tăng kích thước cửa sổ theo cấp số nhân nữa mà tăng lên một cách tuyến tính. Việc mở rộng cửa sổ phát này được thực hiện cho đến khi vượt quá khoảng thời gian cho phép (time out) mà vẫn không nhận được xác nhận từ đầu thu (do mất cell hay quá trễ do tắc nghẽn) thì khi đó cửa sổ phát sẽ bò thu nhỏ lại một nửa. Việc thu nhỏ này cứ tiếp tục cho đến khi nhận được xác nhận tốt từ phía thu. Sau đó quá trình tăng cửa sổ phát lại bắt đầu. 3.4 Xóa kết nối: Một phương pháp khắc phục tắc nghẽn khác có đáp ứng mạnh mẽ hơn so với các phương pháp khác là xóa một vài kết nối khi xảy ra tắc nghẽn nghiêm trọng kéo dài. Trong các kết nối có những kết nối có độ ưu tiên cao và những kết nối có độ ưu tiên thấp, khi có tắc nghẽn nghiêm trọng kéo dài thì mạng sẽ xóa bỏ những kết nối không quan trọng để dành tài nguyên cho các kết nối có độ ưu tiên cao. 3.5 Những thủ tục điều hành: Nếu tất cả các phương pháp tự động trên đều không đạt hiệu quả thì người điều hành mạng có thể can thiệp như cắt một vài đường kết nối nào đó, đònh tuyến lại lưu thông hoặc đưa thêm vào những tài nguyên bổ sung. Những thủ tục này phải được phối hợp một cách cẩn thận đặc biệt là khi có nhiều mạng liên quan nhau. . những ứng dụng của User thì giảm lưu lượng theo tình trạng tắc nghẽn. Có ba phương pháp điều khiển luồng là : điều khiển dựa vào cửa sổ phát, dựa vào tốc độ và dựa vào credit. Các phương pháp này. đều cố gắng điều khiển luồng số liệu từ nguồn phát để tránh sự tắc nghẽn nặng trong mạng. Điểm khác nhau là cách thông báo phản hồi, chỉ thỉ tắc nghẽn được phát và cách để tránh tắc nghẽn. Để. để phát hiện tắc nghẽn xảy ra trong mạng và thực hiện giảm thông lượng phát trên chương trình ứng dụng tại hệ thống đầu cuối phát. Điều này dẫn đến dữ liệu đưa vào mạng giảm đi và do đó có