MỤC LỤC
Lời nói đầu
Chương 1 : TỔNG QUAN MẠNG VIỄN THÔNG 3
1.1. Khái quát mạng viễn thông 3
1.1.1. Chức năng mạng viễn thông 3
1.1.2. Các thành phần trong mạng viễn thông 4
1.1.2.1. Thiết bị đầu cuối 5
1.1.2.2. Trung tâm chuyển mạch 5
1.1.2.3. Tuyến truyền dẫn 6
1.1.2.4. Các thành phần khác 6
1.2. Các phương thức chuyển mạch 7
1.2.1. Chuyển mạch kênh 7
1.2.2. Chuyển mạch tin 8
1.2.3. Chuyển mạch gói 9
1.2.4. Chuyển mạch ATM 9
1.3. Các môi trường truyền 11
1.3.1.Khái niệm 11
1.3.2. Các môi trường truyền cơ bản 11
1.3.2.1. Dây trần 11
1.3.2.2. Cáp xoắn đôi 12
1.3.2.3. Cáp đồng trục 12
1.3.2.4. Ống dẫn sóng 13
1.3.2.5. Cáp sợi quang 14
1.3.2.6. Vi ba 15
1.3.2.7. Thông tin vệ tinh 15
1.4. Các cấu hình mạng 16
1.4.1. Mạng bus 16
1.4.2. Mạng hình sao 17
1.4.3. Mạng hình lưới 18
1.4.4. Mạng vòng 19
1.5. Mô hình tham chiếu OSI 19
1.5.1. Mô hình OSI 19
1.5.2. Chức năng của các tầng trong mô hình OSI 20
1.5.3. Quan hệ giữa các lớp trong mô hình 25
Chương 2 : CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN LUỒNG 28
2.1. Tổng quan về điều khiển luồng 28
2.1.1. Giới thiệu chung 28
2.1.2. Mục đích của điều khiển luồng 28
2.1.3. Giữ chậm trong tầng mạng 29
2.1.4. Sự đối xử công bằng 30
2.1.5. Tràn bộ đệm 31
2.1.6. Các phương pháp kiểm soát luồng dữ liệu 34
2.2. Các phương pháp điều khiển luồng 37
2.2.1. End to end 39
2.2.2. Node by node 45
2.2.3. Phương pháp Isarithmic 48
2.3. Các phương pháp điều khiển luồng dựa trên điều chỉnh tốc độ vào 48
2.3.1. Kết hợp định tuyến tối ưu và điều khiển luồng 49
2.3.2. Điều khiển luồng max – min 56
2.3.3. Các tốc độ vào trong môi trường động 56
Chương 3 : Ứng dụng điều khiển luồng max – min xây dựng chương trình tính toán cho một mạng cụ thể 59
3.1. Điều khiển luồng của một số mạng cụ thể 59
3.1.1. Điều khiển luồng trong mạng ARPANET 59
3.1.2. Điều khiển luồng trong mạng TYMNET 60
3.1.3. Điều khiển luồng trong mạng SNA 61
3.1.4. Điều khiển luồng trong mạng Codex 62
3.1.5. Điều khiển luồng trong mạng X25 63
3.2. Điều khiển luồng max – min 63
3.3. Xây dựng chương trình tính toán bằng ngôn ngữ pascal 66
3.3.1. Thuật toán điều khiển luồng max – min 66
3.3.2. Xây dựng lưu đồ thuật toán điều khiển luồng Max - min 68
3.3.3. Mô phỏng một mạng được điều khiển luồng Max-min 70
Kết luận 72
Phụ lục: Chương trình Pascal mô phỏng điều khiển luồng Max – min 73
Tài liệu tham khảo 79
77 trang |
Chia sẻ: lethao | Lượt xem: 2968 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển luồng trong mạng truyền số liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
u khiển luồng là cần thiết để hệ thống làm việc bình thường. Các mục đích chính của điều khiển luồng sẽ được xem xét ở đây là :
* Lưu lượng vào mạng là tối đa.
* Tạo ra sự thoả hiệp tốt giữa người sử dụng.
* Duy trì độ trễ trung bình của mỗi tin ở mức hợp lý và sự đối xử công bằng cho mỗi thuê bao về dung lượng.
* Một mục tiêu khác của điều khiển luồng là kiềm chế việc truy cập mạng khi chỗ trống bộ đệm là hạn chế, hay nói cách khác chính là ngăn cản sự giảm sút dung lượng mạng và dừng hẳn truy cập mạng do tràn bộ đệm, chúng ta sẽ phân tích kỹ hơn vấn đề độ trễ trung bình và sự tràn bộ đệm để làm rõ hơn mục tiêu của điều khiển luồng.
1.3 giữ chậm trong tầng mạng :
Trễ trung bình của mỗi gói là điều đáng quan tâm của mỗi thuê bao trong toàn mạng. Điều khiển luồng trong tầng mạng không làm giảm sự giữ chậm đối với các thuê bao của tầng mạng mà nó chỉ làm dịch chuyển độ trễ một cách đơn giản từ lớp mạng tới lớp cao hơn, điều này được thực hiện bằng cách hạn chế sự truy cập vào mạng, điều khiển luồng giữ cho các gói đợi bên ngoài mạng tốt hơn là đợi bên trong mạng. Điều khiển luồng ít hữu ích đối với các gói đang chuyển qua mạng, thực tế nếu có lúc này điều khiển luồng chỉ làm tăng sự giữ chậm của gói trong mạng. Tác dụng lớn nhất của điều khiển luồng là ngăn ngừa và hạn chế sự tắc nghẽn xảy ra trong mạng, do vậy có thể tăng chất lượng phục vụ của hệ thống bằng cách bảo đảm điều khiển luồng chỉ hoạt động ở những vị trí nhất định cũng như việc tăng tài nguyên của mạng hay cải thiện thuật toàn định tuyến. Tất nhiên còn có thể hạn chế sự truy nhập của các thuê bao khi mạng bắt đầu xảy ra tắc nghẽn nhưng nói chung điều này khó thực hiện.
Khi kích thước các hàng đợi tích luỹ đến mức các bộ đệm nút trở nên đầy, vì vậy nếu các gói tiếp tục đến chúng sẽ bị loại bỏ, hoặc khi các phúc đáp trở về chậm làm nút nguồn hiểu nhầm rằng gói đã bị mất và phát lại chúng tất cả sẽ dẫn đến lãng phí tài nguyên mạng, giảm thông lượng một cách đáng kể và sự tắc nghẽn càng tăng, điều khiển luồng giúp ngăn ngừa sự hao mòn tài nguyên mạng do sự phát lại các gói. Mặc dù vậy, cần chú ý rằng duy trì độ giữ chậm của mạng thấp khi tải đưa đến lớn chỉ có thể đạt được bởi việc làm giảm bớt thông lượng của mạng chính vì vậy cần có sự thoả thuận tất yếu giữa việc cho phép thuê bao rỗi được phép truy cập vào mạng và duy trì độ giữ chậm ở mức đủ thấp sự phát lại hoặc các hiệu ứng khác không làm giảm sút hiệu suất của mạng. Nguyên tắc đơn giản là điều khiển luồng sẽ không thực hiện trong những trường hợp khi sự giữ chậm của mạng dưới mức nguy hiểm. Song trong các điều kiện quá tải thì điều khiển luồng sẽ loại bỏ những lưu lượng cấp vào cần thiết để duy trì độ giữ chậm ở mức này. Điều này là rất khó thực hiện vì cả độ giữ chậm và thông lượng đều không thể biểu diễn được một cách dễ dạng bằng các tham số đơn giản trong điều khiển luồng.
1.4- Sự đối xử công bằng :
Khi lưu lượng vào bị loại bỏ bớt, đó là vấn đề quan trọng để thực hiện sự đối xử công bằng. Điều này có hiệu quả đáng kể vì thông lượng tổng cộng cực đại mạng đối lập với sự đối xử công bằng. Ví dụ, xét trường hợp như chỉ ra trong hình 2.1.
Giả xử có n + 1 thuê bao mà lưu lượng cấp vào của mỗi thuê bao là 1 khối/ giây dọc theo môt dãy n kết nối liên tục với dung lượng 1 khối/giây. Lưu lượng của một thuê bao đi qua toàn bộ n kết nối trong khi sự lưu lại của lưu lượng này chỉ ở một kết nối. Thông lượng cực đại n khối/giây có thể đạt được bằng cách nhận tất cả các lưu lượng của các thuê bao có một kết nối đơn trong khi ngắt thuê bao n kết nối. Dù vậy giải pháp hợp lý hơn cả là đòi hỏi tiếp nhận tốc độ lưu lượng bằng nhau đối với tất cả các thuê bao, kết quả thông lượng cực đại sẽ là (n+1)/2 khối/giây.
Hình 2.1.Sự đối xử công bằng.
Nói chung một sự thoả hiệp được yêu cầu giữa sự đối xử công bằng và lưu lượng của các thuê bao này có tác động lớn đến sự tắc nghẽn xảy ra trong mạng. Cũng cần phải chú ý rằng, có thể có một số ưu tiên đối với các thuê bao,trong những trường hợp như vậy sự đối xử công bằng chỉ có ý nghĩa trong phạm vi một lớp ưu tiên. Một chú ý khác là các khuyến nghị về điều khiển luồng trong các tài liệu mạng là khá thiếu sót trong việc xem xét sự đối xử công bằng. Ví dụ như trường hợp cần thiết loại bỏ lưu lượng từ các nguồn ở một nút nếu bộ đệm của nút này đầy, nhưng lại vẫn tiếp tục nhận lưu lượng gửi từ nút khác. Khó khăn ở đây là nếu một nút bị quá tải do lưu lượng đi vào từ nút khác thì lưu lượng qua bị lỗi không được ngăn chặn hoàn toàn trong khi các nguồn kết nối tới nút qúa tải bị loại ra hoàn toàn.
I.5- Tràn bộ đệm :
Thuật ngữ tắc nghẽn thường được sử dụng để giải thích cho hiện tượng tải được cấp tới mạng cao quá mức dẫn tới thông lượng giảm xuống và do vậy độ giữ chậm tăng lên. Sự tắc nghẽn trong trường hợp này là giống nhau đối với mọi mạng xuất phát từ tính chất của mạng tốc độ cao. Không chỉ có độ giữ chậm tăng lên mà thông lượng của mạng cũng giảm xuống. Tính chất này trái ngược với hàng đợi được xem xét trong định tuyến, ở đó thông lượng thấp được kết nối với độ trễ thấp. Nó cũng chỉ ra rằng sự tắc nghẽn có thể phát sinh do tràn bộ đệm, như chỉ ra trong ví dụ sau :
Xét một mạng có 5 nút như trong hình 2.2a với hai phiên liên lạc : một từ trên xuống với quá trình poisson của tốc độ vào là 0.8 và phiên thứ hai từ trái sang phải với quá trình poisson của tốc độ vào là f. Giả sử rằng nút trung tâm có không gian bộ đệm là lớn hữu hạn, bộ đệm này được chia sẻ cho hai quá trình trên. Nếu không gian bộ đệm đầy, một gói đi vào sẽ bị loại bỏ và sau đó được phát lại bởi nút gửi. Đối với luồng tốc độ nhở f, bộ đệm ít khi bị đầy và thông lượng tổng cộng của hệ thống là 0.8 + f. Khi f gần bằng 1, bộ đệm của nút trung tâm luôn đầy, trong khi các nút đầu và trái bận trong suốt thời gian phát lại các gói cố gắng chiếm giữ không gian bộ đệm ở nút trung tâm. Vì nút trái đang phát nhanh hơn nút đầu 10 lần do vậy thông lượng từ trái qua phải sẽ lớn hơn 10 lần so với thông lượng từ trên xuống dưới, thông lượng từ
Hình 2.2a.
trái qua phải sẽ lớn hơn 1.1 đơn vị, vì vậy lưu lượng tổng cộng cũng lớn hơn 1. Điều này được chỉ rõ hơn trong hình 2.2b, có thể thấy rằng thông lượng tổng cộng giảm về 1.1 bằng với tải đưa tới f tăng lên.
Hình 2.2b.
Ví dụ này cũng chỉ ra sự hạn chế bộ đệm có thể dẫn đến sự đối xử không công bằng như thế nào. Đó là một số phiên liên lạc có thể chiếm giữ tất cả các bộ đệm và hậu quả là ngăn cản các phiên khác truy nhập mạng.
Hình 2.3a.
Hình 2.3b.
Một tính chất hạn chế khác đối với tràn bộ đệm là điểm chết tắc có thể xảy ra khi hai hay nhiều nút không thể chuyển các gói vì không còn không gian bộ đệm ở tất cả các đầu thu. Ví dụ đơn giản nhất minh hoạ cho vấn đề này là hai nút A và B định tuyến cho các gói tới nút kia như hình 2.3a.
Nếu tất cả bộ đệm của hai nút A và B đều đầy các gói của B và A thì các nút này bị chết tắc trong việc phát lại liên tục không thành công các gói cũ, giống như không có không gian bộ đệm để lưu trữ các gói ở đầu thu. Vấn đề này cũng xảy ra theo nhiều dạng phức tạp hơn khi có nhiều hơn hai nút sắp xếp trong một vòng chết tắc do bộ đệm của chúng đầy các gói đích của nút khác trong vòng này như hình 2.3b.
Các phương pháp đơn giản để loại bỏ sự chết tắc này là bằng cách tạo ra các gói với mức ưu tiên khác nhau và định vị các bộ đệm đặc biệt cho các gói có mức ưu tiên cao hơn. Việc lựa chọn là ấn định một mức ưu tiên cho một gói bằng số các kết nối mà các gói đi qua trong mạng, như mô tả trong hình 2.4. Nếu các gói không được chấp nhận vào vòng lặp thì có thể khẳng định rằng kiểu chết tắc như mô tả ở trên không thể xảy ra.
Hình 2.4.Phương pháp loại bỏ chết tắc đơn giản.
1.6 - Các phương pháp kiểm soát luồng dữ liệu :
Để kiểm soát luồng dữ liệu người ta thường dùng phương pháp giới hạn tải chung hoặc phương pháp phân tán chức năng kiểm soát hay kết hợp cả hai phương pháp này.
1.6.1- Các phương pháp kiểm soát luồng dữ liệu thông dụng
* Giới hạn tải chung của mạng :
Ở đay tải được hiểu là số lượng PDU được lưu chuyển trong mạng tại một thời điểm nào đó. Mục tiêu của phương pháp này là tìm cách duy trì tổng số PDU được lưu chuyển trong mạng luôn luôn nhỏ hơn một giá trị giới hạn (ngưỡng) N nào đó. Giá trị N sẽ được xác định trước căn cứ vào khả năng tài nguyên cũng như kinh nghiệm hoạt động của mạng. Để làm điều đó, cần tạo ra N “giấy thông hành” trong mạng mỗi PDU muốn vào mạng phải có “giấy thông hành” và trước khi ra khỏi mạng phải trả lại “giấy thông hành ” đó cho mạng. “Giấy thông hành” ở đây thực chất là một loại thể bài hoặc một trường thông tin điều khiển nào đó được gắn vào PDU. Khi khởi tạo mạng ngưới quản trị mạng căn cứ vào khả năng thực tế của các trạm để phân chia “giấy thông hành” đó, mỗi trạm sau đó chỉ được dùng số giấy đã được cấp. Tuy nhiên để thích nghi với sự thay đổi của mạng, mỗi trạm được cho phép có thừa giấy để “chi viện “ cho các trạm thiếu. Tất nhiên để làm điều đó cần có giao thức trao đổi thông tin điều khiển giữa các trạm.
Để quản lý chặt chẽ số “giấy thông hành” ở mối trạm có thể cài đặt một cơ chế cửa sổ cho phép tại mỗi thời điểm chỉ có một số giới hạn các PDU được phép truyền đi. Nhược điểm của phương pháp này là phải xác định giá trị ngưỡng N hợp lý, để cải thiện dung lượng của mạng ta có thể thay đổi N theo thời gian nhưng phần mềm sẽ phức tạp hơn nhiều.
*Phân tán chức năng kiểm soát cho các trạm :
Phương pháp nay không yêu cầu duy trì một giới hạn cho tải chng cảu mạng mà giao cho các trạm tự kiểm soát luồng dữ liệu đi qua dựa trên khả năng tài nguyên cục bộ của chúng. Tài nguyên dùng để chuyển một PDU (hoặc các PDU của cùng một thông báo) được cấp pháp trước để tránh ùn tắc tại các trạm. Việc cấp phát trước này được thực hiện theo các liên kết logic giữa các thực thể truyền thông theo khái niệm OSI. Ví dụ khi thiết lập một liên kết logic giữa hai thực thể tầng mạng, hàm dịch vụ NCONNECT.reqest đảm nhiệm công việc nay sẽ đăng ký các gói tin theo liên kết đó. Ở hai đầu của mỗi liên kết như vậy có thể cài đặt cơ chế cửa sổ để điều hoà lượng gói tin đi qua.
1.6.2- Kiểm soát luồng dữ liệu trong các giao thức chuẩn OSI :
Việc kiểm soát luồng dữ liệu trong mô hình OSI chủ yếu thực hiện trong tầng mạng và tầng vận chuyển.
*Tầng vận chuyển :
Nguyên lý chung của thủ tục kiểm soát luồng dữ liệu ở đây là : các TPDU mang dữ liệu được đánh số thứ tự và một giá trị “tín dụng” (credit -CDT) được gửi đi trong giai đoạn thiết lập liên kết thông qua TPDU CR (connect request) hoặc CC (connect confirmation). Giá trị của CDT này (có thể bằng 0)cho số lượng tối đa TPDU mang dữ liệu có thể truyền đi miễn là có nhận được các TPDU AK(báo nhận). Việc kiểm soát lưu lượng TPDU truyền đi thông qua cơ chế cửa sổ với một giá trị giới hạn trên ban đầu của cửa sổ ở mỗi liên kết chính là giá trị CDT trong các TPDU CR hoặc CC nhận được (cận dưới ban đầu của cửa sổ cho bằng 0). Giới hạn của cửa sổ sẽ tự động dịch chuyển tăng lên mỗi lần nhận được một TPDU AK báo nhận tốt một hoặc nhiều TPDU mang dữ liệu.
*Tầng mạng :
Kiểm soát luồng dữ liệu được thực hiện theo cả hai chiều, tức là từ DTE đến DCE và ngược lại. Trong gói dữ liệu có các tham số P(S) và S(P) tương tự như tham số N(S) và N(R) trong HDLC. P(S) chỉ số thứ tự của gói tin, còn P(R) chỉ số hiệu của gói tin đang chờ để nhận. Như vậy P(R) đóng vai trò của một giấy phép cho phép bên nhận dịch chuyển cửa sổ tương ứng.
Hình 2.5.
Ví dụ người dùng gửi dữ liệu từ máy A qua mạng sử dụng các nút vào NA và nút ra NB của mạng, hình thành một hệ thống kiểm soát luồng dữ liệu ở tầng mạng theo chuỗi liên kết A – NA – NB – B, hoặc cũng có thể kiểm soát luồng dữ liệu từ người dùng đến người dùng ở tầng giao vận.
2- Các phương pháp điều khiển luồng :
Quá trình điều khiển luồng giữa máy phát A và máy thu B, gọi là điều khiển luồng theo phương thức cửa sổ nếu có một giới hạn trên số lượng các khối dữ liệu. Số lượng các gói này được truyền bởi A và chưa được biết ở A mà được quyết định bởi B (hình 2.6).
Giới hạn trên (có thể là số nguyên dương) được gọi là kích thước cửa sổ hay đơn giản gọi là cửa sổ. Máy thu B thông báo cho máy phát A rằng nó đã xử lý khối dữ liệu bằng cách gửi một tin đặ biệt tới A, thông tin này được gọi là thông tin xác nhận hay phúc đáp. Dựa trên việc thu được một phúc đáp, máy phát A mới được phép gửi gói tiếp theo tới B. Vì vậy xác nhận có thể được xem như là hộ chiếu mà khối dữ liệu phải có trước khi đi vào kênh logic giữa máy phát A và máy thu B. Số lượng xác nhận sử dụng không vượt quá kích thước cửa sổ.
Hình 2.6.
Các phúc đáp cũng chứa trong các gói điều khiển hoặc ở phần tiếp đầu các gói mang tin. Quá trình truyền số liệu có điều khiển luồng có thể là một mạch ảo riêng lẻ hay một nhóm các mạch ảo (các mạch ảo dùng chung đường dẫn) hoặc luồng các gói nguyên vẹn bắt đầu từ nút gôc và kết thúc ở một nút khác. Đầu phát và đầu thu có thể là hai nút của mạng truyền dẫn sunbnet hoặc một thiết bị thuê bao và một nút đầu và mạng truyền dẫn. Các khối dữ liệu trong cửa sổ có thể là các tin, các gói hay byte.
Ý tưởng chung của phương pháp cửa sổ là tốc độ vào của đầu phát giảm xuống khi các xác nhận trở về chậm. Do đó nếu có sự tắc nghẽn dọc theo đường truyền của quá trình này, những sự giữ chậm lớn kèm theo các xác nhận gây ra sự giảm tốc độ số liệu của đầu phát. Tuy vậy phương thức cửa sổ có ưu điểm đặc biệt là đầu thu giữ chậm một cách có chủ tâm các xác nhận để hạn chế tốc độ truyền của quá trình truyền thông tin. Theo phương pháp cửa sổ ta sẽ xem xét hai phương pháp chủ yếu đó là end to end (đầu cuối tới đầu cuối) và node by node (nút tới nút). Phương pháp end to end thực hiện điều khiển luồng giữa các nút ra va nút vào của mạng con, còn phương pháp node by node thực hiện điều khiển luồng giữa các nút theo thứ tự dọc theo đường liên kết mạch ảo.
2.1- End to end :
Cửa sổ end to end có kích thước cửa sổ là W.A, ở đây W và A là các số dương. Mỗi lần nhóm A khối dữ liệu thu được ở đích, một phúc đáp dương được gửi trở lại nguồn xác định A khối dữ liệu mới này. Trong sự cải biến của phương pháp này, nút đích sẽ gửi một phúc đáp A khối dữ liệu mới dựa trên việc hoàn toàn thu nhóm A khối dữ liệu đầu tiên. Để đơn giản việc trình bày quá trình điều khiển luồng, từ đây chúng ta sẽ thừa nhận rằng A = 1, nhưng không làm mất đi tính tổng quát của nó. Tương tự đối với các trường hợp cụ thể, sử dụng thuật ngữ các gói nhưng cửa sổ vẫn coi là các khối dữ liệu khác nhau.
Thông thường phương pháp đánh số cho các gói và permit(giấy phép) được sử dụng sao cho các permit có thể được liên kết với các gói đã phát trước đó. Sử dụng phương thức cửa sổ trượt tương tự như các giao thức đã sử dụng đối với điều khiển liên kết dữ liệu, nhờ đó mà các gói có số thứ tự và số dự đoán tiếp theo. Số sau có thể xử lý giống một hoặc nhiều permit cho điều khiển luồng. Ví dụ giả sử như nút A thu từ nút B một gói với dự đoán tiếp theo là k. Sau đó A biết rằng B đã xử lý tất cả các gói gửi bởi A và đánh số nhỏ hơn k, vì vậy A được gửi các gói có số thứ tự tới k + W – 1 mà nó chưa được gửi. ở đâu W là kích thước cửa sổ. Trong phương pháp này, cả số thứ tự và số tiếp theo đều được biểu diễn ở dạng modum m, trong đó m ³ W + 1, tương tự như đối với hệ thống ARQ goback n. Trong một số mạng như mạng ARPANET hay Codex network sử dụng phương pháp này kết hợp với giao thức phúc đáp đầu cuối tới đầu cuối.
2.1.1- tốc độ phát cực đại trong cửa sổ end to end:
Hình 2.7. Độ giữ chậm phản hồi nhỏ hơn thời gian phát đầy cửa sổ W gói
Để đơn giản việc giải thích tiếp theo, một dạng điều khiển luồng đặc biệt mà trong đó người ta bỏ qua các permit. Giả sử nút nguồn tính toán một cách đơn giản số các gói Z mà nó được phát đi nhưng chưa chu được các xác nhận trở lại với các gói này và truyền các gói mới chỉ dài bằng Z < W. Hình 2.7 minh hoạ luồng các gói đối với trường hợp độ giữ chậm của gói phản hồi / permit nhỏ hơn thời gian yêu cầu để phát đầy cửa sổ gói là W gói, tức là d ≤ Wx ở đây x là thời gian truyền một gói đơn (để đơn giản giả thiết rằng tất cả các gói có thời gian truyền như nhau và độ giữ chậm phản hồi bằng nhau). Sau đó nút nguồn có thể truyền toàn tốc là 1 / x gói / giây, và điều khiển luồng không hoạt động.
Trường hợp điều khiển luồng hoạt động như chỉ ra trên hình 2.8, ở đây d > Wx, và độ giữ chậm phản hồi d lớn tới mức việc xác định đầy W gói có thể được phát trước khi xác nhận đầu tiên được gửi trở lại. Giả sử nguồn luôn luôn có một gói đợi, tốc độ truyền là W/d gói/giây. Tốc độ phát cực đại tương ứng với độ trễ phản hồi d được tính theo biểu thức :
(*)
Hình 2.8. Độ giữ chậm phản hồi lớn hơn thời gian phát đầy cửa sổ W gói.
2.1.2- Cơ chế điều khiển luồng bằng của sổ :
Hình 2.9 minh hoạ kỹ thuật điều khiển luồng bằng cửa sổ end to end, tốc độ truyền của mỗi nguồn bị hạn chế để ngăn sự tắc nghẽn và độ giữ chậm lớn có thể xảy ra. Từ hình vẽ ta thấy rằng phương pháp cửa sổ tác động trở lại rất nhanh đối với sự tắc nghẽn, và nhanh nhất trong thời gian truyền W gói, đây cũng chính là ưu điểm của phương pháp này so với các phương pháp khác.
Hình 2.9. Điều khiển luồng End to end.
2.1.3- Các hạn chế của phương pháp cửa sổ end to end :
Như đã nói từ đầu, mục đích của điều khiển luồng nhằm đạt được sự thoả hiệp hợp lý giữa độ giữ chậm thấp, thông lượng lớn và việc duy trì sự đối xử công bằng đối với tất cả các thuê bao. Kết quả của phương pháp cửa sổ end to end đã đưa ra đã không thể thoả mãn đầy đủ một trong hai mục đích trên. Trước hết ta xem xét vấn đề độ giữ chậm, giả sử có n quá trình điều khiển luồng hoạt động tròn mạng với kích thước cửa sổ là W1, W2, …Wn. Vì vậy tổng số các gói trong mạng là ở đây bi là hệ số có giá trị (0 ¸ 1) phụ thuộc vào độ trễ phản hồi của các xác nhận di. Theo lý thuyết little, độ trễ trung bình của mỗi gói cho bởi biểu thức sau :
Ở đây l là tổng thông lượng đầu vào (tốc độ đầu vào tổng của các quá trình). Thông lượng l bị hạn chế bởi dung lượng của kết nối tương ứng khi các quá trình điều khiển luồng hoạt động tăng lên thì λ xấp xỉ bằng một hằng số. Hằng số này sẽ phụ thuộc vào mạng, sự xác định các nguồn, đích và thuật toán định tuyến. Do vậy độ trễ T sẽ tăng lên mạnh, tỷ lệ với quá trình điều khiển luồng hoạt động (một cách chính xác hơn là kích thước tổng cộng của chúng) như hình 2.10.
Hình 2.10. Độ thị quan hệ giữa T, λ và số quá trình điều khiển luồng
Vì vậy nếu số lượng cực đại các quá trình là rất lớn thì phương pháp cửa sổ end to end không thể giữ chậm độ giữ chậm ở mức hợp lý và không ngăn được sự tắc nghẽn xảy ra. Khó khăn ở đây là các cửa sổ hạn chế việc truy nhập của thuê bao khi độ trễ lớn nhưng không quá mức cần thiết.
Xét việc sử dụng cửa sổ kích thước nhỏ khi giống như giải quyết vấn đề giữ chậm dưới điều kiện quá tải. Có một giới hạn dưới mà kích thước cửa sổ không thể giảm được ở mức cần thiết để hạn chế các thuê bao dưới điều kiện tải vừa. Thực vậy, nếu một quá trình sử dụng đường dẫn n kết nối, với thời gian truyền dẫn một gói là x trên mỗi kết nối, giữ chậm xác nhận gói phản hồi ít nhất sẽ là nx và lớn hơn nếu các xác nhận không có được sự ưu tiên trên kênh hướng về. Ví dụ, nếu các xác nhận là phần mào đầu của các gói phản hồi đi qua đường ban đầu trong hướng đối diện, thời gian phản hồi ít nhất là nx. Cũng như trong hình 2.9 chúng ta thấy rằng việc truyền toàn tốc sẽ là không thể được với quá trình đó, thậm chí dưới điều kiện tải vừa phải, trừ kích thước cửa sổ vượt quá n số kết nối trên đường dẫn (hình 2.11).
Hình 2.11.Kích thước cửa sổ vượt quá số kết nổi trên đường dẫn.
Do đó kích thước cửa sổ được khuyến nghị chọn là giữa n và 3n. Khuyến nghị này giả thiết rằng thời gian truyền trên mỗi kết nối là khá lớn hơn độ giữ chậm xử lý phát lại. Khi độ giữ chậm phát lại lớn hơn thời gian phát lại, như trong kết nối vệ tinh thì kích thước cửa sổ phù hợp là lớn nhất.
Điều thực sự cần thiết trong điều khiển luồng end to end để đạt hiệu quả hoạt động tốt giữa thông lượng và độ giữ chậm chính là tính điều chỉnh động của kích thước cửa sổ. Dưới điều kiện tải phù hợp, các cửa sổ sẽ lớn và cho phép việc truyền không bị cản trở, trong khi dưới điều kiện quá tải, các cửa sổ sẽ co lại một chút, vì vậy không cho phép độ trễ trở nên quá mức. Các cửa sổ end to end cũng có thể giảm hiệu quả mà liên quan đến sự đối xử công bằng. Ta có thể kết luận rằng kích thước chính xác của sửa sổ sẽ tỉ lệ với số kết nối trên đường dẫn của nó. Điều này có nghĩa là ở một kết nối quá tải các quá trình đường dẫn dài có thể có nhiều gói đợi để được truyền hơn các quá trình truyền có đường dẫn ngắn, do đó đạt được một tỉ lệ lớn về thông lượng. Một tình huống tiêu biểu được mô tả trong hình 2.12.
Hình 2.12.
Ở đây cửa sổ của tất cả các quá trình tích luỹ kết nối ở quá tải. Nếu các gói được truyền theo thứ tự tới đích của chúng, tốc độ truyền đạt được của mỗi quá trình có độ lớn tỉ lệ với kích thước cửa sổ của nó và điều này là một lợi thế cho quá trình đường dài.
Các tính chất đối xử công bằng của cửa sổ end to end có thể được cải thiện nếu các quá trình điều khiển luồng của các lớp ưu tiên như nhau được thực hiện thông qua phương thức vòng luân chuyển ở mỗi hàng đợi truyền dẫn. Điều này đặc biệt dễ thực hiện khi mỗi quá trình là một mạch ảo. Trong một mạng thông báo dữ liệu, hiệu lực của vòng luân chuyển này phụ thuộc vào việc mỗi gói có mang đủ thông tin nhận biết không để cho phép sự liên kết của nó ở mỗi nút với mỗi quá trình điều khiển luồng đặc trưng.
2.2-node by node :
Phương pháp này có một cửa sổ riêng đối với mỗi mạch ảo và với mỗi cặp các nút kề nhau dọc theo đường dẫn của mạch ảo. Có nhiều vấn đề xem xét ở phương thức cửa sổ end to end ứng dụng tốt cho phương pháp này. Vì ở đây đường dẫn điều khiển luồng được thực hiện là hiệu quả đối với một kết nối dọc theo nó, kích thước của một cửa sổ được tính toán trong gói là 2 hoặc 3 cho các kết nối mặt đất.
Xem xét điều khiển luồng node by node ở một cặp nút liên tiếp dọc theo đường dẫn của mạch ảo, được xem như một máy phát và máy thu. Ý tưởng chính trong phương pháp điều khiển luồng node by node là máy thu có thể ngăn chặn được sự tích luỹ một số lớn các gói trong bộ nhớ của nó bởi việc giảm tốc độ phát bằng cách gửi lại các xác nhận tới máy phát. Trong phương pháp chung nhất, máy thu duy trì bộ đệm W gói đối với mỗi mạch ảo và gửi lại một xác nhận tới máy phát nếu có một không gian lưu trữ thêm một gói trong bộ đệm W gói của nó. Một gói được xem xét để xoá bỏ từ bộ đệm W gói, mỗi khi nó được phân phát tới một thuê bao bên ngoài tầng mạng hoặc đưa vào trong khối điều khiển liên kết dữ liệu (DLC) đưa đến nút tiếp theo trên đường dẫn mạch ảo. Bây giờ chúng ta xem xét sự ảnh hưởng lẫn nhau của 3 cửa sổ dọc theo ba nút liên tiếp i -1, i, i + 1 trên đường dẫn của mạch ảo. Giả sử bộ đệm W gói của nút i đầy. Vì vậy nút i sẽ gửi một xác nhận tới nút i – 1 trước khi nó đưa một gói đặc biệt tới DLC của kết nối từ i tới i + 1, mà kết nối này sẽ xảy ra lần lượt trước khi một xác nhận gửi bởi nút i + 1được thu ở nút i. Vì vậy cửa sổ W gói ở nút nguồn của kết nối bị tắc nghẽn sẽ đầy đối với mỗi mạch ảo qua liên kết này. Kết quả các cửa sổ W gói của nút lằm trên luồng của kết nối bị tắc nghẽn sẽ tiến tới đầy kể cả cửa sổ các nút nguồn của các mạch ảo qua kết nối bị tắc nghẽn. Lúc đó các mạch ảo sẽ có điều khiển luồng hoạt động. Hiện tượng khi các cửa sổ tiến tới đầy từ một điểm kết nối bị tắc nghẽn về phía nguồn của mạch ảo được hiểu như là sự cưỡng ép trở lại và được minh hoạ như trong hình 2.13.
Hình 2.13.Khi sự tắc nghẽn xảy ra tại kết nối cuối cùng.
Một khía cạnh khác đáng chú ý trong phương thức điều khiển luồng node by node có thể thấy trên hình 2.13 đó là trong trường hợp tồi tệ nhất khi sự tắc nghẽn xảy ra trên kết nối cuối cùng (kết nối thứ n) của một đường dẫn mạch ảo, tổng số các gói trong mạng đối với mạch ảo sẽ xấp xỉ nW. Nếu mạch ảo này điều khiển luồng bằng cửa sổ end to end, tổng số các gói trong mạng sẽ đủ lớn (ở đây chúng ta thừa nhận kích thước cửa sổ W = 2 trong trường hợp node by node và W = 2n trong trường hợp end to end dựa trên nguyên tắc cơ bản là sử dụng kích thước cửa sổ bằng hai lần số các kết nối của đường dẫn giữa máy phát và máy thu). Song điểm quan trọng là những gói này sẽ được phân chia một cách đồng đều dọc theo đường dẫn mạch ảo trong trường hợp node by node nhưng sẽ được tập trung tại nút tắc nghẽn trong trường hợp end to end. Vì vậy tổng dung lượng bộ nhớ được yêu cầu ở mỗi nút để ngăn chặn sự tràn bộ đệm đối với các cửa sổ node by node nhỏ hơn các cửa sổ end to end.
Việc phân chia các gói của mạch ảo một cách đồng đều theo đường dẫn của nó cũng làm giảm bớt vấn đề đối xử công bằng, đó là các quá trình với cửa sổ lớn độc chiếm một kết nối bị tắc nghẽn làm thiệt hại đến các quá trình của cửa sổ nhỏ (hình 2.12). Điều này đúng khi kích thước cửa sổ của tất cả các mạch ảo lớn như nhau, ví dụ khi các mạch này chỉ bao gồm các kết nối mạch liền. Vấn đề đối xử công bằng có thể nảy sinh khi các kết nối vệ tinh được đưa vào, khi đó cần phải chọn cửa sổ có kích thước lớn đối với các kết nối này để sự truyền dẫn không bị ảnh hưởng khi lưu lượng là vừa phải do độ giữ chậm phát lại lớn. Sự khó khăn này xảy ra ở nút đang phục vụ cả các mạch ảo với kích thước cửa sổ