Tải bản đầy đủ (.docx) (31 trang)

tìm hiểu giao thức định tuyến distance vector

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (624.88 KB, 31 trang )

Contents

Phần Lý Thuyết

1


I.Nguyên tắc chung điều khiển tắc nghẽn trong lớp mạng
I.1.Giới thiệu:
Tắc nghẽn mô tả một trạng thái của một nguồn tài nguyên xảy ra khi lượng cung ứng lớn
hơn rất nhiều so với khả năng lưu trữ của nó.Hiện tượng này được hi vọng biến mất bởi cung cấp
đường link dữ liệu tốc độ cao,nhưng nó vẫn có mặt ở khắp nơi trong mô hình mạng dữ liệu.Do
đó lượng dữ liệu được truyền đi tăng nhanh chóng và người dùng phải chịu hiện tượng thắt nút
cổ chai xảy ra ở routers bởi chính những gói dữ liệu gửi đi.
Bởi vậy , việc tối thiểu hóa nguy cơ của tắc nghẽn và tìm cách loại bỏ khi chúng xảy ra
ngày càng trở nên quan trọng. Do đó , chúng ta sẽ chỉ ra cách để điều khiển tắc nghẽn bởi thuật
toán xây dựng trên client hay server.Mặt khác những thuật toán này bao gồm cách để ngăn chặn
tắc nghẽn từ lúc xảy ra và nó cung cấp cơ chế để làm sạch node mạng tắc nghẽn mà không làm
giảm độ rộng mạng.

I.2.Định nghĩa
Một trường hợp gọi là tắc nghẽn nếu hiệu năng bị hạ thấp trong subnet bởi có quá nhiều
gói dữ liệu hiện hữu.Ví dụ tải tạm thời tăng mạnh yêu cầu tài nguyên.
Số gói tin nhận được tỉ lệ theo số gói gửi đi. Nhưng nếu số gói tin tăng quá nhiều , router
không đủ dài để có thể xử lí được hết các gói tin và một vài gói tin sẽ bị mất.Cùng với sự phát
triển lớn dần của luồng dữ liệu, subnet này sẽ bị sụp đổ và chẳng còn gói tin nào có thể được gửi
đi.Rõ ràng là : hai giải pháp đơn giản có thể được dùng là: tăng khả năng của nguồn hay giảm
tải.

I.3.Giải pháp có thể
 Tăng khả năng của nguồn:


• Tăng khả năng của nguồn có thể đạt được bởi tăng bộ nhớ của router để xây dựng

một hàng đợi cho tất cả đường input nhằm tạo ra một đường output.Hơn thế nữa
nền tảng của bộ xử lí nhanh hơn nó có khả năng thực hiện tác vụ ngầm nhanh
nhất có thể để tạo ra một output.
• Nhưng trong trường hợp cập nhật thêm một vài phần tử, hiện tượng thắt nút cổ
chai chỉ thay đổi đi chút xíu.Nó là lí do vì sao mà tất cả các phần tử cần phải
được cân bằng.Bởi vì kĩ thuật giới hạn nó không thể tăng tài nguyên một cách vô
tận.(và ngay cả khi nếu nó có khả năng thì cũng không thể tránh được tắc nghẽn )
do đó việc cần thiết là phải giảm tải
 Giảm tải
• Giảm tải thực sự ở một vùng mạng chỉ có thể tạo ra bằng cách khuyến khích các
host giảm gói tin gửi đi của chúng.Ý tưởng này không thực tiễn do đó cần thiết
2


phải giảm tải ở điểm đơn lẻ được chỉ định.Để giảm tải của router một cách hữu
dụng là nói với các router khác chuyển tiếp gói tin theo đường khác mà không sử
dụng router đang có tải cao

II. Các phương pháp điều khiển tắc nghẽn và các vấn đề liên
quan
II.1.Khái niệm
Việc đảm bảo rằng tất cả gói tin được mang theo trong một subnet được gọi là điều khiển
tắc nghẽn và việc điều khiển gói tin theo điểm đến điểm giữa nơi gửi và nơi nhận được gọi là
điều khiển luồng.
Điều khiển tắc nghẽn bao gồm tất cả hosts , routers, bộ xử lí lưu trữ và chuyển tiếp và
những yếu tố khác ảnh hưởng đến năng lực của subnet’s.

II.2.Phân loại thuật toán điều khiển tắc nghẽn

II.2.1.Giới thiệu chung
Trong thực tế việc chia thuật toán điều khiển tắc nghẽn thành hai lớp chính mô tả vị trí nơi
mà chúng ảnh hưởng tới hành vi của mạng giống như đã mô tả.Hoặc là vùng host thiết lập điều
khiển tắc nghẽn end to end được gọi là host centric hoặc là ở vùng router ảnh hưởng đến việc
truyền gói dữ liệu được gọi là router centric.

3


Lớp host centric được đặc trưng bởi phân lớp cao của mô hình trừu tượng ở network.Do
đó các node mạng trung gian được cân nhắc như các kênh kết nối tĩnh và minh bạch mà không
ảnh hưởng đến hành vi của lớp mạng.
Tuy nhiên, thuật toán ghi nhận ở lớp router centric gồm mỗi đối tượng network như một
phần tử chủ động của bộ xử lí điều khiển tắc nghẽn , do đó điều khiển năng động hơn có thể
được đảm bảo bằng việc khởi tạo thuật toán áp dụng cho tầng Network của mô hình ISO-/OSI.
Mặt khác có một giải pháp cố định và đơn giản gọi là OPEN LOOP để ngăn chặn tắc
nghẽn bằng cách nêu rõ băng thông có thể ở phía gửi.Điều này có nghĩa là bất cứ lớp mạng client
nào sử dụng duy nhất một phần băng thông có thể thay vì bùng nổ tất cả toàn bộ dữ liệu nhanh
nhất có thể qua mạng.Chắc chắn rằng, lượng giảm này được thông qua, nhưng đây là cách đơn
giản nhất để ngăn chặn tắc nghẽn.Thuật toán dạng này có thể được khởi tạo trên nguồn khác hay
đích khác
Thêm một phương thức năng động nữa để ngăn cản tắc nghẽn mạng gọi là CLOSED
LOOP.Thuật toán này điều chỉnh tùy chọn phụ thuộc vào chính trạng thái mạng bởi thực tế phát
hiện hay sự hiện hữu của trạng thái tắc nghẽn.Những thông tin về tình trạng này có thể được tập
hợp bởi thông điệp rõ ràng của bên nhận cũng như thăm dò khởi tạo ngầm định của nơi gửi để
kiểm tra xem liệu rằng một route có bị tắc nghẽn hay không.
Thuật toán điều khiển tắc nghẽn Router centric có thể chia thành 2 lớp con.Những lớp này
chỉ định phản ứng trong trường hợp tắc nghẽn.Thuật toán xử lí router thực hiện xử lí hoạt động
tắc nghẽn như các gói bị rơi trong khi router chỉ định trạng thái tắc nghẽn của tín hiệu và không
ảnh hưởng trực tiếp đến điều kiện này.


II.2.2. Host centric Algorithms
II.2.2.1. Open Loop
Ở nơi đầu tiên , thuật toán open loop cố gắng để tránh tắc nghẽn mà không tạo ra sự điều
chỉnh nào ở hệ thống.Chỉ định cần thiết cho giải pháp Open Loop là chia ra khi chấp nhận phàn
tử mạng mới .Tất cả quyết định này đều cơ bản nhạy cảm với thiết kế hệ thống, do đó chúng
không phụ thuộc vào trạng thái mạng hiên tại.
Đối tượng gửi phải xác định xem có bao nhiêu gói tin có thể được gửi mà không chịu sự
tác động của tắc nghẽn. Bên nhận phải quyết định một cách cẩn trọng xem gói nào có thể loại bỏ
bởi vì bỏ qua bất cứ gói tin nào cũng có thể là nguyên nhân đáng kể cho việc truyền lại dữ liệu
và điều này sẽ trả về tải phụ cho mạng.

4


II.2.2.2. Open Loop and Source Drive
II.2.2.3. Traffic Shaping.
Traffic shaping là một nhóm tổng quát cho một cặp thuật toán tránh tắc nghẽn của bên
gửi mà không cần tín hiệu phản hồi.Do đó , một quyết định cần thiết , tỉ lệ dữ liệu được đàm
phán hoặc là trên việc kết nối cài đặt hay là cố định bao gồm việc sử dụng khởi tạo.Sau đó tỉ lệ
dữ liệu đã đàm phán sẽ được giữ và các thay đổi là không đáng kể.Ý tưởng này có thể được tìm
thấy đặc biệt ở giao tiếp mạng ATM như Leaky Bucket và Token Bucket.
Nhưng trễ tiềm ẩn tạo ra nhiều vấn đề cho một vài ứng dụng thời gian thực như audio và
video.

II.2.2.4. Leaky Bucket.
Thuật toán leaky bucket tạo ra dòng dữ liệu liên tục đầu ra.Tên leaky Bucket mô tả cách
làm việc.Ở đây nó làm việc giông như một chiếc xô cùng với nước và một lỗ rò rỉ ở đáy giống
như hình 2
Bao nhiêu nước chảy vào trong xô trong quan trọng.Miễn là có bất cứ lượng nước nào ở

bên trái xô chảy ra ngoài với một tỉ lệ như vậy và không đổi được xác định bởi kích thước rò
rỉ.Lẽ dĩ nhiên là nếu không có nước trong xô thì sẽ chẳng có nước bị chảy ra.Nếu xô bị đầy hoàn
toàn mà vẫn có nước thêm vào thì nước sẽ bị tràn mất.

5


II.2.2.5. Token Bucket
Thuật toán Token Bucket là một biến thể của thuật toán Leaky Bucket đã nói ở trên.Ý
tưởng ở đây là cho phép sự bùng nổ tạm thời ở đầu ra, nếu gốc thông thường không tạo ra một
lượng lớn gói tin lưu thông.Một khởi tạo có thể sử dụng thẻ chỉ định hay thẻ bài những thứ được
cung cấp ở một khoảng thời gian cố định giữa hai sự kiện.Những thẻ chỉ định này có thể được
tích lũy với một số lượng giới hạn trong xô (kích thước xô).Trường hợp đệ trình dữ liệu những
tấm thẻ này phải được sử dụng từ xô. Ví dụ một tấm thẻ được tiêu hao trên một đơn vị (một byte
hay môt frame) nó sẽ được bơm vào trong mạng.Nếu số lượng thẻ chỉ định được sử dụng tăng
lên(xô trống), nguồn gửi phải chờ cho đến khi nó gặp được một thẻ bài mới cùng với một
khoảng thời gian tiếp theo.
Thực tế được minh họa trong hình 3 bởi cố gắng bơm 5 đơn vị dữ liệu vào trong mạng
cùng với 3 thẻ chỉ định(credit points).Sau khi truyền 3 của 5 đơn vị trong khoảng thời gian này ,
không có nhiều hơn thẻ có thể dùng, do đó không thể có thêm đơn vị dữ liệu nào được bơm vào
trong mạng cho đến khi thẻ mới được tổng hợp cùng với việc đánh dấu chọn tiếp theo.
Thuật toán này cung cấp một hệ thống ưu tiên liên quan.Một mặt ,nó cho phép gửi một
lượng nhỏ dữ liệu trung gian, thứ mà đăc trưng không có tắc nghẽn mạng.Mặt khác thuật toán
này sẽ không làm rơi bất cứ gói tin nào của người gửi cũng giống như Leaky Bucket.Bởi vì
6


không có nhiều hơn thẻ bìa có thể ở trong xô, bất cứ nỗ lực gửi đi nào được đóng gói lại cho đến
khi một thẻ bài mới có thể dùng.


II.2.2.6 Vòng mở và định hướng điểm đến :
Thuật toán đính kèm với nhóm này có thể được xác định bởi hành vi tĩnh của chúng:
Mỗi thực thi đang chạy làm việc bất kể trạng thái mạng thay đổi như thế nào.Điều này có
nghĩa là ,tắc nghẽn được tránh khỏi ở nơi nhận bởi vì những đặc điểm kĩ thuật hình thành. Câu
hỏi ở đây là thuật toán này là như thế nào. Chúng sử dụng dung lượng của nơi nhận để ảnh
hưởng tới hành vi khởi tạo của nơi gửi mà không có bất cứ chỉ định rõ ràng nào.
Do đó , một việc thực thi khả dụng có thể gửi một lượng nhỏ khung quảng bá trong TCP
header hơn là điều tiết đầu ra của nguồn gửi.Một ý kiến khác có thể là làm trễ bản tin ACK gửi đi
một lượng thời gian cố định phải rõ ràng nhỏ hơn thời gian timeout của bên gửi bao gồm trễ cần
thiết mạng.Nhưng rất khó khăn để xác định được lượng trễ cố định này trong nhiều hơn hay ít
hơn giao thức mạng năng động như internet.Hơn thế nữa ,ảnh hưởng của nới nhận đến nơi gửi
7


chỉ là lời tư vấn, nó không thể bị bỏ qua.Do đó , thuật toán của nhóm này không quá quan trọng
trong phát triển và nghiên cứu vậy nên không đưa ra ví dụ cụ thể rõ ràng ở đây.

II.2.2.7.Closed Loop
Giải pháp closed loop là mạng thực thi của mạch điều khiển hiển hình.Thuật toán ghi
nhận ở lớp này phụ thuộc vào vòng phản hồi cùng với 3 phần :
 Theo dõi tắc nghẽn độ rộng hệ thống
 Gửi thông tin này đến điểm hoạt động
 Điều chỉnh hoạt động của hệ thống để đối phó với tắc nghẽn.

Để phát hiện tắc nghẽn có một cách rất hữu dụng để theo dõi giá trị giống như phần trăm
mạng bị loại bỏ bởi thiếu bộ nhớ, số lượng timeout và do đó truyền lại gói tin và chiều dài hàng
đợi trung bình giống như trễ gói hay round trip times.
Thông tin tập hợp phải được gửi từ điểm gần tắc nghẽn đến phần có trách nhiệm.Do đó cần
thiết để gửi thông tin này và những thông điệp khi lượng dữ liệu lưu truyền trên mạng ngày càng
tăng, tác nhân thúc đẩy tắc nghẽn xảy ra.

Mục đích chính của giải pháp closed loop là làm giảm gói tin gửi từ router xuống bằng cách
tập hợp những gói tin ở trong hàng đợi của chính chúng để giảm và thậm chí làm mất tắc nghẽn.

II.2.2.8.Closed Loop và Implicit Feedback
II.2.2.8.1.Slow start
Thuật toán Slow start cố gắng tránh tắc nghẽn bằng cách gửi gói dữ liệu có thành phần
bảo vệ.Do đó hai biến đặc trưng có tên là congestion window (cwnd) và Slow Start
threshold(ssthresh) được lưu ở trong vùng bên gửi.
Khởi tạo ban đầu cwnd được định kích thước cho một gói khi nguồn gửi bơm một gói dữ
liệu mới vào mạng và chờ đợi bản tin ACK từ nơi nhận.Thông thường, gói này được gửi qua
mạng và được nhận đúng lúc, do đó nó sẽ được phản hồi lại bằng một bản tin ACK.
Nếu ACK được nhận bởi nguồn gửi ,cwnd sẽ tăng lên nếu khả năng của mạng đạt được
và gói sẽ bị mất.Nguồn gửi sẽ không tăng số gói tin thêm nữa.Điều này có nghĩa là với mỗi chu
kì gửi tin đi số lượng gói dữ liệu tăng gấp đôi cho đến khi khả năng mạng đạt được và yêu cầu
ACK không tạo ra nữa.Chính xác hơn ở TCP , giới hạn tối thiểu của cwnd và kích cỡ cửa sổ
quảng bá chỉ định số gói tin có thể được bơm vào .Nếu gói tin yêu cầu ACK không thể đạt được
để gửi cùng với thời gian định trước, nguồn gửi sẽ diễn giải nó giống như bằng chứng của tắc
nghẽn.Do đó nguồn gửi sẽ đặt cwnd để khởi tạo giá trị cho nó và truyền lại dữ liệu như đã nhắc
đến trước đó.
2.2.8.2. Tránh tắc nghẽn:
8


Thuật toán này được sử dụng kết hợp với Slow Start ,đặc trưng sử dụng của Slow Start tạo
ra tỉ lệ dữ liệu dao động và tải thêm vào mạng.Hình 4 mô tả ngưỡng Slow Start được đặt là ½
cwnd max , nếu cỡ của cwnd vượt quá khả năng của mạng và cửa sổ tắc nghẽn sẽ đặt lại ở giá trị
khởi tạo.Sau đó Congestion Avoidance bắt đầu làm việc : Slow Start tăng gói gửi theo hệ số mũ
cho đến khi đạt ngưỡng.Bằng cách tiến gần đến ngưỡng kích thước của cửa sổ tắc nghẽn được
tính toán tuyến tính, tỉ lệ ngưỡng tăng chậm nhất nếu cần thiết và nhanh nhất có thể cho đến khi
đạt được khả năng của mạng, điều này có nghĩa là không có ACKs có thể qua mạng đến nơi gửi.


9


II.2.2.9. Closed Loop và Explicit Feedback
II.2.2.9.1. Choke Packets

10


Choke Packet tiếp cận diễn giải toàn bộ mạng giống như một phần của FlowControl.Do
đó mỗi đối tượng mạng có giới hạn của tốc độ dữ liệu qua nó và nếu nó vượt quá thì cái gọi là
Choke Packet được gửi tới gốc.Những gói tin được đánh dấu đặc biệt ngăn cản node mạng xa
hơn từ việc tạo ra bằng Choke Packets và do đó chúng ngăn cản việc nhân đôi của feedback.Hơn
thế nữa sau khi một chokepaket đạt được khởi tạo bên gửi, nó sẽ bị bóp nghẹn xuống chính tốc
độ đầu ra của nó bằng một cấp độ phù hợp, cùng với thời gian tắc nghẽn được bbaos bởi
ChokePacket xa hơn.
Hơn thế nữa, việc mở rộng mạng như mạng internet hay mạng Lan diện rộng ngày nay
chứa một lượng nodes giữa nơi gửi và nơi nhận, do đó trễ tỉ lệ thuận với số node mạng giữa
chúng.Sẽ không thể chấp nhận được khi mà có 20 hay 16 node giữa nơi gửi và nơi nhận trong
một mạng và nếu node cuối cùng bắt đầu chịu phản hồi từ tắc nghẽn thông tin ở dạng Choke
Packet travel n-1 hops quay về nguồn giống như minh họa ở hình 6.Hình chữ nhật là node mạng,
11


gạch đứt bên trái là tắc nghẽn, và vòng tròn ở giữa là giao tiếp giữa các kênh, hình chữ nhật màu
thẫm chứa dữ liệu truyền đi tốc độ cao và hình chữ nhật màu nhạt chứa dữ liệu tốc độ bị nghẹn ,
hình tròn đổ kín chứa gói tin choke Packet.
Nghĩa là , bên gửi sẽ bơm dữ liệu vào trong mạng không bị tác động cho đến khi Choke
Packet đến và đầu ra có thể bị bóp nghẹt một cách tự động.Nhưng việc sẵn sàng gửi gói đến node

bị tắc nghẽn việc này có 2n-1 packet đến và đóng góp vào tắc nghẽn của node tải. Giải pháp có
thể là tối thiểu hóa trễ này cho phép mỗi node mạng một bộ đệm dữ liệu đến từ nơi gửi khi choke
Packet sẵn sàng gửi qua minh họa hình 7.Sự ảnh hưởng này đến dòng dữ liệu trực tiếp sau mỗi
node khi mà Choke Packet qua, bởi vậy lượng tin truyền qua tăng ngay lập tức và tắc nghẽn bị
dời đi theo hop – by – hop đến nơi gửi và cuối cùng thì biến mất hoàn toàn.

1.1. II.2.3.Router centric Algorithms
Nhìn lại quan điểm này được mô tả thuật toán bao gồm những node mạng trung gian như
router, switches, và hub giống như những đối tượng tích cực hiếm gặp.Do đó, việc nghiên cứu và
phát triển quyết định khởi tạo nhiều hơn tình huống cơ động để tránh việc gia tăng việc tắc nghẽn
mạng.Định nghĩa này gọi là router centric, việc giảm giao tiếp cần thiết thông thường giữa điểm
bị tắc nghẽn và điểm gốc cũng như nguy cơ của timeout và trễ lớn cho đến khi phản ứng lại có
thể được khởi tạo.

II.2.3.1.Phá vỡ tắc nghẽn.
12


Hiện tượng sụp đổ tắc nghẽn xảy ra trong một sơ đồ mạng sử dụng ứng dụng telnet được
lần đầu tiên xác định bởi John Nagle vào năm 1984.
Chỉ tồn tại duy nhất ở sơ đồ mạng cùng với những chính sách truyền lại như giao thức
điều khiển truyền (TCP) trên giao thức internet(IP) cơ bản.
Do đó nó là tính vốn có trên một hệ thống lí tưởng, bởi vì cùng với sự xảy ra hiện tượng
thắt nút cổ chai, số gói tin truyền đi tăng lên.Điều này là hành vi có chủ đích bởi vì longer round
trip times(RTT) và sẽ không chỉ ra bất cứ vấn đề nào.Nếu một gói tin ACK từ nơi nhận không
đến được đúng thời gian việc truyền lại được bắt đầu bởi đối tượng gửi một cách tự động và
trong trường hợp thích ứng host truyền lại theo thuật toán RTT với mức trung bình ngưỡng được
tăng.Trong thực tế hành vi này có chủ định, nhưng kết quả của RTT tăng một cách rõ nét, ngay
cả khi host thích hợp truyền lại không thể vượt qua được hoàn cảnh này.Càng ngày càng nhiều
bản sao chép của cùng một gói được bơm vào trong mạng tại vùng gửi và gộp lại thành sự tắc

nghẽn mạng nghiêm trọng.Giải pháp có thể là ICMP Source Quench packet chỉ định bởi routers
và gateways, do đó đối tượng gửi có thể giảm mức độ đầu ra của chính chúng.

II.2.3.2.Vấn đề gói nhỏ.
Việc đóng gói dữ liệu TCP ở các gói IP làm cho việc truyền tin xa hơn qua mạng, do đó
những gói có dung lượng nhỏ cần một chi phí lớn liên quan đến TCP header.Với trường hợp
truyền những kí tự đơn lẻ sẽ trả về 41 bytes chiều dài gói tin chứa duy nhất một byte dữ liệu thiết
yếu và 40 byte overhead thêm vào.Việc truyền tích hợp nhiều gói dữ liệu nhỏ cùng với một
lượng lớn header thêm vào gánh nặng tắc nghẽn cho mạng.Để tránh những gói tin này có cơ cấu
trễ cố định được khởi tạo, trễ gói tin sẽ là một vài trăm miliseconds.Điều này tránh được tắc
nghẽn xảy ra nhưng không giảm được tải mạng ở trạng thái tắc nghẽn.Do đó một phương pháp
tiếp cận được đưa ra ở đó bộ đệm được sử dụng để tính toán dữ liệu gửi đi cho đến khi nhận
được gói tin ACK.Kết quả này trong những gói dữ liệu lớn giảm toàn bộ chi phí và dừng dòng lũ
tắc nghẽn,bởi vì không có gói tin ACK nào gửi qua.
Giả sư rằng một file truyền qua một phần mạng với 5 s RTT, một cửa sổ kích thước 2 kB
và một ứng dụng viết dữ liệu ở khối 512 bytes đến TCP.Gói đầu tiên chứa 512 bytes dữ liệu và
thêm vào 40 bytes header sẽ được gửi tới nơi nhận.Cùng với RTT liên quan, bộ đệm dữ liệu đến
TCP từ ứng dụng do vậy sau 5 s và một gói tin ACK đến gói tin tiếp theo có thể gửi.Bắt đầu cùng
với gói tin này một lượng dữ liệu cố định là 2kB, do đó mặc dù gói thứ 2 chỉ bắt đầu sau 5 giây
trễ, nó sử dụng lượng lớn nhất có thể dữ liệu và tỉ lệ header/dữ liệu giảm

13


1.2. II.2.3.3.Router Processed
II.2.3.3.1. Công bằng trọng số hàng đợi.
Tất nhiên là ,một vấn đề cơ sở có trên rất nhiều node mạng trung gian được là công bằng
của điều khiển tắc nghẽn .Điều này bao gồm câu hỏi, gói tin nào từ nơi gửi nào có thể bị bỏ qua
từ bộ đệm đầu vào trong trường hợp tắc nghẽn xảy ra .Thuật toán Drop tail quyết định xem nên
cắt gói tin nào ra khỏi hàng đợi khi mà chiều dài hàng đợi vượt quá một chiều dài định trước và

thuật toán Load Shedding như mô tả ở 3.3.2 là đơn giản, hiếm khi công bằng.

Figure 8: Circuit diagram: Weight Fair Queuing

II.2.3.3.2.Load Shedding
Load shedding là một cách để đối phó với tắc nghẽn thứ mà không tự biến mất, do đó
không thể xử lí được những gói tin bị loại bỏ bởi router.
Để khởi tạo một router, cách thông minh để quyết định xem gói nào sẽ bị bỏ qua là phải
đánh dấu những gói đó ở lớp ưu tiên.Chỉ định này nên được thực hiện theo một cách rất nhạy
cảm,bởi vì sẽ chẳng có ý nghĩa nếu đánh dấu tất cả các gói với một mức ưu tiên cao.
Hai ví dụ sẽ minh họa rõ nét điều này tại sao mà sự phân loại ở lớp ưu tiên lại là hữu dụng.
Ví dụ đầu mô tả một vấn đề loại bỏ và gửi lại .Nếu một router bị mất gói 7 của 12 gói đối
tượng gửi sẽ gửi gói 7 tới 12 một lần nữa giống như minh họa dưới đây:

14


Figure 9: Load Shedding Algorithm :Dropping packet seven of twelve

Ở hình 9, loại bỏ một gói kích động việc gửi lại 6 gói.Thay vì đó , một router có thể loại
bỏ gói 10 do đó chỉ có 3 gói phải bị gửi lại.Ví dụ 2 là về nén đa phương tiện : thuật toán nén
video chia video thành chuỗi của tổng các frames nhỏ hơn.Sau khi truyền tổng frame, chỉ có
frame phụ cùng với sự khác nhau với tổng frame là được truyền đi.Do đó , nếu tổng frame mà bị
loại bỏ, mỗi frame phụ sẽ bị vô dụng ngay.Mặt khác, việc loại bỏ một frame phụ sẽ chỉ ra toàn bộ
nhưng là frame cũ.Hiển nhiên là việc chọn đúng gói luôn rất quan trọng , do đó số gói truyền lại
được tối thiểu .Điều này chính là tác vụ của Load Shedding.

15



Figure 10: Load Shedding Algorthm: Dropping packet ten of twelve

II.2.3.3.3.Random Early Detection(RED)
Random early detection thuộc vào lớp thuật toán Quản lí hoạt động hàng đợi và thực hiện
bởi router centric.Cách tiếp cận này cố gắng ngăn chặn hoàn toàn hàng đợi router bằng cách
đánh dấu hoặc loại bỏ gói trước khi tình trạng trở nên vô vọng và tắc nghẽn xảy ra.Do đó ,ví dụ
kết hợp cùng với Explicit Congestion Notification mô tả ở hình 3.4.2 không chủ yếu làm rơi
gói ,thay vì đánh dấu cùng với cờ tắc nghẽn và nơi gửi điều tiết đẩu ra của chúng.
Mỗi gói tin đến kích hoạt một sự tính toán trung bình chiều dài hàng đợi và theo đó gói tin
bị bỏ qua được quyết định theo 2 ngưỡng cố định, một thấp hơn và một cao hơn do đó theo 3
trường hợp sau phân biệt.
Chiều dài trung bình hàng đợi thấp hơn so với ngưỡng ví dụ không có tắc nghẽn hiện hữu
Chiều dài trung bình hàng đợi cao hơn so với ngưỡng điều này có nghĩa phải loại bỏ hay
đánh dấu trạng thái của chuỗi tắc nghẽn.

16


Chiều dài trung bình hàng đợi ở lân cận trên mức ngưỡng và lân cận dưới mức ngưỡng
điều này có nghĩa là tắc nghẽn có thể gia tăng và việc đánh dấu cũng như loại bỏ có khả năng là
phải được tính toán.

Figure 11:Petrinet Random Early Detection

II.2.3.3.4. Chuyển tiếp nhanh
Thuật toán FAST RETRANSMIT sử dụng phương pháp phản hồi tường minh để
tránh thời gian dài chờ đợi cho gói phát lại trong trường hợp mất gói tin.
Vấn đề như vậy là vốn có trong các mạng dữ liệu chuyển mạch gói dữ liệu bởi vì mỗi
Gói có thể đi tùy ý trong các phần còn lại của mạng và có thể sử dụng các tuyến đường
đặc biệt từ ngườigửi đến người nhận. Do đó, các gói dữ liệu truyền đi sẽ không đến bên

nhận chính xác hoặc không hoàn thành liêntục .
17


Vì vậy, sau khi phát hiện một gói tin bị mất, bên nhận gửi các gói tin ACK trùng
lặp cho các gói tin nhận được cuối cùng cho đến khi gói bị mất tới nơi .Thật không may,
TCP có thể sử dụng các gói dữ liệu ACK trùng lặp để chỉ ra các gói tin vượt ra khỏi thứ
tự, do đó hai gói tin ACK không nhất thiết chỉ ra một gói tin bị mất. Do đó, nếu một
người gửi nhận nhiều gói ACK với số thứ tự giống nhau, thường ít nhất ba trong số
chúng, các gói dữ liệu cho thấy các gói dữ liệu cuối cùng gửi thành công. Hơn nữa, sự
hiện diện của các gói dữ liệu ACK nhấn mạnh sự vắng mặt của tắc nghẽn ,nếu không các
gói tin có thể không được nhận. Như vậy , bên gửi khới động lại việc truyền với các gói
tin được xác định là của nhiều gói ACK. Điều này dẫn đến việc truyền lại nhanh chóng
dữ liệu chưa được truyền mà không cần chờ giờ để hết hạn.

Figure 12: Time-cwnd-diagram : Fast Retransmit
Hình 12 minh họa rằng việc truyền lại dữ liệu nhanh không làm thay đổi đặc
trưng dữ liệu đầu ra. Sau khi bắt đầu với Slow Start ở thời gian đánh dấu bằng không một
gói không được thừa nhận. Khi thời gian đánh dấu năm, sáu và bảy màu đỏ tương ứng
đánh dấu bản sao ACK nhận tại bên gửi.Bản sao ACK thứ 3 kích thích quá trình truyền
lại nhanh,do đó một nửa chậm.
Bắt đầu chu trình tránh tắc nghẽn liên tục được thực thi.Hành vi này là giống hệt
nhau để Slow Start/ tránh tắc nghẽn như mô tả ở 2.2.1.2. Do đó ta không cần đợi 1
khoảng thời gian time out cố định như được định nghĩa ở vạch thời gian 12.
Tuy nhiên, bởi vì khoảng thời gian đợi của mạng, nên cách tiếp cận này vẫn mơ hồ trong
việc gia tăng kích thước mạng và rất nhiều những nút mạng trung gian. Vấn đề này sẽ
được đề cập sau trong mục hàng đợi công bằng.

II.2.3.3.5. Sự khôi phục nhanh
18



Sự khôi phục nhanh bắt đầu khi sự truyền lại nhanh ngừng hoạt động.Nếu các bản
tin ACK nhận được cho thuật toán truyền lại không còn nữa, bên gửi sẽ cố gắng chuyển
về trạng thái gửi bình thường.Tuy nhiên, thay vì tránh tắc nghẽn theo kiểu Slow Start (gia
tăng) được sử dụng, bởi vì gói tin ACK được chuyển đến thành công qua mạng. Vì vậy,
không có tắc nghẽn nào xảy ra trên đường truyền tại thời điểm này và các gói tin có thể
bắt đầu được truyền đi tại1 tỉ lệ đầu ra cao được định rõ bởi ssthresh

Figure 13: Time-cwnd-diagram: Fast Recovery
Hình 13 chỉ ra rằng, tốc độ truyền nhanh hơn như nào khi sử dụng thuật toán Fast
Recovery so với thuật toán Slow Start cổ điển (2.2.1.1).Sau khi mất gói tin ACK đầu tiên
tại thời điểm 4, một nửa vòng Slow Start thêm vào được bỏ qua và thay vào đó tránh tắc
nghẽn (Congestion Avoidance) được bắt đầu với mức output là 8 được định rõ bởi
ngưỡng Slow Start tốt nhất. (SS Thresh)

PHẦN ỨNG DỤNG
Yêu cầu: Lập trình mô hình định tuyến sử dụng vector khoảng cách ( Distance
vector routing)

I.Thuật toán Distance vector routing
Giải thuật distance vector là gì?
19


Là một trong các lớp chính của routing protocols.Giao thức Distance vector protocols sử
dụng thuật toán Bellman-Ford ,Ford-Fulkerson hay DUAL FSM

1.3. I.1. Distance vector bao gồm những loại sau
 RIP (Routing Information Protocol) :

• Hop count được sử dụng để tính metric và xác định tuyến đường sẽ được lựa chọn.
• Nếu hop count của mạng lớn hơn 15, RIP không thể các định được tuyến đường đến

mạng đó.
• Routing updates được broadcast hay multicast sau mỗi 30 s (theo mặc định).
 IGRP ( Interior Gateway Routing Protocol):
• Là một giao thức được phát triển riêng bới Cisco.
• Bandwidth updates được broadcast 90s 1 lần (theo mặc định).
• IGRP là tiền thân của EIGRP và hiện nay hầu như không được sử dụng nữa

I.2. Ý nghĩa của distance vector:
Như tên gọi của nó, distance vector nghĩa là các tuyến đường được quảng bá như những
vector khoảng cách. Distance được quyết định bởi metric, chẳng hạn như hop count, và được chỉ
dẫn 1 cách đơn giản thông qua next – hop router hay exit interface.
1 router sử dụng distance vector protocols không thể biết trọn vẹn tuyến đường đến đích, thay
vào đó, nó chỉ biết 2 điều sau:
 Để đên đích cần đi qua đường nào, hay nói 2 các đơn giản là packet cần đi qua interface

nào để đến đích.
 Khoảng cách đến đích là bao xa

I.3. Cách thiết lập mạng theo giải thuật distance vector:
Distance – vector: RIP, IGRP. Hoạt động theo nguyên tắc “ hàng xóm”, nghĩa là mỗi
router sẽ gửi bảng routing-table của chính mình cho tất cả các router được nối trực tiếp với mình.
Các router đó sau đó so sánh với bảng routing-table mà mình hiện có và kiểm xem router của
mình và router mới nhận được, router nào tốt hơn sẽ được cập nhật. Các routing-update sẽ được
gửi theo định kỳ (30 giây với RIP, 60 giây với RIP-novell, 90 giây đối với IGRP). Do đó, khi có
sự thay đổi trong mạng, các router sẽ nhận biết được khúc mạng nào bị down.
 Ưu điểm:


Dễ cấu hình.Router không phải xử lý nhiều điều đó cho phép CPU và MEM có thể thực hiện
thêm các công việc khác.
 Nhược điểm:

20


Hệ thống metric quá đơn giản (như rip chỉ là hop-count), nên có thể xảy ra việc con đường “
tốt nhất ” chưa phải là tốt nhất.Do phải cập nhật định kỳ các routing-table, nên một lượng
bandwidth (băng thông) đáng kể sẽ bị chiếm, làm trong thoughput (thông lượng) sẽ mất đi (mặc
dù mạng không gì thay đổi nhiều)
Không update định kỳ như 2 giao thức trên, mà nó chỉ update khi có bất kỳ sự thay đổi nào
trong topo mạng.

II.Đặt vấn đề
Ta thiết lập một mạng gồm 13 nodes hoạt động theo giao thức UDP sử dụng giải thuật
tìm đường distance vector. Truyền dữ liệu giữa nguồn $n(0) và $n(1) tới đích $n(5). Khi đang
trong quá trình truyền tin ngắt đường truyền giữa node 11 và 5.Thuật toán tìm đường sẽ sinh ra
một đường mới ngắn nhất giữa nguồn và đích. Sau đó ngắt đường truyền giữa node 6 và node 7
Distance vector sẽ tạo ra một định tuyến khác giữa nguồn và đích. Sau khi thiết lập lại ta
2 đường truyền bị ngắt thì distance vector sẽ thiết lập lại định tuyến ban đầu.

III.Kịch bản code
 Trước tiên ta tạo ra 13 node mạng, thiết lập đường link giữa các node mạng

For {set i 0} {$i < 8} {incr i} {
$ns duplex-link $n($i) $n([expr $i +1]) 1Mb 10 ms DropTail}
$ns duplex-link $n(0) $n(8) 1Mb 10ms DropTail
$ns duplex-link $n(1) $n(10) 1Mb 10ms DropTail
$ns duplex-link $n(0) $n(9) 1Mb 10ms DropTail

$ns duplex-link $n(9) $n(11) 1Mb 10ms DropTail
$ns duplex-link $n(10) $n(11) 1Mb 10ms DropTail
$ns duplex-link $n(11) $n(5) 1Mb 10ms DropTail
 Thiết lập đường truyền dữ liệu đầu tiên:

Set udp0 [new Agent/UDP]
$ns attach-agent $n(0) $udp0 // Nguồn $n0
Set cbr0 [new Application/Traffic/CBR] // Thiết lập đường truyền
$cbr0 set packetSize_250
21


$cbr0 set interval_0.005
$cbr0 set attach-agent $udp0
Set null0 [new Agent/Null]
$ns attach-agent $n(5) $null0 // Đích $n5
$ns connect $udp0 $null0 // Kết nối nguồn và đích thông qua giao thức $udp()
 Thiết lập đường truyền dữ liệu thứ 2: nguồn $n1 gửi dữ liệu đến đích $n5

Set udp1[new Agent/UDP]
$ns attach-agent $n(1) $udp1 // Nguồn $n1
Set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_250
$cbr0 set interval_0.005
$cbr0 set attach-agent $udp1
Set null0 [new Agent/Null]
$ns attach-agent $n(5) $null0 // Đích $n5
$ns connect $udp0 $null0 // Kết nối nguồn và đích thông qua giao thức $udp()
 Khai báo giải thuật được thực hiện ở tất cả các node mạng khi mô phỏng


$ns rtproto DV
 Ngắt đường truyền giữa $n(11) và $n(5)

$ns rtmodel-at 10.0 down $n(11) $n(5)
 Ngắt đường truyền giữa $n(11) và $n(5)

$ns rtmodel-at 30.0 up $n(11) $n(5)
 Khôi phục lại đường truyền giữa $n(7) và $n(6)

$ns rtmodel-at 20.0 up $n(7) $n(6)

22


IV.Kết quả thực hiện mô phỏng

Figure 14: Mạng định tuyến khi bị ngắt đường truyền theo giao thức distance vector

23


Figure 15: Sau khi ngắt đường truyền giữa n(11) và n(5)

24


Figure 16: Kết quả định tuyến sau khi ngắt đường truyền giữa 6 và 7

25



×