Lớp mạng có nhiệm vụ đưa các gói tin từ nguồn qua các đường đến đích. Để đến được đích, gói tin phải đi từng bước qua nhiều bộ định tuyến trung gian. Điều này trái ngược với tầng liên kết dữ liệu vốn chỉ chịu trách nhiệm truyền tải các khung từ đầu này đến đầu kia của kênh truyền vật lý. Để đạt được mục tiêu này, tầng mạng phải biết được tình trạng của mạng (cách thiết lập của tất cả các bộ định tuyến và các liên kết) từ đó chọn đường dẫn thích hợp để gói tin đi qua, đối với mạng lưới lớn cũng vậy. Nó cũng phải chú ý khi lựa chọn đường sao cho tránh được tình trạng quá tải trên một số đường truyền và bộ định tuyến trong khi các đường khác thì đang rảnh rỗi. Cuối cùng, vấn đề xảy ra khi các nguồn và đích ở trên hai mạng khác kiểu nhau. Trong chương này, chúng ta sẽ nghiên cứu tất cả những vẫn đề này và minh họa cho chúng, chủ yếu sử dụng Internet và giao thức lớp mạng, IP.
Trang 1LỚP MẠNG 1
5.1 VẤN ĐỀ THIẾT KẾ LỚP MẠNG 1
5.1.1 Lưu và chuyển tiếp mạch gói 1
5.1.2 Các dịch vụ cung cấp cho tầng vận chuyển 2
5.1.3 Cài đặt dịch vụ không kết nối (Implementation of Connectionless Service) 3
5.1.4 Cài đặt dịch vụ định hướng nối kết (Connection – Oriented Service) 5
5.1.5 So sánh giữa Virtual-Circuit và Datagram Networks 6
5.2 ROUTING ALGORITHMS ( THUẬT TOÁN ĐỊNH TUYẾN) 8
5.2.1 Nguyên tắc Tối ưu (The Optimality Principle) 10
5.2.2 Thuật toán tìm đường đi ngắn nhất (Shortest Path Algorithm) 11
5.2.3 Flooding(phương pháp làm tràn ngập) 14
5.2.4 Distance Vecter Routing(định tuyến vecter khoảng cách) 16
5.2.5 Định tuyến Trạng thái Liên kết(Link State Routing) 19
5.2.6 Hierarchical Routing 24
5.2.7 Broadcast Routing 25
5.2.8 Multicast Routing 28
5.2.9 Anycast Routing 31
5.2.10 Routing for Mobile Hosts 32
5.2.11 Routing in Ad Hoc Networks 34
5.3 CÁC THUẬT TOÁN ĐIỀU KHIỂN TẮC NGHẼN 38
5.3.1 Các hướng tiếp cận với điều khiển chống tắc nghẽn 40
5.3.2 Định vị nhận thức lưu lượng ( Traffic –Aware Routing) 42
5.3.3 Điều khiển nạp (Admission control) 43
5.3.4 Điều tiết lưu lượng 45
Trang 25.3.5 Load Shedding 48
5.4 CHẤT LƯỢNG DỊCH VỤ 51
5.4.1 Các yêu cầu ứng dụng 52
5.4.2 Định hình lưu lượng ( Traffic- Shaping ) 54
5.4.3 Sắp xếp gói tin (packet scheduling ) 59
5.4.4 Điểu khiển nạp (admission control) 63
5.4.5 Các dịch vụ tích hợp 66
5.4.6 Các dịch vụ khác biệt 69
5.5 INTERNETWORKING 73
5.5.1 Các mạng khác nhau như thế nào 74
5.5.2 How Networks Can Be Connected 75
5.5.3 Truyền liên mạng (Tunneling ) 78
5.5.4 Internetwork Routing 79
5.5.5 Packet Fragmentation 80
5.6 CÁC LỚP MẠNG TRONG INTERNET 84
5.6.1 The IP Version 4 Protocol 84
5.6.2 The Network Layer in the Internet 88
5.6.3 IP Version 6 100
5.6.4 Internet Control Protocols (Các giao thức điều khiển mạng internet) 110
5.6.5 Label Switching and MPLS (Multi- Protocol Label Switching)- Chuyển mạch nhãn và chuyển mạch nhãn đa giao thức 115
5.6.6 OSPF—An Interior Gateway Routing Protocol( Giao thức định tuyến cổng mạng nội bộ) 118
5.6.7 BGP—The Exterior Gateway Routing Protocol( Giao thức cổng ngoại) 122
5.6.8 Internet Multicasting 126
5.6.9 Mobile IP 127
Trang 3LỚP MẠNG
Lớp mạng có nhiệm vụ đưa các gói tin từ nguồn qua các đường đến đích Để đến đượcđích, gói tin phải đi từng bước qua nhiều bộ định tuyến trung gian Điều này trái ngược vớitầng liên kết dữ liệu vốn chỉ chịu trách nhiệm truyền tải các khung từ đầu này đến đầu kia củakênh truyền vật lý
Để đạt được mục tiêu này, tầng mạng phải biết được tình trạng của mạng (cách thiết lập của tất
cả các bộ định tuyến và các liên kết) từ đó chọn đường dẫn thích hợp để gói tin đi qua, đối với mạng lưới lớn cũng vậy Nó cũng phải chú ý khi lựa chọn đường sao cho tránh được tình trạng quá tải trên một số đường truyền và bộ định tuyến trong khi các đường khác thì đang rảnh rỗi Cuối cùng, vấn đề xảy ra khi các nguồn và đích ở trên hai mạng khác kiểu nhau Trong chương này, chúng ta sẽ nghiên cứu tất cả những vẫn đề này và minh họa cho chúng, chủ yếu sử dụng Internet và giao thức lớp mạng, IP
5.1 VẤN ĐỀ THIẾT KẾ LỚP MẠNG
Trong các phần sau, chúng ta sẽ giới thiệu về một số vấn đề các nhà thiết kế lớp mạngphải nắm được Những vấn đề này bao gồm các dịch vụ cung cấp cho lớp vận chuyển và thiết
kế nội bộ của mạng
5.1.1 Lưu và chuyển tiếp mạch gói
Trước khi bắt đầu để giải thích các chi tiết của lớp mạng, ta xét một liên mạng dướiđây Liên mạng này được biểu diễn trong hình 5-1:
equipment) nằm trong hình bầu dục (trong đó các bộ định tuyến được nối lại với nhaubằng đường truyền), và các thiết bị của khách hàng nằm bên ngoài hình bầu dục
Host H1 được nối trực tiếp vào bộ định tuyến A của nhà cung cấp đường truyền bằngmột đường kết nối giống như máy tính cá nhân nối với một modem DSL
nối với bộ định tuyến F thuộc sở hữu khách hàng Bộ định tuyến này có xuất xứ từ ISP(nhà cung cấp đường truyền) Bộ định tuyến F được biểu diễn ngoài hình bầu dục bởi
vì nó không thuộc về ISP.Tuy nhiên với mục đích của chương này, bộ định tuyến vẫnđược coi là một phần của mạng ISP vì chúng chạy các thuật toán tương tự như bộ địnhtuyến của ISP(và một quan tâm chính của chúng tôi ở đây là thuật toàn)
Trang 4Hình 5-1 Môi trường của các giao thức trên lớp mạng.
Thiết bị này được sử dụng như sau Một host với một gói tin cần truyền đi sẽ gửi góitin đến bộ định tuyến gần nhất, có thể là bộ định tuyến trên mạng LAN hoặc bộ định tuyếncủa nhà cung cấp đường truyền (ISP) Gói tin được lưu trữ ở lại đó cho tới khi nó đã được gửihoàn toàn và liên kết đã được hoàn thành sẽ xử lý bằng cách kiểm tra Sau đó gói tin sẽ đượcchuyển tiếp tới bộ định tuyến tiếp dọc theo đường đi, cho đến khi nó đến host đích Cơ chếnày chính là kỹ thuật lưu và chuyển mạch gói, như đã trình bày trong chương trước
5.1.2 Các dịch vụ cung cấp cho tầng vận chuyển
Lớp mạng cung cấp dịch vụ cho lớp vận chuyển qua giao diện lớp mạng/lớp vậnchuyển Một câu hỏi quan trọng là chính xác thì những loại dịch vụ lớp mạng nào cung cấpcho lớp vận chuyển Các dịch vụ cần phải thiết kế cẩn thận với các mục tiêu sau:
1 Các dịch vụ này phải được thiết kế một cách độc lập với các kỹ thuật của bộ địnhtuyến
2 Lớp vận chuyển cần được bảo vệ từ số lượng, chủng loại cho đến trình trạng cũngnhư mô hình của các bộ định tuyến hiện hành
3 Địa chỉ mạng phổ biến cung cấp cho lớp vận chuyển phải có sơ đồ đánh số nhấtquán cho dù là LAN hay WAN
Với các mục tiêu này, các nhà thiết kế lớp mạng để lộ ra rất nhiều khe hở trong việcthiết kế chi tiết các thông số kỹ thuật của các dịch vụ được cung cấp cho lớp giao vận Cáckhe hở này thoái hóa đi nhanh chóng khi xảy ra xung đột Lớp mạng cung cấp hai dịch vụchính là Dịch vụ định hướng kế nối (Connection – Oriented Service) và Dịch vụ định hướngkhông kết nối (Connectionless Service)
Một cộng đồng đại diện cộng đồng Internet lập luận rằng công việc của các bộ địnhtuyến chỉ là di chuyển gói tin Theo quan điểm này (dựa trên 40 năm kinh nghiệm với mộtmạng máy tính thực sự), mạng vốn không đáng tin cậy, không quan trọng nó đã được thiết kế
Trang 5như thế nào Vì vậy, các host phải chấp nhận yếu tố này đó là phải kiểm soát lỗi (phát hiện lỗi
và sửa chữa) và tự điểu khiển lưu lượng
Quan điểm này dẫn đến việc cho rằng mạng nên cung cấp một Dịch vụ không kết nối(Connectionless Sirvice), với GỬI GÓI TIN và NHẬN GÓI TIN gốc và một số khác Đặcbiệt, không nên yêu cầu gói tin hay điều khiểu lưu lượng bởi vì các host sẽ thực hiện nó bằngmọi cách và thường bằng cách lặp lại nó hai lần Suy luận này là một ví dụ của nguyên lýđiểm tới điểm, một nguyên tắc thiết kế có rất nhiều ảnh hưởng trong việc định hình Internet(Saltzer et al., 1984) Hơn nữa, mỗi gói tin phải thực hiện đầy đủ các địa chỉ đích, bởi vì mỗigói tin được thực hiện độc lập với gói tin trước đó của nó nếu có
Một cộng đồng khác, đại diện bởi các công ty điện thoại lại cho rằng mạng nên cungcấp một dịch vụ đáng tin cậy, Dịch vụ định hướng kết nối (Connection- Oriented Service)
Họ cho tằng với 100 năm kinh nghiệm thành công với hệ thống điện thoại trên toàn thế giới làmột hướng dẫn đáng tin cậy Nhìn theo cách này, chất lượng dịch vụ là các yếu tố chi phối màkhông phải kết nối trong mạng, chất lượng dịch vụ rất khó để đạt được, đặc biệt là đối vớitruyền tin thời gian thực với âm thanh thoại và video
Ngay cả sau nhiều thập kỷ, ngày nay cuộc tranh luận giữa hai bên vẫn còn rất sôi nổi.Gần đây, từ X25 trong thập niên 1970 và tiếp đó chuyển vào những năm 1980, dữ liện trênmạng được sử dụng nhiều, Dịch vụ định hướng nối kết phát triển rộng rãi Tuy nhiên, kể từngày mạng ARPANET và INTERNET, dịch vụ không nối kết (Connectioness) của tầng mạng
đã phát triển rất phổ biến Giao thức IP bây giờ phát triển rất thành công và còn đang tiếp tục
Nó không bị thay thế bởi dịch vụ định hướng kết nối theo công nghệ được gọi là ATM mà đãđược phát triển mạnh vào những năm 1980 Thay vào đó, hiện nay ATM được sử dụng thíchhợp và IP cũng được dùng trên mạng điện thoại Tuy nhiên Internet phát triển theo địnhhướng kết nối các tính năng cũng như cải thiện chất lượng dịch vụ trở nên quan trọng Hai ví
dụ về công nghệ theo định hướng Dịch vụ kết nối MPLS(MultiProtocol Label Swithching –Chuyển mạch nhãn đa giao thức), chúng ta sẽ phân tích về nó trong chương nay và VLANchúng ta đã nói tới trong chương 4 Cả hai công nghệ đều được sử dụng rất rộng rãi
5.1.3 Cài đặt dịch vụ không nối kết (Implementation of Connectionless Service)
Ta xem xét hai lớp của dịch vụ mạng có thể cung cấp cho người sử dụng, tìm hiểu xem
cơ chế hoạt động của các lớp này thế nào Hai tổ chức khác nhau cùng khả quan, tùy thuộcvào loại dịch vụ được cung cấp Đối với dịch vụ không kết nối, gói tin được đưa vào mạng cánhân và chuyển một cách riêng rẽ với nhau Không cần phải thiết lập nối kết trước khi truyềntin Trong trường hợp này, các gói tin được gọi là thư tín (Datagram) và mạng được gọi làDatagram Network Ngược lại trong dịch vụ định hướng kết nối, một đường kết nối giữa bêngửi và bên nhận phải được thiết lập trước khi các gói tin được gửi đi Kết nối này được gọi là
Trang 6mạch ảo (Virtual Circuit) tương tự như mạch vật lý được kết nối trong hệ thống điện thoại vàmạng trong trường hợp này được gọi là virtual-circuit network Trong phần này, ta sẽ nghiêncứu mạng thư tín (Datagram Network), và tiếp đó sẽ nghiên cứu về các mạng mạchảo( Virtual-circuit networks).
Bây giờ chúng ta sẽ trình bày về cách mạng Datagram hoạt động Giả sử rằng tronghình 5-2 ,process P1 có một message cần gửi tới process P2 Khi đó P1 sẽ gửi các messagenày cho tầng vận chuyển và yêu cầu tầng vận chuyển truyền sang quá trình P2 trên host H2.Tầng vận chuyển được chạy trên H1, cùng với hệ điều hành của nó Tầng vận chuyển sẽ gắnthêm header của nó vào message và chuyển các message xuống tầng mạng
Hình 5-2 Định tuyến trong mạng Datagram.
Ví dụ rằng thông điệp gửi đi lớp gấp 4 lần kích cỡ tối đa của một gói tin, vì thế tầngmạng phải chia thành 4 gói tin 1,2,3 và 4, và lần lượt gửi từng gói một đến bộ định tuyến Abằng một giao thức điểm nối điểm (point-to-point) như PPP chẳng hạn Khi đó nhà cung cấpđường chuyền (ISP) vượt quá cho phép Mỗi bộ định tuyến có một bảng thông tin cục bộ chỉ
ra nơi nào có thể gửi các gói tin để có thể đến được những đích đến khác nhau trên mạng Mỗimục của bảng chứa 2 thông tin quan trọng đó là Đích đến và ngõ ra kế tiếp cấn phải chuyểngói tin để có thể đến được đích đến này Chỉ có những kết nối trực tiếp mới có thể được sửdụng Ví dụ như trong hình 5-2, bộ định tuyến A chỉ có hai đường đi tới B và tới C, do đó mỗigói tin đến phải được gửi đến một trong hai bộ bộ định tuyến này, ngay ả khi điểm đích cuốicùng là một bộ định tuyến khác Bảng chọn đường của bộ định tuyến A lúc đầu như hình trên
“A’s table initially”
Trang 7Tại bộ định tuyến A, khi các gói tin 1,2 và 3 đến bộ định tuyến A, nó được lưu trữ tạmthời để kiểm tra lỗi Sau đó chúng được chuyển tiếp sang bộ định tuyến C theo thông tin trongbảng chọn đường của A Gói tin 1 sau đó tiếp tục được chuyển đến E và sau đó đến F Sau đó
nó được gói lại trong một khung của tầng liên kết dữ liệu và được chuyển đến host H2 bởimạng LAN Các gói tin 2 và 3 có cùng đường đi tương tự Tuy nhiên,với gói tin 4 thì khácmột chút Khi nó đến bộ định tuyến A, nó sẽ chuyển gói tin này sang B mặc dù nó cũng cóđích là F Vì một số lý do, bộ định tuyến A quyết định gửi gói tin 4 qua một con đường khácvới các gói dữ liệu đầu tiên Có lẽ nó đã biết được một sự tắc nghẽn ở một nơi nào đó dọc theođường ACE và đã cập nhật bảng chọn đường của mình như ở hình với bảng chon đường củabộ định tuyến A lúc sau “A’s table later” Các giải thuật chiu trách nhiệm quản lý thông tintrong bảng trọn đường cũng như thực hiện các quyết định về chọn đường được gọi là giảithuật chon đường (Routing alogorithms) Giải thuật chọn đường là một trong những chủ đềchính, chúng tôi sẽ nghiên cứu trong chương này Chúng ta sẽ thấy nó có một số loại khácnhau IP (Internet Protocol), là cơ sở cho toàn bộ mạng Internet, là ví dụ điển hình về dịch vụmạng không nối kết Mỗi gói tin có một đích đến mang đia chỉ IP mà bộ định tuyến sử dụng
để cá nhân chuyển tiếp mỗi gói tin Các địa chỉ có 32 bit đối với IPv4 và 128 bit đối với IPv6.Chúng tôi sẽ mô tả chi tiết hơn về IP trong phần sau của chương này
5.1.4 Cài đặt dịch vụ định hướng kết nối (Connection – Oriented Service)
Đối với dịch vụ kết nối định hướng chúng ta cần một mạng lưới mạch ảo Chúng ta hãycùng nhau giải quyết vấn đề đó Mục đích của việc sử dụng mạng lưới mạch ảo là để tránhviệc phải chọn lại đường đi mới cho mỗi gói tin gửi đi, như hình 5-2 Thay vào đó, khi mộtkết nối được thiếp lập, một tuyến đường từ nguồn gửi đến nguồn nhận được chọn như mộtphần của giai đoạn thiết lập kết nối(Connection setup) và được lưu trong bảng chọn đườngcủa các bộ định tuyến nằm trên đường đi Tuyến đường đó được sử dụng cho tất cả các gói tinlưu thông qua kết nối, chính xác theo cách mà hệ thống điện thoại hoạt động Khi kết nối kếtthúc, các mạch ảo bị xóa Với dịch vụ định huowgns nối kết, mỗi gói tin mang một số địnhdạng để xác định mạch ảo mà nó thuộc về
Ví dụ như trong hình 5-3 Ở đây host H1 thực hiện một kết nối với host H2 qua kếtnối số 1.Kết nối này được ghi nhận trong mục từ đầu tiên trong bảng chọn đường của các bộđịnh tuyến Dòng đầu tiên trong bảng chọn đường của bộ định tuyến A cho biết những gói tinmang số nhận dạng nối kết là 1 đến từ máy H1 phải được gửi sang bộ định tuyến C với sốnhận dạng nối kết là 1 Tương tự cho các mục đầu tiên của bộ định tuyến C và E, cũng có sốnhận dạng nối kết là 1
Trang 8Hình 5-3 Định tuyến trong mạng mạch ảo.
Bây giờ chúng ta hãy cùng xem xét điều gì xảy ra nếu host H3 cũng muốn kết nối vớihost H2 Nó chọn số nhận dạng kết nối là 1, vì đây là kết nối đầu tiên đối với H3 và yêu cầuthiết lập mạch ảo Điều này dẫn đến các bộ định tuyến phải thêm vào mục từ số 2 trong bảngchọn đường Lưu ý rằng chúng ta có một xung đột ở đây bởi vì mặc dù A thì có thể dễ dàngphân biệt khi số nhận dạng nối kết với H1 là 1 và số nhận dạng kết nối từ H3 cũng là 1, nhưng
C thì không thể Vì thế, A phải gán một số nhận dạng nối kết khác cho kết nối thứ 2 này đểtránh xung đột Đó là lý do vì sao các bộ định tuyến cần có khả năng thay thế số nhận dạngkết nối với các gói tin gửi đi
Trong một số trường hợp, quá trình này được gọi là đánh dấu chuyển đổi (labelswitching) Một ví dụ về mạng dịch vụ định hướng nối kết là MPLS( Multi Protocol LabelSwitching) Nó được sử dụng trong mạng ISP trên Internet, với ISP gói tin được gói trong mộtthanh MPLS với 20 bit số nhận dạng kết nối hay dấu chuyển đổi MPLS thường có ít kháchhàng , với thiết lập ISP các kết nối lâu dài với chi phí và lưu lượng truy cập lớn, nhưng nóđang ngày càng được sử dụng không chỉ vì khi chất lượng của dịch vụ đang được chú trọng
mà còn để cho nhiệm vụ khác là quản lý lưu lượng truy cập ISP Chúng tôi sẽ nói nhiều hơn
về MPLS trong phần sau của chương này
5.1.5 So sánh giữa các mạng mạch ảo (Virtual-Circuit) và mạng thư tín (Datagram )
Trang 9Cả mạng lưới mạch ảo (Virtual circuit) mà mạng thư tín (Datagram Network) đều cónhững điểm mạnh và điểm yếu Chúng ta sẽ tóm tắt các ưu nhược điểm của cả hai Nhữngđiểm chính đượng liệt kê trong bảng hình 5-4.
địa chỉ gửi và nhận
Mỗi gói tin chứa số mạch ảo nhỏ
cần phải lưu giữ thông tin trạng thái của các nối kết
Mỗi mạch ảo phải được lưu lại trong bảng trọn đường của bộ
định tuyến
khác nhau
Đường đi được chọn khi mạch
ảo được thiết lập, sau đó tất cả các gói tin đầu đi trên đường này
Ảnh hưởng khi bộ định
tuyến bị hỏng Không bị ảnh hưởng, ngoại trừ gói tin đang
trên đường truyền bị
hỏng
Tất cả các mạch ảo đi qua bộ
định tuyến bị hỏng đều kết thúc
tài nguyên gán trước cho từng mạnh ảo
gán trước cho từng gói mạch ảo
Hình 5-4 So sánh giữa Virtual-Circuit và Datagram Networks
Bên trong một mạng, một số lựa chọn tồn tại giữa các Virtual Circuit và Datagram.Một chọn lựa (trade-off) là thiết lập thời gian so với địa chỉ phân tích thời gian Bằng cách sửdụng mạch ảo yêu cầu một quá trình thiết lập, việc này mất thời gian và thiêu thụ tài nguyên.Tuy nhiên, khi vấn đề này được giải quyết, hình dạng của những gì để làm với một gói tintrong một vi mạch ảo trở nên dễ dàng Bộ định tuyến chỉ sực dụng số mạch để đánh dấu vàomột bảng nhằm mục đích tìm hiểu nơi gói tin sẽ đi Trong một mạng lưới datagram, thiết lập
là không cần nhưng một thủ tục tra cứu phức tạp hơn là cần thiết để xác định vị trí các mụccho các điểm đến
Một vấn đề có liênquan là các địa chỉ đích được sử dụng trong mạng lướidatagram là nó dài hơn số mạch được sử dụng trong các mạng mạch ảo (virtual-circuit) bởi
vì chúng có một ý nghĩa toàn cầu Nếu các gói tin có xu hướng khá ngắn, trong đó một địachỉ đích đầy đủ trong mỗi gói có thể đại diện cho rất nhiều kể trên, và vì thế dẫn đến một sựlãng phí băng thông
Trang 10Tuy nhiên, một vấn đề nữa là số lượng bảng trống cần thiết trong bộ nhớ bộ địnhtuyến Một mạng lưới datagram cần phải có một đầu vào cho mỗi điểm đích, trong khi mộtmạng lưới mạch ảo chỉ cần một đầu vào cho mỗi mạch ảo Tuy nhiên, lợi thế này là khôngkhách quan khi kết nối cài đặt các gói tin phải được chuyển qua bộ định tuyến, và chúng sửdụng địa chỉ đích, giống như datagrams làm.
Mạch ảo có một lợi thế trong đảm bảo chất lượng dịch vụ và tránh tắc nghẽn trong mạng nhờ
có tài nguyên ( ví dụ như bộ đếm, băng thông và CPU) có thể được lưu trữ trước khi kết nóiđược thiết lập Một khi các gói tin bắt đầu đến, các băng thông cần thiết và khả năng địnhtuyến sẽ sẵn sàng Với một mạng lưới datagram thì tránh tắc nghẽn là khó khăn hơn Với hệthống xử lý giao dịch (ví dụ: mua sắm gọi lên để xác minh thẻ tín dụng mua hàng), chi phí cầnthiết để thiết lập và xóa một mạch ảo có thể ít hơn việc sử dụng của các mạch Nếu phầnlớn lưu lượng truy cập dự kiến đều theo loại này, sử dụng ảo mạch bên trong mạng là mộtviệc khôn ngoan Mặt khác, với cách dung long-running chẳng hạn như lưu lượng truy cậpVPN giữa hai văn phòng công ty, mạch ảo cố định (mà được thiết lập bằng tay vào cuối thánghay năm) có thể mang lại lợi ích
Mạch ảo cũng có một vấn đề dễ bị hư hỏng Nếu một bộ định tuyến gặp sự cố và
mất bộ nhớ của nó, ngay cả khi nó khôi phục lại ngay sau đó, tất cả các mạch ảo
đi qua nó sẽ bị hủy bỏ Ngược lại, nếu một bộ định tuyến datagram gặp sự cố, chỉ là nhữngngười sử dụng có gói dữ liệu được xếp hàng đợi trong bộ định tuyến lúc đó bị hỏng (và có
lẽ không thậm chí đó từ người gửi có khả năng để gửi lại chúng chúng
sau đó) Sự mất mát của một luồng liên lạng là điểm yếu của việc sử dụng mạch ảo, nhưng cóthể dễ dàng khắc phục cho nếu sử dụng datagrams Datagram cũng cho phép các bộ địnhtuyến cân bằng lưu lượng truy cập trên toàn mạng, khi đó các bộ định tuyến có thể bị thay đổiphần nào một qua một chuỗi dài các gói tin truyền đi
5.2 ROUTING ALGORITHMS ( THUẬT TOÁN ĐỊNH TUYẾN)
Các chức năng chính của lớp mạng là định tuyến các gói tin từ máy tính nguồn đếnmáy tính đích Trong hầu hết các mạng, các gói sẽ yêu cầu nhiều bước nhảy(hops) để tạothành hành trình Chỉ một số trường hợp ngoại lệ là dành cho mạng phát rộng(broadcastnetworks), nhưng trong trường hợp này định tuyến là một issuenếu nguồn và đích không nằmtrên cùng thành phần mạng Các thuật toán lựa chọn các tuyến đường và cấu trúc dữ liệu màchúng sử dụng là một phần quan trọng trong thiết kế lớp mạng
Các thuật toán định tuyến là một phần của các lớp phần mềm mạng chịu trách nhiệm
về quyết định đâu là đầu ra của một gói tin đến nên được truyền vào Nếu mạng sử dụng cácgói dữ liệu nội bộ, quyết định này phải được thực hiện một lần nữa cho mỗi gói dữ liệu đến từ
Trang 11nội bộ, các quyết định định tuyến được thực hiện khi một mạch ảo mới đang được thiết lập.Sau đó, các gói dữ liệu chỉ cần làm theo các tuyến đường đã được thành lập Các trường hợpsau đó đôi khi được gọi là phiên định tuyến vì một tuyến đường vẫn còn hiệu lực cho toàn bộmột phiên (ví dụ, khi đăng nhập trên một VPN).
Việc đó đôi khi hữu ích để thực hiện một sự phân biệt giữa các định tuyến, làm cho cácquyết định định tuyến được sử dụng, và chuyển tiếp, đó là những gì sẽ xảy ra khi một gói tinđến Người ta có thể nghĩ về một bộ định tuyến có hai quá trình bên trong nó Một trong sốchúng xử lý mỗi gói tin khi nó đến, nhìn lên những đường đi để sử dụng nó trong các bảngđịnh tuyến Quá trình này được chuyển tiếp Các quá trình khác có trách nhiệm điền vào vàcập nhật các bảng định tuyến
Bất kể các tuyến đường được chọn độc lập cho mỗi gói tin được gửi hay chỉ khi kết nốimới được thành lập, thì tính chất nhất định được mong muốn trong một thuật toán định tuyến:chính xác, đơn giản, linh hoạt, ổn định, công bằng và hiệu quả Tính chính xác và đơn giảnhầu như không yêu cầu bàn luận, nhưng tính linh hoạt có thể ít thấy rõ ràng lúc đầu Khi mộtmạng lớn đặt ngoài không gian, nó có thể được dự kiến sẽ chạy liên tục trong nhiều năm mà
hệ thống sẽ không hỏng Trong thời gian đó có thể sẽ có phần cứng và phần mềm hỏng củatất cả các loại Các máy tính(hots), bộ định tuyếnvà các tuyến sẽ bị lỗi nhiều lần, và các cấutrúc liên kết sẽ thay đổi nhiều lần Các thuật toán định tuyến sẽ có thể thay đổi tương ứng vớinhững thay đổi trong cấu trúc liên kết và truy cập mà không yêu cầu tất cả các công việc trongtất cả các máy phải được hủy bỏ Hãy tưởng tượng sự tàn phá nếu mạng cần được khởi độnglại mỗi khi một số bộ định tuyến bị lỗi!
Sự ổn định cũng là một mục tiêu quan trọng đối với các thuật toán định tuyến Thực tế
có tồn tại các thuật toán định tuyến mà không bao giờ hội tụ về một tập cố định các đườngdẫn, bất kể nó chạy bao lâu Một thuật toán ổn định đạt đến trạng thái cân bằng và ở duy trì ởtrạng thái đó Thuật toán định tuyến nên được hội tụ nhanh, sự truyền dữ liệu trong mạng cóthể bị gián đoạn cho đến khi các thuật toán định tuyến đã đạt đến trạng thái cân bằng
Trước khi chúng ta cố gắng tìm các ưu nhược điểm giữa tính công bằng và hiệu suất,chúng ta phải quyết định những đặc điểm nào chúng ta tìm kiếm để tối ưu hóa Giảm thiểu sựchậm trễ gói tin trung bình để gửi lưu lượng truy cập thông qua mạng một cách hiệu quả làmột ưu điểm rõ ràng, nhưng như vậy là tối đa hóa tổng thông lượng mạng hơn nữa, hai mụcđích này cũng có mâu thuẫn, kể từ thời điểm hệ thống tuần tự bất kỳ hoạt động gần hết côngsuất tức là sẽ có sự trễ dài tuần tự., nhiều mạng cố gắng để giảm thiểu khoảng cách một gói tinphải , gửi đi hoặc chỉ đơn giản là giảm số lượng các bước nhảy(hops) một gói phải thực hiện.Hoặc là lựa chọn xu hướng cải thiện sự chậm trễ và cũng làm giảm số lượng băng thông tiêuthụ cho mỗi gói tin, mà có xu hướng cải thiện thông lượng mạng tổng thể là tốt
Thuật toán định tuyến được có thể được chia thành hai loại : nonadaptive và adaptive
Thuật toán nonadaptive không dựa trên quyết định định tuyến của chúng trên bất kỳ phép
đo hoặc ước tính của các cấu trúc liên kết hiện tại và tuyến đường Thay vào đó, sự lựa chọncủa các tuyến đường sử dụng để có được từ I đến J (cho tất cả các I và J) được tính toán trước,offline, và tải về các bộ định tuyến khi mạng được khởi động Thuật toán này đôi khi đượcgọi là định tuyến tĩnh Bởi vì nó không đáp ứng được trong trường hợp định tuyến thất bại,định tuyến tĩnh được ứng dụng chủ yếu hữu ích cho các tình huống trong đó các lựa chọn định
Trang 12tuyến là rõ rang Ví dụ, bộ định tuyến F trong hình 5-3 nên gửi các gói dữ liệu đầu vào mạngvới bộ định tuyến E không phụ thuộc vào điểm đến cuối cùng.
Các thuật toán Adaptive, ngược lại với thuật toán nonadaptive, thay đổi các quyết
định định tuyến của chúng để đáp ứng với những thay đổi trong cấu trúc liên kết, và đôi khicũng thay đổi trong tuyến đường Các thuật toán định tuyến động khác nhau, trong đó chúng
có được thông tin của chúng (ví dụ như, tại địa phương, từ các bộ định tuyến lân cận, hoặc từtất cả các bộ định tuyến), khi chúng thay đổi các tuyến đường (ví dụ, khi thay đổi cấu trúc liênkết, hoặc mỗi giây •T như những thay đổi tải), và những số liệu được sử dụng để tối ưu hóa(ví dụ, khoảng cách, số hop, hoặc ước tính thời gian vận chuyển)
Trong các phần sau, chúng ta sẽ thảo luận về một loạt các thuật toán định tuyến Cácthuật toán bao gồm mô hình cung cấp ngoài việc gửi một gói tin từ một nguồn tới một đích.Đôi khi mục đích là để gửi các gói tin đến nhiều, tất cả, hoặc một trong một tập các điểm đến.Tất cả các thuật toán định tuyến, chúng ta mô tả ở đây đưa ra quyết định dựa trên các cấu trúcliên kết; chúng ta trì hoãn khả năng ra quyết định dựa trên mức độ giao thông để Sec 5.3
5.2.1 Nguyên tắc Tối ưu (The Optimality Principle)
Trước khi chúng ta nhận được các thuật toán cụ thể, nó có thể hữu ích để lưu ý rằngngười ta có thể đưa ra tuyến đường tối ưu mà không quan tâm đến cấu trúc liên kết mạng hoặclưu lượng truy cập Phát biểu này được biết đến như là nguyên tắc tối ưu (Bellman,1957)
Trang 13Phát biểu như sau nếu bộ định tuyến J là trên đường đi tối ưu từ bộ định tuyến I tới bộ địnhtuyến K, thì đường đi tối ưu từ J tới K cũng thuộc trên cùng một tuyến đường Để thấy đượcđiều này,ta gọi phần của tuyến đường từ I đến J là r1 và phần còn lại của tuyến đường là r 2.
Như một hệ quả trực tiếp của các nguyên tắc tối ưu, chúng ta có thể thấy rằng tập hợpcác tuyến đường tối ưu từ tất cả các nguồn tới đích đã tạo thành một cây có gốc là điểm đến.Một cái cây như vậy được gọi là cây tối thiểu và được minh họa trong hình 5-6 (b), ở đâykhoảng cách metric là số hop Mục tiêu của tất cả các thuật toán định tuyến là phát hiện và sửdụng các cây tối thiểu cho tất cả các bộ định tuyến Lưu ý rằng không chỉ tồn tại duy nhất mộtcây tối thiểu; mà còn có các cây khác có chiều dài đường đi ngắn nhất Nếu chúng ta cho phéptất cả các con đường có thể được lựa chọn, các cây trở thành một cấu trúc tổng quát hơn được
gọi là một DAG (Directed Acyclic Graph) DGAs không có vòng lặp Chúng ta sẽ sử dụng
cây tối thiểu như một cách viết tắt thuận tiện cho cả hai trường hợp cả hai trường hợp đềuphụ thuộc vào giả định kỹ thuật rằng các đường dẫn không ảnh hưởng lẫn nhau, ví dụ, khinghẽn mạng xảy ra trên một tuyến đường thì nó sẽ không thể chuyển hướng sang tuyến đườngkhác
Một cây tối thiểu được coi là một cây khi nó không chứa bất kì vòng lặp nào,do đó mỗi gói tin
sẽ được gửi một số hữu hạn lần và được giới hạn bởi các hop
Trong thực tế, điều trên xảy ra không hề dễ dàng Các lien kết và các bộ định tuyến cóthể đi xuống và trở lại trong quá trình hoạt động, vì vậy các bộ định tuyến có thể có các ýtưởng khác nhau về cấu trúc lien kết hiện tại ngoài ra, chúng tôi có đưa ra thủ thuật để mỗi bộđịnh tuyến có thể có được các thông tin cá nhân để làm cơ sở tính toán cây tối thiểu hoặc cóthể thu tập các thông tin này bằng các thủ thuật khác Chúng ta sẽ trở lại những vấn đề nàyngay sau đây Tuy nhiên, nguyên tắc tối ưu và cây tối thiểu cung cấp một chuẩn mực để đánhgiá các thuật toán định tuyến khác
5.2.2 Thuật toán tìm đường đi ngắn nhất (Shortest Path Algorithm)
Trang 14Chúng ta hãy bắt đầu nghiên cứu về thuật toán định tuyến của chúng ta với một kỹthuật đơn giản để tính toán đường đi tối ưu cho một mạng hoàn chỉnh Những tuyến đườngnày là những gì mà chúng ta muốn một thuật toán định tuyến phân phối tìm được, mặc dùkhông phải tất cả các bộ định tuyến đều có thể biết tất cả các chi tiết về mạng.
Ý tưởng là để xây dựng một đồ hình cho mạng, với mỗi nút của đồ hình tương ứng vớimột bộ định tuyến và mỗi cạnh của đồ hình tương ứng với một thông tin lien lạc, hoặc liênkết để chọn một đường đi giữa một cặp các thiết bị định tuyến cho trước, thuật toán phải tìm
ra đường đi ngắn nhất giữa chúng trên đồ hình
Cần một số giải thích cho khái niệm đường đi ngắn nhất một cách để đánh giá chiềudài đường đi là số hop Sử dụng số liệu này(metric), hai đường ABC và ABE trong hìnhFig.5-7 có chiều dài bằng nhau Metric khác là khoảng cách địa lý bằng km, trong trường hợp
đó ABC rõ ràng là dài hơn ABE (giả sử con số được rút ra theo tỉ lệ)
Tuy nhiên, nhiều metric khác ngoài các hop và khoảng cách vật lý cũng có thể Ví dụ,mỗi cạch có thể được ghi nhãn là trễ trung bình của một gói tin kiểm tra, được đo bằng giờ.Với nhãn đồ hình này, đường đi ngắn nhất là đường đi nhanh nhất chứ không phải đường đivới số cạnh hay số km ít nhất
Trong trường hợp chung, các nhãn trên cạnh có thể được tính toán như một hàm củakhoảng cách, băng thông, lưu lượng trung bình, chi phí thông tin lien lạc, trễ đo, và các yếu tốkhác Bằng cách thay đổi hàm phụ(weighting function), thuật toán sau đó sẽ tính toán đường
đi ngắn nhất tính theo
Trang 15Một số thuật toán để tính toán đường đi ngắn nhất giữa hai nút của một đồ hình đã biết.Được gọi là thuật toán Dijkstra(1959) và tìm đường đi ngắn nhất giữa một nguồn tới tất cả cácđích trong một mạng Mỗi nút được gắn nhãn(trong ngoặc đơn) với khoảng cách từ nó tới nútnguồn là tốt nhất Các khoảng cách phải không âm, vì nó được dựa trên các số liệu thực tế nhưbăng thông và độ trễ Ban đầu, những đi không biết, vì vậy tất cả các nút được gán nhãn là vôcùng Thu được thuật toán và tìm được đường đi Một nhãn có thể là tạm thời hoặc vĩnh viễn.Ban đầu, tất cả nhãn là được dự đoán Khi nó phát hiện được rằng một nhãn đại diện chođường đi ngắn nhất có thể từ nguồn tới nút đó, nó sẽ gán nhãn đó và không thay đổi nữa.
Để minh họa cho thuật toán làm việc gán nhãn, nhìn vào trọng số, đồ thị vô hướng củahình Fig 5-7(a), ở đây những trọng số đại diện ví dụ như khoảng cách Chúng ta muốn tìmđường đi ngắn nhất từ A tới D Chúng ta bắt đầu đánh dấu nút A là nút gốc bằng một vòngtròn Sau đó chúng ta kiểm tra lần lượt mỗi nút liền kề với A(nút làm việc), gán nhãn lại vớimỗi nút làm việc tới A Bất cứ khi nào mà một nút đã được gán nhãn, chúng ta cũng gán nóvới nút từ.Trong mạng nếu có nhiều hơn một đường đi ngắn nhất từ A tới D và chúng ta muốntìm tất cả chúng, chúng ta nên cần nhớ tất cả nút dò có thể tìm tới một nút với cùng mộtkhoảng cách
Trang 16Sau khi kiểm tra tất cả các nút liền kề với A, chúng ta kiểm tra tất cả các nút được gánnhãn tạm thời trong toàn bộ đồ thị và cố định vĩnh viễn các nhãn có giá trọng số nhỏ nhất, nhưhình Fig 5-7(b) Cái nút được gán cố định ấy trở thành nút làm việc mới.
Bây giờ chúng ta bắt đầu với nút B và kiểm tra tất cả các nút liền kề với B Nếu tổngcác nhãn trên B và khoảng cách từ B tới các nút nhỏ hơn các nhãn vào nút đó, chúng ta có mộtđường đi ngắn nhất, vậy nút được gán nhãn lại
Sau khi tất cả các nút làm việc đã được kiểm tra và các nhãn được thay đổi nếu có thể,toàn bộ đồ hình được tìm kiếm với các nút được gán nhãn nhỏ nhất Nút này được cập nhập
và trở thành nút làm việc cho các vòng tiếp theo Hình 5-7 biểu diễn sáu bước đầu tiên củathuật toán
Để xem tại sao thuật toán làm việc được, nhìn hình Fig 5-7(c) Tại thời điểm nàychúng ta vừa gán nhãn cố định cho điểm E Giả sử rằng có một con đường ngắn hơn ABE,như AXYZE(cho số X và Y) Có thể có hai khả năng: hoặc là nút Z được gán cố định hoặckhông Nếu có có,thì E được xét, vì vậy đường AXYZ không thể là đường đi ngắn hơn ABE
Bây giờ hãy xem xét trường hợp Z vẫn chưa được gán nhãn cố định Nếu nhãn ở Z lớnhơn hoặc bằng nhãn ở E, thì AXYZ không thể là đường đi ngắn hơn ABE Nếu nhãn ở Z mànhỏ hơn nhãn ở E, thì Z và không phải E là điểm được xét đầu tiên, cho phép E được dò từ Z
Thuật toán được đưa ra trong hình Fig 5-8 Các biến toàn cục n và cục bộ miêu tả đồhình và được khởi tạo đường đi ngắn nhất được gọi Sự khác nhau duy nhất giữa chương trình
và thuật toán được mô tả ở trên cho trong hình Fig 5-8, chúng ta tính toán đường đi ngắn nhấtbắt đầu tại nút đầu cuối, t, chứ không phải nút nguồn, s
Kể từ khi con đường ngắn nhất từ t tới s trong một đồ thị vô hướng giống như đường đi ngắnnhất từ s tới t, chúng ta không quan trọng điểm bắt đầu và điểm kết thúc Lý do tìm kiếmngược là mỗi nút được gán nhãn với nút trước nó chứ không phải nút kế sau nó Khi đường đicuối cùng được copy ra biến đầu ra, đường dẫn, đường dẫn đảo ngược Hai hiệu ứng đảongược hủy bỏ, và kết quả được xuất ra đúng thứ tự
5.2.3 Flooding(phương pháp làm tràn ngập)
Khi một thuật toán định tuyến được thực hiện, mỗi bộ định tuyến phải đưa ra quyếtđịnh dựa trên kiến thức địa phương, không phải là toàn bộ mạng hoàn chỉnh Một kỹ thuật địaphương đơn giản là flooding, trong đó mỗi gói tin đến được gửi đi trên tất cả các đường ngoạitrừ đường có gói dữ liệu vào
Flooding rõ ràng là sẽ tạo ra số lượng lớn các gói tin trùng lặp, trong thực tế, sẽ tạo ramột số vô hạn các gói tin trùng lặp nếu không có biện pháp nhằm hãm quá trình này lại Mộtbiện pháp là tạo ra một hop đếm chứa trong phần đầu(header) của mỗi gói tin, với gói tin bịhủy bỏ khi đếm bằng không Trường hợp lý tưởng, bộ đếm hop được khởi tạo với độ dài củađường đi từ nguồn tới đích Nếu bên phát không biết chiều dài đường đi nó có thể khởi tạođếm trong trường hợp xấu nhất là đường kính đầy đủ của mạng
#define MAX NODES 1024 /* maximum number of nodes */
#define INFINITY 1000000000 /* a number larger than every maximum path */
Trang 17void shortest path(int s, int t, int path[])
{ struct state { /* the path being worked on */
int predecessor; /* previous node */
int length; /* length from source to this node */
enum {permanent, tentative} label; /* label state */
state[t].length = 0; state[t].label = permanent;
k = t; /* k is the initial working node */
do { /* Is there a better path from k? */
for (i = 0; i < n; i++) /* this graph has n nodes */
if (dist[k][i] != 0 && state[i].label == tentative) {
if (state[k].length + dist[k][i] < state[i].length) {
Hình 5-8 Dijkstra’s algorithm to compute the shortest path through a graph
Flooding với một số hop có thể tạo ra một số mũ của các gói tin trùng lặp là hop countphát triển và định tuyến các gói tin trùng lặp chúng thấy trước đó Một kỹ thuật tốt hơn choflloding là phải có thiết bị định tuyến theo dõi các gói tin đã bị flooding, để tránh việc gửichúng ra một lần thứ hai Một cách để đạt được mục tiêu này là phải có bộ định tuyến nguồnđặt một số thứ tự trong mỗi gói tin mà nó nhận được từ host của nó Mỗi bộ định tuyến sau đó
Trang 18cần một danh sách mỗi bộ định tuyến nguồn kể mà số thứ tự có xuất xứ tại nguồn đã nhậnđược Nếu một gói tin đến có trong danh sách, thì nó không bị flooding.
Để ngăn chặn danh sách đang phát triển mà không bị ràng buộc, mỗi danh sách cầnđược bổ sung bằng một quầy, k, có nghĩa là tất cả các số thứ tự qua k đã được nhìn thấy Khimột gói tin đi vào, nó rất dễ dàng để kiểm tra xem các gói tin đã flooding (bằng cách so sánh
số thứ tự của nó để k; Nếu như vậy, nó sẽ được hủy Hơn nữa, toàn bộ danh sách dưới đây k
là không cần thiết, vì k có hiệu quả tóm tắt nó
Trong thực tế flooding không được áp dụng khi gửi nhiều gói tin, nhưng nó cũng cómột số ứng dụng quan trọng
Đầu tiên, nó đảm bảo rằng một gói tin được gửi đến tất cả các nút trong mạng Điềunày có thể gây lãng phí nếu có một nút duy nhất cần nhận gói tin này, nhưng nó sẽ có ứngdụng hiệu quả trong truyền thông Trong các mạng không dây, tất cả các tin tức được truyền
đi bởi một trạm có thể được nhận bởi tất cả các trạm khác trong phạm vi phát của nó, trongthực tế flooding và một số thuật toán sử dụng ưu điểm này
Thứ hai, flooding ngay cả khi có một số lượng lớn các thiết bị định tuyến đề địnhtuyến dòng bit đến(ví dụ trong một mạng nằm trong khu vực có chiến tranh), flooding sẽ tìmđược đường đi nếu có đường đi tồn tại, để đưa gói tin đến được đích Flooding cũng yêu cầurất ít trong cách thiết lập Các bộ định tuyến chỉ cần biết các nút liền kề của chúng Điều này
có nghĩa là flooding có thể được sử dụng như một khối xây dựng sẵn cho các thuật toán địnhtuyến khác có hiệu quả hơn nhưng cần cách xây dựng phức tạp hơn Flooding cũng có thểđược sử dụng như một thước đo để so sánh với các thuật toán khác Flooding luôn luôn lựachọn đường đi ngắn nhất bởi vì nó chọn mỗi đường đi có thể song song với nhau Do đó,không có thuật toán nào khác có thể tạo ra một trẽ ngắn hơn(nếu chúng bỏ qua các trễ phátsinh do quá trình flooding chính nó)
5.2.4 Distance Vecter Routing(định tuyến vector khoảng cách)
Mạng máy tính thường sử dụng thuật toán định tuyến động có yêu cầu phức tạp hơnflooding, nhưng hiệu quả hơn bởi vì nó tìm đường đi ngắn nhất cho cấu trúc liên kết hiện tại.Hai thuật toán định tuyến động trong thực tế được sử dụng phổ biến nhất là định tuyến vecterkhoảng cách và định tuyến trạng thái liên kết Trong phần này, chúng ta sẽ xem xét các thuậttoán trước Trong phần sau chúng ta sẽ nghiên cứu các thuật toán sau
Một thuật toán định tuyến vecter khoảng cách hoạt động bằng cách mỗi bộ định tuyếntạo ra một bảng( ví dụ một vecter) cho một khoảng cách tốt nhất tới mỗi đích và đường dẫnnào được sử dụng Những bảng này sẽ được cập nhật bằng cách trao đổi các thông tin với cácnút liền kề Cuối cùng mỗi bộ định tuyến sẽ biết được đường dẫn tốt nhất đến đích
Thuật toán định tuyến vecter khoảng cách đôi khi còn được gọi bằng tên khác, phổ biến nhất
là thuật toán định tuyến Bellman-Ford, sau khi nghiên cứu họ đã phát triển nó(Bellman, 1957;
và Ford and Fulkerson, 1962) Đó là thuật toán định tuyến ARPANET và nó được sử dụngtrong mạng Internet với tên RIP
Trong thuật toán định tuyến vecter khoảng cách, mỗi bộ định tuyến tạo ra một bảng chỉ
số định tuyến và có chứa một mục nhập cho mỗi bộ định tuyến trong mạng Mục nhập này
Trang 19đó Khoảng cách phải được đánh giá như số lượng của hop hoặc sử dụng đơn vị đo khác, nhưchúng ta đã đề cập để tính toán được đường đi ngắn nhất.
Bộ định tuyến được giả định là đã biết khoảng cách từ nó đến các nút liền kề Nếu đơnvị là hop, thì khoảng cách là hop Nếu đơn vị là trễ, bộ định tuyến có thể đo trực tiếp nó vớigói tin đặc biệt ECHO mới nhận được và gửi nó lại nhanh nhất có thể
Ví dụ, giả thiết rằng trễ được sử dụng như một đơn vị đo và bộ định tuyến đã biết trễ từ
nó tới các nút liền kề Mỗi T msec, mỗi bộ định tuyến gửi tới mỗi nút liền kề một danh sáchđộ trễ ước tính tới mỗi đích Nó cũng nhận được một danh sách tương tự từ các nút liền kề.Tưởng tượng rằng một trong các bảng vừa đến từ nút liền kề X, với Xi là trễ đo từ X tới bộđịnh tuyến i Nếu bộ định tuyến biết trễ tới X là m msec, nó cũng biết có thể biết được bộ địnhtuyến i qua X là Xi+m msec Bằng cách thực hiện tính toán này cho mỗi nút liền kề, một bộđịnh tuyến có thể tìm ra đánh giá tốt nhất và sử dụng đánh giá đó và liên kết tương ứng trongbảng định tuyến mới Chú ý rằng bảng định tuyến cũ không được sử dụng trong tính toán.Quá trình cập nhật này được minh họa trong hình Fig 5-9 Phần (a) biểu diễn một mạng Bốncột đầu tiên của phần (b) biểu diễn vecter trễ nhận được từ các nút liền
kề của bộ định tuyến J Trong hình cho thấy 12-msec trễ tới B, 25-msec trễ tới C, 40-msec trễtới D,vv Giả sử J đã được đo hoặc đánh giá độ trễ từ nó tới các nút liền kề thì A,I,H, và K sẽ
có trễ tương ứng là 8,10,12, và 6 msec
Hãy xem J tính đường đi mới tới G Nó biết rằng nó có thể nhận từ A 8 msec, và hơnnữa từ A đến G có thể tính được là 18 msec, vì vậy J biết nó có thể đếm một trễ đến G là 26msec nếu nó chuyển tiếp gói tin cho G tới A Tương tự, nó tính trễ từ G qua I, H, và K tươngứng là 41(31+10), 18(6+12), và 37(31+6) msec Giá trị tốt nhất là 18 msec và định tuyến sửdụng qua H Tính toán tương tự được thực hiện cho tất cả các điểm đích khác, với bảng địnhtuyến mới biểu diễn trong cột cuối cùng của hình vẽ
The Count-to-Infinity Problem
Trang 20Việc định tuyến để tìm ra đường đi tốt nhất trong mạng được gọi là hội tụ(convergence) Định tuyến vecter khoảng cách thường sử dụng một kỹ thuật đơn giản mà cácbộ định tuyến có thể tính toán đường đi chung ngắn nhất, nhưng trong thực tế nó có mộtnhược điểm quan trọng: mặc dù nó hội tụ chính xác, nhưng nó có thể làm chậm tin Đặc biệt,
nó truyền tin tốt thì nhanh, tin xấu thì chậm Xét một bộ định tuyến mà định tuyến tới đích Xdài nhất Nếu trong chuyển tiếp tiếp theo, nút liền kề A bất ngờ gửi một trễ ngắn tới X, bộđịnh tuyến chỉ chuyển sang sử dụng các đường tới A để gửi lưu lượng truy cập tới X Trongvecter chuyển tiếp, tin tốt sẽ được xử lí
Để xem cách chúng nhanh chóng lan truyền tin tốt, xét năm nút mạng của hình Fig
5-10, ở đây đơn vị trễ là số hop Giả sử A đi xuống và tất cả bộ định tuyến khác biết điều này.Nói cách khác, chúng ghi tất cả các trễ tới A là vô cùng
Khi A đi lên, các bộ định tuyến khác biết được nó qua tốc độ vecter thay đổi Để đơngiản hóa, chúng ta sẽ giả thiết rằng tại một điểm nào đó trên mạng mà bắt đầu thay đổi tất cảcác vecter ở tất cả các bộ định tuyến tại cùng một thời điểm Tại thời điểm đầu tiên của sựthay đổi, B biết rằng trễ từ nút liền kề bên trái của nó tới A bằng không Lúc này B làm thayđổi bảng định tuyến để A là một hop đi sang bên trái Tất cả các bộ định tuyến khác vẫn đượcbiết là A đi xuống Tại thời điểm này, bảng định tuyến của A được biểu diễn ở dòng thứ haicủa hình Fig 5-10(a) Trong sự thay đổi tiếp theo, C biết rằng B có một đường đi có chiều dài
từ 1 đến A, vì vậy mà nó cập nhật bảng định tuyến của nó để chỉ ra một đường đi chiều dài 2,nhưng sau này D và E mới nhận được tin tức tốt Rõ rang, những tin tốt đang lan rộng theo tỉ
lệ hop thay đổi Trong một mạng đường đi dài nhất có chiều dài N hop, với N thay đổi mỗithay đổi sẽ tương ứng với đường dẫn và bộ định tuyến được cập nhật lại
Bây giờ chúng ta hãy xét hình Fig 5-10(b), trong đó tất cả các đường dẫn và bộ địnhtuyến đều được khởi tạo ở trạng thái ban đầu Bộ định tuyến B, C, D, và E có khoảng cáchtương ứng tới A là 1, 2, 3 và 4 hop Đột nhiên, hoặc là A đi xuống hoặc liên kết giữa A và Bbị đứt
Khi gói tin đầu tiên thay đổi, B không nhận được bất cứ thông tin gì về A May mắnthay là C nói “đừng lo lắng; tôi có một đường tới A có chiều dài 2.” B không một chút nghingờ đường đi của C chạy qua nó chính là B, C phải có mười đường dẫn với tất cả đường dẫn
Trang 21tới A có chiều dài 2 Kết quả là B nghĩ nó có thể đến được A qua C với chiều dài đường đi 3.
D và E không cập nhật trạng thái của chúng khi A thay đổi lần đầu tiên
Trong lần thay đổi thứ hai, C thông báo rằng mỗi nút liền kề của nó phải có một đường
đi tới A có chiều dài 3 Nó chọn một trong số các nút một cách ngẫu nhiên và làm cho nó cómột khoảng cách mới tới A là 4, như biểu diễn ở hàng thứ ba của hình Fig 5-10(b) thay đổitiếp theo xuất hiện trong phần còn lại của hình Fig 5-10(b)
Từ hình này, nó giải thích lý do rõ rang tại sao tin xấu lại đến chậm: không bao giờđịnh tuyến có giá trị lớn hơn giới hạn tối thiểu của các nút liền kề Dần dần, tất cả các bộ địnhtuyến làm việc theo cách của nó đến vô cùng, nhưng số lần thay đổi cần thiết phụ thuộc cácgiá trị số được sử dụng đến vô cùng Vì lý do này, nó thiết lập đến vô cùng cộng 1
Không hoàn toàn ngạc nhiên, vấn đề này được biết đến như là vấn đề đếm tới vôcùng(count-to-ìninity) Đã có nhiều cách để giải quyết vấn đề này,ví dụ ngăn chặn các bộ địnhtuyến quảng cáo đường đi tốt nhất trở lại nút liền kề được trình bày trong RFC 1058 Tuynhiên, không có công nghệ nào trong thực tế giải quyết tốt được vấn đề này Cốt lõi của vấn
đề là khi X nói với Y rằng nó có một đường đi nào đó, Y có cách nào biết được mặc dù bảnthân Y nằm trên đường đi đó
5.2.5 Định tuyến Trạng thái Liên kết(Link State Routing)
Định tuyến vector khoảng cách đã được sử dụng trong ARPANET cho đến năm 1979,thì nó được thay thế bằng định tuyến trạng thái liên kết Vấn đề chính khiến thuật toán địnhtuyến vector khoảng cách không được sử dụng nữa là thuật toán này thường mất rất nhiều thờigian để hội tụ sau khi cấu trúc hạ tầng(topology) thay đổi(do vấn đề đếm tới vô cùng) Do đó,
có đã được thay thế bằng một thuật toán hoàn toàn mới, được gọi là thuật toán định tuyếntrạng thái lien kết Các phiên bản của định tuyến trạng thái lien kết được gọi là IS-IS và OSPF
là các thuật toán định tuyến được sử dụng rộng rãi nhất trong các mạng lớn và mạng Internetngày nay
Ý tưởng đằng sau định tuyến trạng thái lien kết khá đơn giản và có thể được đưa ra làm
5 phần Mỗi bộ định tuyến phải làm những việc sau:
1 Tìm ra các nút liền kề và tìm các địa chỉ mạng của chúng
2 Thiết lập khoảng cách cho mỗi nút liền kề của nó
3 Cấu trúc một gói tin với tất cả thông tin vừa có được
4 Gửi gói tin này tới và nhận các gói tin từ tất cả các bộ định tuyến khác
5 Tính đường đi ngắn nhất cho mỗi bộ định tuyến
Trong thực tế, cấu trúc lien kết hoàn chỉnh được phân phối cho mỗi bộ định tuyến Sau đóthuật toán Dijktra có thể chạy tại mỗi bộ định tuyến để tìm ra đường đi ngắn nhất cho mỗi bộđịnh tuyến Dưới đây chúng ta xét chi tiết từng bước trong năm bước trên
Learning about the Neighbors - các nút liền kề
Khi một bộ định tuyến được khởi động, nhiệm vụ đầu tiên của nó là để tìm ra các nútliền kề Nó hoàn thành mục tiêu này bằng cách gửi một gói tin HELLO đặc biệt trên mỗi dòngđiểm tới điểm (point-to-point line) Bộ định tuyến ở điểm cuối sẽ được dự kiến sẽ gửi lại tên
Trang 22của mình cho nó Những tên này phải được chuẩn hóa bởi vì khi một bộ định tuyến ở xa đượcbáo rằng có tất cả ba bộ định tuyến cùng kết nối tới F, nó là yếu tố quan trọng để xác địnhxem liệu cả ba có giống F không.
Khi hai hay nhiều bộ định tuyến được kết nối bằng liên kết broadcast (ví dụ swich,ring, hay classic Ethernet), thì mạng sẽ phức tạp hơn một chút Hình Fig 5-11(a) cho thấy mộtbroadcast LAN mà ba bộ định tuyến A, C và F được kết nối trực tiếp Mỗi bộ định tuyến nàyđược kết nối với một hoặc nhiều bộ định tuyến khác, như trong hình
Broadcast LAN cung cấp kết nối giữa mỗi cặp bộ định tuyến đính kèm Tuy nhiên, mô hìnhmạng LAN như liên kết đa điểm-điểm (many point-to-point) làm tang kích thước của cấu trúclien kết(topology) và dẫn đến thừa thông tin Một cách tốt hơn cho mô hình mạng LAN là xét
nó như một nút, biểu diễn trên hình Fig.5-11(b) Ở đây, chúng ta giả sử tạo ra nút N kết nối A,
C và F Một bộ định tuyến được thiết kế trên mạng LAN được chọn để đóng vai trò của Ntrong các giao thức định tuyến Thực tế trên mạng LAN đường đi từ A tới C có thể được đạidiện bằng đường ANC
Setting Link Costs –thiết lập chi phí liên kết
Thuật toán định tuyến trạng thái liên kết yêu cầu mỗi có một khoảng cách để tìmđường đi ngắn nhất Các chi phí để tìm các nút liền kề có thể được thiết lập tự động, hoặc cấuhình bởi các nhà điều hành mạng Một cách phổ biến là làm cho chi phí tỉ lệ nghích với băngthông của liên kết Ví dụ, 1-Gbps Ethernet có thể chi phí là 1 và 100-Gbps Ethernet có chi phí
là 10 Điều này làm cho việc lựa chọn đường đi tốt hơn có hiệu quả cao hơn
Nếu mạng được mở rộng ra, trễ của đường dẫn có thể được tính đến vì vậy đường đi
mà ngắn hơn đường dẫn sẽ là sự lựa chọn tốt hơn Cách trực tiếp nhất để xác định trễ này làgửi qua một gói ECHO đặc biệt mà các nút khác yêu cầu gửi về ngay lập tức Bằng cách đothời gian đi và chia cho hai, bộ định tuyến gửi có thể nhận được một ước tính tương đối về độtrễ
Trang 23Một thông tin cần thiết cho sự thay đổi đã được cập nhật, bước tiếp theo cho mỗi bộđịnh tuyến là thiết lập một gói tin chứa tất cả dữ liệu Gói tin bắt đầu với định danh của góigửi, theo sau là một dãy số và độ tuổi(sẽ được giải thích sau) và danh sách các nút liền kề giácho mỗi nút liền kề cũng được cho sẵn ví dụ mạng được trình bày trong hình Fig 5-12(a) vớicác giá được biểu diễn như các nhãn trên các dòng Các gói dữ liệu trạng thái liên kết tươngứng với sáu bộ định tuyến trên hình Fig 5-12(b).
Việc thiết lập các gói tin trạng thái liên kết rất dễ dàng Phần cứng được xác định khithiết lập chúng Một khả năng có thể là để thiết lập chúng theo định kỳ đều đặn một khả năngkhác có thể là thiết lập chúng khi một số sự kiện quan trọng xảy ra, như một đường hoặc mộtnút liền kề đang đi xuống hoặc bị quay trở lại hoặc thay đổi thuộc tính của nó
Distributing the Link State Packets -phân phối các gói tin trạng thái liên kết
Phần khó khan nhất trong thuật toán là phân phối các gói tin trạng thái liên kết Tất cảcác bộ định tuyến phải nhận được tất cả các gói tin trạng thái liên kết nhanh nhất và đáng tincậy nếu các bộ định tuyến khác đang sử dụng các phiên bản khác của cấu trúc liên kết, thì cácbộ định tuyến mà chúng tính toán có thể có mâu thuẫn như xảy ra vòng lặp, máy không thểtruy cập, và các vấn đề khác
Đầu tiên, chúng ta sẽ mô tả các thuật toán phân phối cơ bản Sau đó chúng ta sẽ cungcấp một số cải tiến Ý tưởng cơ bản là sử dụng flooding để phân phối các gói tin trạng tháiliên kết đến tất cả các bộ định tuyến Để kiểm tra flooding, mỗi gói chứa một dãy số mà đượctang lên sau mỗi lần gửi gói tin mới Các bộ định tuyến theo dõi tất cả các cặp (bộ định tuyếnnguồn, trình tự) mà chúng gửi khi một gói tin trạng thái liên kết mới đến nó sẽ được kiểm trabằng cách đối chiếu với danh sách các gói đã đến trước nếu nó là gói mới thì nó sẽ đượcchuyển tiếp trên tất cả các đường ngoại trừ đường vừa gửi đến nếu nó là một bản sao thì nó sẽđược bỏ đi Nếu một gói với một dãy số nhỏ hơn gói tin có dãy số cao nhất thì nó sẽ bị từchối
Thuật toán này có một số vấn đề nhưng chúng ta có thể kiểm soát chúng Đầu tiên, nếudãy số tuần hoàn sẽ sinh ra vấn đề Giải pháp là sử dụng một chuỗi 32 bit Với một gói tin
Trang 24trạng thái liên kết trong một giây, nó sẽ tuần hoàn 137 năm vì vậy khả năng này có thể được
bỏ qua
Thứ hai, nếu một bộ định tuyến không bao giờ bị treo, nó sẽ mất số thứ tự của nó Nếu
nó bắt đầu lại từ 0 thì gói tiếp theo nó gửi sẽ bị từ chối như một bản sao
Thứ ba, nếu một dãy số bao giờ bị hỏng và 65, 540 nhận được thay vì 4(một bit lỗi), gói 5sẽ bị
từ chối, vì các số này bây giờ được thay bằng 65,540
Các giải pháp cho tất cả các vấn đề này bao gồm tuổi của mỗi gói tin sau khi giảm sốthứ tự của nó mỗi lần một giây Khi tuổi của nó giảm đến không, thông tin từ bộ định tuyến sẽđược bỏ đi Thông thường, một gói tin đến sau mỗi 10 giây thì các thông tin tìm ra cho việcđịnh tuyến chỉ khi bộ định tuyến đi xuống (hoặc là sau sự kiện có sáu gói tin liên tiếp bị mất).Các vấn đề về tuổi cũng được giảm đi bởi mỗi bộ định tuyến trong quá trình flooding ban đầu,
để đảm bảo không có gói tin nào bị mất và hoạt động trong một trong một khoảng thời giannhất định (một gói tin mà có tuổi bằng không sẽ bị bỏ đi)
Một số cải tiến cho thuật toán này làm cho nó có hiệu quả hơn Khi một gói tin trạngthái liên kết đến một bộ định tuyến bằng flooding, nó không được xếp hàng Thay vào đó, nóđược đặt trong một vùng chờ Nếu một gói tin trạng thái liên kết khác cũng có nguồn đếngiống nó trước khi gói tin đầu tiên được chuyển đi thì số thứ tự của nó sẽ được so sánh Nếuchúng bằng nhau thì các sự sao chép sẽ được bỏ đi Nếu chúng khác nhau gói cũ sẽ bị bỏ đi
Để trách các lỗi trên các liên kết, tất cả các gói tin trạng thái liên kết đều được chấp nhận
Cấu trúc dữ liệu được sử dụng ở bộ định tuyến B của mạng biểu diễn trong hình Fig 12(a) được mô tả trong hình Fig 5-13 Mỗi hàng tương ứng với một gói tin trạng thái liên kếtmới đến, nhưng vẫn chưa được xử lý xong Các bảng mà chứa gói tin gốc gồm số thứ tự, tuổi,
5-và dữ liệu Ngoài ra, có cờ để gửi cho ba liên kết của B (tới A, C, 5-và F tương ứng) cờ gửi cónghĩa là gói tin phải được gửi vào địa chỉ liên kết những cờ chấp nhận có nghĩa là nó phảiđược thừa nhận
Trong hình Fig 5-13, gói tin trạng thái liên kết đến trực tiếp từ A, vì vậy nó phải gửitới C và F và chấp nhận A như được chỉ ra bởi bit cờ tương tự, gói tin từ F được chuyển tiếptới A và C và chấp nhận F
Tuy nhiên, trạng thái với gói tin thứ ba từ E là khác nhau Nó đến hai lần, một lần quaEAB và một lần qua EFB Do đó, nó chỉ gửi đến C nhưng nó phải chấp nhận cả A và F như là
Trang 25Nếu một bản copy đến khi bản gốc vẫn còn trong bộ đệm, các bit phải được thay đổi.
ví dụ, nếu một bản copy của C đến từ F trước khi kí tự thứ tư trong bảng được chuyển tiếp,sáu bit sẽ được thay đổi thành 100011
Computing the New Routes- tính toán đường đi
Khi một bộ định tuyến đã nhận được một bộ đầy đủ các gói dữ liệu trạng thái liên kết,
nó có thể xây dựng toàn bộ mạng bởi vì tất cả các liên kết đã được biểu diễn Trên thực tế,mỗi liên kết được biểu diễn hai lần, một lần cho mỗi hướng Các hướng khác nhau có thể cógiá khác nhau Có thể tính toán đường đi ngắn nhất sau khi tìm các đường đi khác từ bộ địnhtuyến A tới B thay vì từ bộ định tuyến B đến A
Bây giờ thuật toán Dijktra có thể được chạy để xây dựng các con đường ngắn nhất cóthể tới đích Kết quả của thuật toán này cho các bộ định tuyến mà liên kết sử dụng để đếnđược đích Thông tin này được cài đặt trong bảng định tuyến, và hoạt động bình thường đượcnối lại
So với khoảng cách định tuyến vecto, định tuyến trạng thái liên kết đòi hỏi nhiều bộ nhớ vàtính toán Cho một mạng với n bộ định tuyến, mỗi bộ định tuyến có k nút liền kề, bộ nhớ cầnthiết để lưu trữ dữ liệu đầu vào tỷ lệ thuận với kn Ngoài ra một vấn đề với các mạng lớn làthời gian tính toán nhanh hơn kn, ngay cả với các cấu trúc dữ liệu hiệu quả nhất Tuy nhiêntrong nhiều tình huống thực tế, định tuyến trạng thái liên kết tốt hơn bởi vì nó không gặp phảicác vấn đề hội tụ chậm
Định tuyến trạng thái liên kết được sử dụng rộng rãi trong các mạng thực tế Nhiều ISP
sử dụng IS-IS(Intermediate System- Intermediate System) giao thức trạng thái liên kết (Oran1990) Nó được thiết kế cho một mạng lướn đầu gọi là DECnet, sau đó thông qua ISO để sửdụng với giao thức ISO và sau đó sử đổi để sử dụng với các giao thức khác nữa, đáng chú ýnhất là IP OSPF (Open Shortest Path First) chính là các giao thức trạng thái liên kết khác Nóđược thiết kế bởi IETF vài năm sau khi IS-IS và thông qua nhiều đổi mới được thiết kế choIS-IS Những đổi mới này gồm một phương pháp tự ổn định các cập nhật trạng thái liên kếtflooding, các bộ định tuyến được thiết kế trên mạng LAN, các phương pháp tính toán và phânchia con đường hỗ trợ nhiều số liệu Kết quả là có rất ít sự khác biệt giữa IS-IS và OSPF Một
sự khác biệt quan trọng là IS-IS có thể mang thông tin về nhiều giao thức lớp mạng tại cùngmột thời điểm (ví dụ IP,IPX, và Apple Talk) OSPF không có tính năng này và đó là mộtthuận lợi trong môi trường đa giao thức Chúng ta sẽ bàn tới OSPF trong phần Sec 5.6.6
Một nhận xét chung về các thuật toán định tuyến cũng theo thứ tự Trạng thái liên kết,vecto khoảng cách, và các thuật toán khác dựa trên xử lý tất cả các bộ định tuyến để tính toánđường đi Vấn đề với phần cứng hoặc phần mềm ở một số bộ định tuyến có thể bị phá hủytrên mạng Nếu một bộ định tuyến không chuyển tiếp các gói tin tuyeend đường này sẽ khônglàm việc đúng như mong đợi Nếu nó chạy ra khỏi bộ nhớ hoặc tính toán sai tuyến đường thì
sẽ có sự cố xảy ra Khi mạng phát triển lên đến phạm vi hàng chục, hàng tram, hoặc hàngngàn các nút thì xác xuất của một số bộ định tuyến giảm đi đáng kể mục đích là để hạn chếcác thiệt hại xảy ra không thể tránh khỏi Perlman (1988) trình bày chi tiết các vấn và giảipháp
Trang 265.2.6 Hierarchical Routing – định tuyến phân cấp
Khi các mạng phát triển về kích thước thì bảng định tuyến bộ định tuyến cũng pháttriển tương ứng tại một thời điểm nhất định, mạng có thể lên đến điểm mà nó không còn khảthi cho mỗi bộ định tuyến để có một mục nhập cho tất cả các bộ định tuyến khác, vì vậy việcđịnh tuyến sẽ phải được thực hiện theo thứ bậc, cũng như ở các mạng điện thoại
Khi định tuyến phân cấp được sử dụng, các bộ định tuyến được chia thành những vùng Mỗibộ định tuyến biết tất cả các chi tiết làm thế nào để định tuyến các gói tin tới các điểm đếntrong khu vực riêng của mình nhưng không biết gì về cấu trúc nội bộ của các khu vực khác.Khi các mạng khác nhau liên kết với nhau, tự nhiên coi như là một khu vực riêng biệt để giảiphóng các bộ định tuyến trong một mạng khỏi phải biết cấu trúc của những khu vực khác
Đối với các mạng lớn, một hệ thống phân cấp hai cấp có thể không đầy đủ; nó có thể làcần thiết để nhóm các vùng thành các cụm, các cụm thành các vùng, các khu thành các nhóm,
và như vậy, cho đến khi chúng ta chạy ra khỏi tên Ví dụ về một hệ thống phân cấp đa cấp,xem xét làm thế nào một gói tin có thể được chuyển từ Berkeley, California, tới Malindi,Kenya Các bộ định tuyến Berkeley sẽ biết topo chi tiết trong tiểu bang California nhưng sẽgửi tất cả lưu lượng truy cập out-of-state đến bộ định tuyến Los Angeles Các bộ định tuyếnLos Angeles sẽ có thể tuyến đường giao thông trực tiếp với các bộ định tuyến khác trong nướcnhưng sẽ gửi tất cả lưu lượng nước ngoài đến New York Các bộ định tuyến New York sẽđược lập trình để điều khiển tất cả các lưu lượng truy cập đến các bộ định tuyến trong nướcđến trách nhiệm xử lý lưu lượng nước ngoài, ở Nairobi Cuối cùng, các gói tin sẽ làm việctheo cách của mình xuống cây ở Kenya cho đến khi nó đã đến Malindi
Hình 5-14 cho một ví dụ về số lượng của định tuyến trong một hệ thống phân cấp hai cấp vớinăm khu vực Các bảng định tuyến đầy đủ cho bộ định tuyến 1A có 17 mục, như thể hiệntrong hình Fig 5-14 (b) Khi định tuyến được thực hiện theo thứ bậc, như trong hình Fig 5-14(c), có mục cho tất cả các bộ định tuyến địa phương, như trước đây, nhưng tất cả các khu vựckhác được hội tụ thành một bộ định tuyến duy nhất, vì vậy tất cả lưu lượng truy cập cho khuvực 2 đi qua các đường 1B-2A, nhưng phần còn lại của điều khiển từ xa giao thông đi qua cácđường 1C-3B Định tuyến phân cấp đã giảm bảng 17 mục thành 7 mục Là tỷ số giữa số khuvực về số lượng các thiết bị định tuyến cho mỗi khu vực phát triển, việc tiết kiệm không gianbảng tăng
Thật không may, những lợi ích trong không gian không được tự do Có một vấn đề làphải tăng chiều dài đường đi Ví dụ, con đường tốt nhất từ 1A 5C là thông qua khu vực 2,nhưng với định tuyến phân cấp tất cả các lưu lượng truy cập đến khu vực 5 đi qua khu vực 3,bởi vì đó là tốt cho hầu hết các điểm đến trong khu vực 5
Trang 27Khi một mạng duy nhất trở nên rất lớn, một câu hỏi thú vị là '' có bao nhiêu cấp trên hệthống phân cấp? '' Ví dụ, hãy xem xét một mạng lưới với 720 bộ định tuyến Nếu không có hệthống phân cấp, mỗi bộ định tuyến cần 720 mục trê bảng định tuyến Nếu mạng được chiathành 24 khu vực mỗi khu vực có 30 bộ định tuyến, mỗi bộ định tuyến cần 30 mục địaphương cộng với 23 mục từ xa cho tổng số 53 mục Nếu một hệ thống phân cấp ba cấp đượclựa chọn, với 8 cụm từng chứa 9 khu vực của 10 bộ định tuyến, mỗi bộ định tuyến cần 10 mụccho các bộ định tuyến địa phương, 8 mục cho tuyến đến các khu vực khác trong nhóm riêngcủa nó, và 7 mục cho các cụm từ xa, cho một tổng số 25 mục Kamoun và Kleinrock (1979)phát hiện ra rằng số lượng tối ưu của các cấp cho một mạng định tuyến N là ln N, đòi hỏi phải
có một tổng số e mục ln N mỗi bộ định tuyến Họ cũng đã chỉ ra rằng sự gia tăng chiều dàiđường trung bình gây ra bởi định tuyến phân cấp là đủ nhỏ mà nó thường là chấp nhận được
5.2.7 Broadcast Routing-Định tuyến đa điểm
Trong một số ứng dụng, các hot cần phải gửi tin nhắn cho nhiều hoặc tất cả các máychủ khác Ví dụ, một dịch vụ phân phối báo cáo thời tiết, cập nhật thị trường chứng khoán,hoặc các chương trình phát thanh trực tiếp có thể làm việc tốt nhất bằng cách gửi cho tất cảcác máy và để cho những người quan tâm đọc dữ liệu Gửi một gói tin đến tất cả các điểm
Trang 28đồng thời được gọi là phát thanh truyền hình Nhiều phương pháp đã được đề xuất để làm việcđó.
Một phương pháp phát sóng mà không đòi hỏi các tính năng đặc biệt từ mạng là chocác nguồn chỉ đơn giản là gửi một gói riêng biệt cho mỗi điểm đến Không chỉ là phươngpháp gây lãng phí băng thông và chậm, nhưng nó cũng đòi hỏi các nguồn để có một danh sáchđầy đủ của tất cả các điểm đến Phương pháp này là không mong muốn trong thực tế, mặc dù
nó được áp dụng rộng rãi
Một cải tiến là định tuyến đa điểm, trong đó mỗi gói hoặc chứa một danh sách các địađiểm hoặc một bản đồ bit chỉ những mong muốn Khi một gói tin đến một bộ định tuyến, bộđịnh tuyến sẽ kiểm tra tất cả các điểm đến để xác định tập các dòng đầu ra sẽ là cần thiết.(Một dòng đầu ra là cần thiết nếu đó là con đường tốt nhất để ít nhất một trong những điểmđến.) Các bộ định tuyến tạo ra một bản sao mới của gói tin cho mỗi dòng đầu ra Trong thực
tế, các đích được phân giữa các dòng đầu ra Sau khi đủ số lượng hop, mỗi gói sẽ chỉ mangmột điểm đến như một gói tin bình thường Điểm đến đa tuyến là sử dụng một cách riêng biệtgói dữ liệu, trừ khi một số gói tin phải đi theo cùng con đường, một trong số chúng phải trảgiá và các phần còn lại đi miễn phí Do đó, băng thông mạng được sử dụng hiệu quả hơn Tuynhiên, kế hoạch này vẫn đòi hỏi các nguồn để biết tất cả các điểm đến, cộng với nó là càngnhiều việc làm cho một bộ định tuyến để xác định nơi để gửi một gói tin đa đích như đối vớinhiều gói khác nhau
Chúng ta đã nhìn thấy một kỹ thuật định tuyến phát sóng tốt hơn: flooding Khi thựchiện với một số thứ tự cho mỗi nguồn, flooding sử dụng liên kết có hiệu quả với một quy tắcquyết định tại bộ định tuyến là tương đối đơn giản Mặc dù flooding phù hợp cho giao tiếppoint-to-point bình thường, nó xem xét giá nghiêm túc để phát sóng Tuy nhiên, nó chỉ ra rằngchúng ta có thể làm tốt hơn nữa khi các tuyến đường ngắn nhất cho các gói tin thông thường
ưu tiên đến các nguồn, các gói tin bị loại bỏ có khả năng như là một bản sao
Trang 29Một ví dụ của con đường chuyển tiếp ngược lại biểu diễn trong hình Fig.5-15 Phần (a)biểu diễn một mạng, phần (b) biểu diễn một cây sink cho bộ định tuyến I của mạng đó, vàphần (c) cho thấy cách hoạt động của thuật toán tìm đường ngược lại Trên hop đầu tiên, I gửicác gói tới F, H, J, và N như được chỉ ra ở hàng thứ hai của cây Mỗi gói này đến trên đường
đi tới I ( đường đi dọc trên cây sink) Trên hop thứ hai, tám gói tin được tạo ra, trên mỗi bộđịnh tuyến có hai gói được nhận từ hop đầu tiên Khi nó out ra, tất cả tám gói này đến thiết bịđịnh tuyến, và năm gói trong số đó đi dọc theo đường đi Trong sáu gói được tạo ra ở bướcthứ ba, chỉ có ba gói đến trên đường ưu tiên (C, E, và K); những gói khác là bản sao Sau khinăm hop và 24 gói kết thúc phát, so với bốn hop và 14 gói có trên cây sink được xác địnhchính xác
Ưu điểm chính của con đường chuyển tiếp ngược lại là nó rất hiệu quả, nhưng vẫn dễthực hiện Nó sẽ gửi một gói tin broadcast trên mỗi liên kết chỉ một lần trong mỗi hướng,giống như flooding, nhưng nó chỉ đòi hỏi rằng các bộ định tuyến biết làm thế nào để đạt đượctất cả các điểm đến, mà không cần phải nhớ số thứ tự (hoặc sử dụng các cơ chế khác để ngănchặn flooding) hoặc danh sách tất cả các điểm đến trong các gói tin
Thuật toán broadcast cuối cùng của chúng tôi cải tiến dựa trên hành vi của đường chuyển tiếpngược lại Nó làm cho sử dụng cây sink hoặc bất kỳ cây khác tiện lợi cho bộ định tuyến khởitạo boadcast Một cây bao trùm là một tập hợp con của các mạng bao gồm tất cả các bộ địnhtuyến nhưng không chứa các vòng Cây sink được kéo dài Nếu mỗi bộ định tuyến biết đượccác tuyến của nó thuộc về các cây mở rộng, nó có thể sao chép một gói tin broadcast đến trêntất cả các dòng cây bao trùm trừ gói đến nó Phương pháp này sử dụng băng thông hiệu quả,tạo ra số lượng tối thiểu tuyệt đối của các gói dữ liệu cần thiết để thực hiện công việc
Trong hình 5-15, ví dụ, khi cây sink trong phần (b) được sử dụng như là cây bao trùm,các gói tin broadcast được gửi cùng với 14 gói tối thiểu Vấn đề duy nhất là mỗi bộ định tuyếnphải có thông tin về một số cây bao trùm cho các phương pháp được áp dụng Đôi khi nhữngthông tin này có sẵn (ví dụ, với định tuyến trạng thái liên kết, tất cả các bộ định tuyến biết cáccấu trúc liên kết hoàn chỉnh, do đó, chúng có thể tính toán một cây bao trùm) nhưng đôi khi
nó không phải là có sẵn (ví dụ, với định tuyến khoảng cách vecto)
Trang 305.2.8 Multicast Routing
Một số ứng dụng, chẳng hạn như một trò chơi multiplayer hoặc video trực tiếp của một
sự kiện thể thao trực tiếp đến nhiều địa điểm xem, gửi gói tin đến nhiều người nhận Trừ khinhóm này là rất nhỏ, gửi một gói riêng biệt cho từng máy thu là đắt Mặt khác, phát sóng mộtgói tin là lãng phí của nhóm, ví dụ, 1000 máy trên một mạng triệu-nút, do đó hầu hết các máythu không quan tâm đến các tin nhắn (hoặc tệ hơn nữa, chúng chắc chắn có quan tâm nhưngkhông có nghĩa là phải xem nó) Như vậy, chúng ta cần một cách để gửi tin nhắn cho nhómxác định rằng có số lượng lớn so với kích thước nhưng nhỏ so với các mạng toàn thể
Gửi một tin nhắn đến một nhóm như vậy được gọi là multicasting, và các thuật toánđịnh tuyến sử dụng được gọi là định tuyến multicast Tất cả các chương trình multicasting yêucầu một số cách để tạo ra và hủy các nhóm và để xác định các bộ định tuyến đều là thành viêncủa một nhóm Làm thế nào những công việc này được thực hiện mà không phải quan tâmđến các thuật toán định tuyến Còn bây giờ, chúng ta sẽ giả định rằng mỗi nhóm được xácđịnh bởi một địa chỉ multicast và các bộ định tuyến biết các nhóm mà chúng thuộc về Chúng
ta sẽ xem xét lại thành viên nhóm khi chúng ta mô tả các lớp mạng của Internet trong Sec 5.6
Đề án định tuyến multicast xây dựng cho các dự án định tuyến broadcast, chúng ta đãnghiên cứu, gửi các gói tin cùng cây spanning để cung cấp các gói tin đến các thành viên củanhóm trong khi làm cho băng thông sử dụng hiệu quả Tuy nhiên, các cây mở rộng tốt nhất để
sử dụng phụ thuộc vào việc nhóm là rất dày đặc, nhận được rải rác trên hầu hết các hệ thốngmạng, hoặc thưa thớt, với nhiều mạng không thuộc vào nhóm Trong phần này chúng ta sẽxem xét cả hai trường hợp
Nếu nhóm dày đặc, boadcast là một khởi đầu tốt đẹp bởi vì nó có hiệu quả trong gửicác gói tin đến tất cả các bộ phận của mạng Nhưng boadcast sẽ đạt được một số bộ địnhtuyến mà không phải là thành viên của nhóm, đó là lãng phí Các giải pháp được tìm ra bởiDeering và Cheriton (1990) là boadcast tỉa cây bằng cách loại bỏ các liên kết không dẫn đếncác thành viên Kết quả là một cây mở rộng multicast hiệu quả
Ví dụ, hãy xem xét hai nhóm, 1 và 2, trong các mạng được biểu diễn trong hình Fig 5-16 (a).Một số bộ định tuyến được gắn vào máy mà thuộc về một hoặc cả hai của các nhóm này, nhưđược chỉ ra trong hình Một cây bao trùm cho các bộ định tuyến ngoài cùng bên trái sẽ đượchiển thị trong hình Fig 5 16 (b) Cây này có thể được sử dụng để phát sóng nhưng là quá mứccần thiết cho multicast, như có thể được nhìn thấy từ hai phiên bản tỉa được hiển thị bên cạnh.Trong hình Fig 5-16 (c), tất cả các liên kết mà không dẫn đến máy chủ mà là thành viên củanhóm 1 đã được gỡ bỏ Kết quả là cây bao trùm multicast cho các bộ định tuyến ngoài cùngbên trái để gửi vào nhóm 1 Các gói tin được chuyển tiếp chỉ dọc theo cây bao trùm này, đó làhiệu quả hơn so với các cây phát sóng vì có 7 liên kết thay vì 10 Hình Fig 5-16 (d) cho thấycác cây bao trùm multicast sau khi cắt tỉa cho nhóm 2 Đó là hiệu quả , chỉ với năm liên kếtthời gian này Nó cũng cho thấy rằng các nhóm multicast khác nhau có cây spanning khácnhau
Có thể có các cách khác để tỉa cây bao trùm Đơn giản nhất có thể được sử dụng nếuđịnh tuyến trạng thái liên kết được sử dụng và mỗi bộ định tuyến là nhận thức của các cấu trúcliên kết hoàn chỉnh, bao gồm host thuộc các nhóm Mỗi bộ định tuyến sau đó có thể xây dựng
Trang 31gửi như bình thường và sau đó loại bỏ tất cả các liên kết mà không kết nối các thành viênnhóm để các nút chìm MOSPF (Multicast OSPF) là một ví dụ về một giao thức liên kết nhómhoạt động theo cách này (Moy, 1994).
Với định tuyến vecto khoảng cách, các thuật toán cơ bản là con đường chuyển tiếpngược lại Tuy nhiên, bất cứ khi nào một bộ định tuyến không có host quan tâm tới một nhóm
cụ thể và không kết nối tới các bộ định tuyến khác nhận được một tin nhắn multicast chonhóm đó, nó đáp ứng với một thông điệp PRUNE Khi một bộ định tuyến không có thành viêntrong nhóm trong số các host riêng của mình đã nhận được tin nhắn như vậy trên tất cả cácdòng mà nó sẽ gửi multicast, nó cũng có thể đáp ứng với một thông điệp Prune Bằng cáchnày, các cây bao trùm là đệ quy tỉa DVMRP (Distance Vector Multicast Routing Protocol) làmột ví dụ về một giao thức định tuyến multicast mà làm việc theo cách này (Waitzman et al,1988.)
Kết quả tỉa cây bao trùm hiệu quả mà chỉ sử dụng các liên kết được thực sự cần thiết để đạtđược các thành viên của nhóm Một điểm bất lợi là rất nhiều công việc cho các bộ định tuyến,đặc biệt là cho các mạng lớn Giả sử rằng một mạng có n nhóm , với trung bình m nút Tạimỗi bộ định tuyến và cho mỗi nhóm, đang tỉa cây khung phải được lưu trữ, với tổng số cây
mn Ví dụ, hình Fig 5-16 (c) cung cấp cho các cây bao trùm cho các bộ định tuyến ngoài cùngbên trái để gửi vào nhóm 1 Các cây bao trùm cho các bộ định tuyến ngoài cùng bên phải đểgửi vào nhóm 1 (không hiển thị) sẽ trông khá khác nhau, như các gói tin sẽ đi trực tiếp chocác thành viên nhóm khác hơn qua phía bên trái của đồ thị Điều này có nghĩa rằng các bộđịnh tuyến phải gửi gói tin đến nhóm 1 theo các hướng khác nhau tùy thuộc vào nút được gửiđến nhóm Khi nhiều nhóm lớn với nhiều người gửi tồn tại, lưu trữ là cần thiết để lưu trữ tất
cả các cây
Trang 32Một thiết kế thay thế sử dụng cốt lõi dựa trên cây để tính toán cây spanning duy nhấtcho nhóm (Ballardie et al., 1993) Tất cả các bộ định tuyến đồng ý trên một gốc (gọi là cốt lõihoặc điểm hẹn) và xây dựng cây bằng cách gửi một gói tin từ mỗi thành viên vào gốc Cây làcông bằng của các con đường truy tìm bằng các gói tin Và Fig 5-17 (a) cho thấy cốt lõi dựatrên một cây cho nhóm 1 Để gửi đến nhóm này, một người gửi sẽ gửi một gói tin đến gốc.Khi các gói tin đến gốc, nó được chuyển tiếp xuống cây Điều này được thể hiện trong hìnhFig 5-17 (b) cho người gửi về phía bên phải của mạng Như một tối ưu hóa hiệu suất, các góitin cho nhóm không cần phải tiếp cận gốc trước khi chúng multicast Ngay sau khi một gói tinđến các thân cây, nó có thể được chuyển tiếp lên phía gốc, cũng như xuống tất cả các chinhánh khác Đây là trường hợp cho người gửi ở trên cùng của hình 5-17 (b).
Trang 33Có một cây được chia sẻ là không tối ưu cho tất cả các nguồn Ví dụ, trong hình Fig 5
17 (b), các gói dữ liệu từ người gửi ở phía bên phải các thành viên nhóm trên bên phải thôngqua các gốc trong ba hop, thay vì trực tiếp Hiệu quả phụ thuộc vào nơi mà gốc và người gửiđược đặt, nhưng thường nó là hợp lý khi gốc là ở giữa những người gửi Khi chỉ có một ngườigửi đơn, như trong một video được xem trực tiếp cho một nhóm, sử dụng người gửi là gốc làtối ưu
Cũng cần lưu ý là cây được chia sẻ có thể là một khoản tiết kiệm lớn trong chi phí lưutrữ, thư đã gửi, và tính toán Mỗi bộ định tuyến có thể giữ một cây cho mỗi nhóm, thay vì mcây Hơn nữa, các bộ định tuyến mà không phải là một phần của cây và tất cả không làm việc
để hỗ trợ nhóm Vì lý do này, phương pháp tiếp cận cây chia sẻ như dựa trên cây gốc được sửdụng cho các nhóm multicast thưa thớt trong Internet như một phần của các giao thức phổbiến như PIM (Protocol Independent Multicast) (Fenner et al., 2006)
5.2.9 Anycast Routing
Cho đến nay, chúng ta đã cung cấp mô hình, trong đó một nguồn gửi đến một địa điểmduy nhất (gọi là unicast), để tất cả các điểm (gọi là chương trình phát sóng), và một nhóm cácđiểm đến (gọi là multicast) Một mô hình phân phối, được gọi là anycast đôi khi cũng hữu ích.Trong anycast, một gói tin được gửi đến các thành viên gần nhất của một nhóm (Partridge etal., 1993) Schemes mà tìm những con đường được gọi là định tuyến anycast
Tại sao chúng ta muốn anycast? Đôi khi các nút cung cấp một dịch vụ, chẳng hạn nhưthời gian trong ngày hoặc phân phối nội dung mà nó là nhận được những thông tin chính xáctất cả những vấn đề, không phải là nút đó được liên lạc; nút bất kỳ sẽ làm Ví dụ, anycast được
sử dụng trên Internet như là một phần của DNS, như chúng ta sẽ thấy trong Chap 7
May mắn thay, chúng ta sẽ không phải đưa ra các chương trình định tuyến mới choanycast vì vector khoảng cách thường xuyên và định tuyến trạng thái liên kết có thể sản xuấtcác tuyến anycast Giả sử chúng ta muốn Anycast cho các thành viên của nhóm 1 Chúng sẽđược cung cấp các địa chỉ '' 1 '', thay vì địa chỉ khác nhau Định tuyến vecto khoảng cách sẽ
Trang 34phân phối các vector như bình thường, và các nút sẽ chọn con đường ngắn nhất đến đích 1.Điều này sẽ dẫn đến các nút gửi đến khu vực gần địa điểm 1 Các tuyến đường được thể hiệntrong hình Fig 5-18 (a) Thủ thuật này làm việc bởi vì các giao thức định tuyến không nhận rarằng có rất nhiều trường hợp của điểm 1 Đó là, chúng tin rằng tất cả các trường hợp của nút 1
là nút tương tự như trong cấu trúc liên kết được hiển thị trong hình Fig 5-18 (b)
Thủ thuật này làm việc tốt cho định tuyến trạng thái liên kết, mặc dù có sự cân nhắcthêm rằng các giao thức định tuyến không phải tìm con đường ngắn đi qua nút 1 Điều này sẽdẫn đến việc nhảy qua không gian, kể từ trường hợp của nút 1 là ở các bộ phận khác nhau củamạng Tuy nhiên, các giao trạng thái liên kết đã làm cho sự khác biệt này giữa các bộ địnhtuyến và máy chủ Chúng tôi đã giải quyết được thực tế này trước đó vì nó không cần thiếtcho cuộc thảo luận của chúng ta
5.2.10 Routing for Mobile Hosts
Hàng triệu người sử dụng máy tính trong khi di chuyển, từ tình huống thực sự di độngvới các thiết bị không dây trong xe chuyển động, các tình huống du mục trong đó máy tínhxách tay được sử dụng trong một loạt các địa điểm khác nhau Chúng ta sẽ sử dụng các thiếtbị di động, phân biệt từ các máy văn phòng phẩm mà không bao giờ di chuyển Càng ngày,người ta muốn duy trì kết nối bất cứ nơi nào trên thế giới mà họ có thể, dễ dàng như thể họđang ở nhà Những thiết bị di động giới thiệu một biến chứng mới: để định tuyến một gói tinđến một host điện thoại di động, mạng đầu tiên đã tìm thấy nó
Các mô hình của thế giới mà chúng ta sẽ xem xét là một trường hợp trong đó tất cả cácmáy được cho là có một vị trí cố định không bao giờ thay đổi Mỗi máy chủ có địa chỉ nhà ởthường trú có thể được sử dụng để xác định vị trí nhà của mình, tương tự như cách các số điệnthoại 1-212-5551212 chỉ Hoa Kỳ (mã quốc gia 1) và Manhattan (212) Mục đích định tuyếntrong hệ thống với các máy điện thoại di động là để làm cho nó có thể để gửi gói tin đến thiếtbị di động sử dụng địa chỉ nhà cố định và có hiệu quả các gói tiếp cận họ bất cứ nơi nào chúng
có thể Mục đích, tất nhiên, là để tìm thấy chúng
Trang 35Một số cuộc thảo luận về mô hình này theo thứ tự Một mô hình khác sẽ được tính toánlại tuyến đường như di chuyển host điện thoại di động và thay đổi các cấu trúc liên kết Sau đóchúng ta có thể chỉ cần sử dụng các chương trình định tuyến được mô tả trước đó trong phầnnày Tuy nhiên, với một số lượng ngày càng tăng của các máy điện thoại di động, mô hìnhnày sẽ sớm dẫn đến toàn bộ mạng ngừng tính toán các tuyến đường mới Sử dụng địa chỉ nhàlàm giảm đáng kể gánh nặng này.
Một lựa chọn khác sẽ được cung cấp tính di động trên tầng mạng, đó là những gìthường xảy ra với máy tính xách tay hiện nay Khi chúng đang di chuyển đến các địa điểmInternet mới, máy tính xách tay có được các địa chỉ mạng mới Không có mối liên hệ giữa cácđịa chỉ cũ và mới; mạng không biết rằng họ thuộc về cùng một máy tính xách tay Trong môhình này, một máy tính xách tay có thể được sử dụng để duyệt Web, nhưng các máy kháckhông thể gửi gói tin đến nó (ví dụ, đối với một cuộc gọi đến), mà không xây dựng một dịch
vụ vị trí lớp cao hơn, ví dụ, đăng nhập vào Skype lại sau khi di chuyển Hơn nữa, các kết nốikhông thể được duy trì trong khi các host đang di chuyển; kết nối mới phải được bắt đầu lênthay thế Tầng mạng di động là hữu ích để sửa chữa những vấn đề này
Ý tưởng cơ bản được sử dụng để định tuyến di động trên mạng Internet và mạng diđộng cho các host di động để nói với một host tại các vị trí nhà nó đang ở đâu Host này, hoạtđộng thay mặt cho các host điện thoại di động, được gọi là các đại lý nhà Một khi nó biết nơicác host di động hiện đang nằm, nó có thể chuyển tiếp các gói tin đến đó
Hình 5-19 cho thấy định tuyến di động động Một người gửi ở thành phố phía tây bắccủa Seattle muốn gửi một gói tin đến một host bình thường đặt trên khắp Hoa Kỳ tại NewYork Các trường hợp quan tâm đến chúng ta là khi máy điện thoại di động không có ở nhà.Thay vào đó, tạm thời nó ở San Diego
Các host di động tại San Diego phải có một địa chỉ mạng của địa phương trước khi nó
có thể sử dụng mạng Điều này xảy ra theo cách thông thường mà host có được các địa chỉ
Trang 36mạng; chúng ta sẽ giới thiệu cách làm việc này cho Internet sau trong chương này Các địa chỉđịa phương được gọi là care của địa chỉ Một khi các host điện thoại di động có địa chỉ này, nó
có thể cho đại lý nhà biết nó đang ở đâu Nó làm điều này bằng cách gửi tin nhắn đăng ký đếncác đại lý nhà (bước 1) Thông điệp này được thể hiện với một đường đứt trong hình Fig 5-19chỉ ra rằng nó là một tin nhắn kiểm soát, không phải là một tin nhắn dữ liệu
Tiếp theo, người gửi sẽ gửi một gói dữ liệu đến các host di động sử dụng địa chỉthường trú của mình (bước 2) Gói này được định tuyến bởi các mạng vị trí nhà của host vì đó
là nơi thuộc các địa chỉ nhà Tại New York, các đại lý nhà chặn gói tin này bởi vì các hostđiện thoại di động xa nhà Sau đó nó kết thúc tốt đẹp hay sẽ gói với một tiêu đề mới và gửigói này đến care của địa chỉ (bước 3) Cơ chế này được gọi là đường hầm Nó rất quan trọngtrong Internet vì vậy chúng ta sẽ xem xét nó một cách chi tiết hơn sau này
Khi các gói tin được đóng gói đến tại địa chỉ care, các host di động unwraps nó và lấycác gói tin từ người gửi Các host điện thoại di động sau đó gửi gói tin trả lời trực tiếp chongười gửi (bước 4) Các tuyến đường tổng thể được gọi là tam giác định tuyến vì nó có thể làvòng quanh nếu các vị trí từ xa là xa từ vị trí nhà Là một phần của bước 4, người gửi có thểtìm hiểu các dịch vụ chăm sóc hiện tại của địa chỉ Các gói tiếp theo có thể được chuyển trựctiếp đến các host di động bằng đường hầm (bước 5), bỏ qua các vị trí nhà Nếu kết nối bị mấtcho bất kỳ lý do như di chuyển điện thoại di động, địa chỉ nhà luôn luôn có thể được sử dụng
để tiếp cận với điện thoại di động
Một khía cạnh quan trọng mà chúng ta đã bỏ qua từ mô tả này là an ninh Nói chung,khi một host hoặc bộ định tuyến nhận được một thông điệp dưới dạng '' Bắt đầu ngay bây giờ,xin vui lòng gửi tất cả mail của Stephany của tôi, '' nó có thể có một vài câu hỏi về người mà
nó đang nói chuyện và xem đây là một ý tưởng tốt Bảo mật thông tin được bao gồm trong cáctin nhắn để hạn chế có hiệu lực có thể được kiểm tra với các giao thức mã hoá chúng ta sẽnghiên cứu trong Chap 8
Có rất nhiều biến thể về định tuyến di động Đề án trên được mô phỏng trên IPv6 diđộng, các hình thức di động được sử dụng trong mạng Internet (Johnson, 2004 et al.) Và hưmột phần của các mạng di động dựa trên nền IP như UMTS Chúng ta đã giả sử người gửi làmột nút văn phòng phẩm cho đơn giản, nhưng những thiết kế cho cả các nút được thiết kế chothiết bị di động Ngoài ra, host có thể là một phần của một mạng di động Phần mở rộng củachương trình cơ bản hỗ trợ mạng lưới điện thoại di động không có công việc trên một phầncủa host (Devarapalli et al., 2005)
Một số chương trình sử dụng một đại lý ngoại (tức là, từ xa), tương tự như các đại lýnhà, nhưng ở vị trí ngoài, hoặc tương tự đến VLR (Visitor Location Register) trong các mạng
di động Tuy nhiên, trong các chương trình gần đây, các đại lý ngoài là không cần thiết; thiếtbị di động được làm đại lý ngoài của mình Trong cả hai trường hợp, thông tin về vị trí tạmthời của các host điện thoại di động được giới hạn trong một số máy cụ thể (ví dụ như điệnthoại di động, đại lý nhà, và người gửi) để nhiều bộ định tuyến trong một mạng rộng lớnkhông cần phải tính toán lại tuyến Để biết thêm thông tin về định tuyến di động, xem Perkins(1998, 2002) và Snoeren và Balakrishnan (2000)
5.2.11 Routing in Ad Hoc Networks
Trang 37Chúng ta đã thấy cách định tuyến khi các host di động nhưng các bộ định tuyến được
cố định Một trường hợp thậm chí còn cực đoan hơn là một trong đó các bộ định tuyến chính
là di động Ví dụ như là nhân viên cấp cứu tại một địa điểm động đất, xe quân sự trên chiếntrường, một đội tàu trên biển, hoặc một tập hợp của những người có máy tính xách tay trongmột khu vực thiếu 802.11
Trong tất cả những trường hợp này, và những trường hợp khác, mỗi nút giao khôngdây và hoạt động như cả một host và một bộ định tuyến Mạng của các nút đó chỉ xảy ra đượcgần nhau được gọi là các mạng ad hoc hoặc MANETs (Mobile Ad hoc Networks) Bây giờchúng ta xem xét chúng trong một thời gian ngắn Thông tin chi tiết có thể được tìm thấytrong Perkins (2001)
Điều gì làm cho các mạng ad hoc khác nhau từ các mạng không dây mà các cấu trúcliên kết được đột nhiên out ra ngoài Các nút có thể đến và đi hoặc xuất hiện ở những địađiểm mới của một bit Với một mạng có dây, nếu một bộ định tuyến có một đường dẫn hợp lệđến một số địa điểm Với một mạng ad hoc, các cấu trúc liên kết có thể được thay đổi tất cảcác thời gian, vì vậy tiềm năng và thậm chí cả tính hợp lệ của các đường dẫn có thể thay đổimột cách tự nhiên mà không cần cảnh báo Không cần phải nói, những trường hợp này làmcho việc định tuyến trong các mạng ad hoc nhiều thách thức hơn trong việc định tuyến cốđịnh
Nhiều, rất nhiều các thuật toán định tuyến cho các mạng ad hoc đã được đề xuất Tuynhiên, kể từ khi các mạng ad hoc ít được sử dụng trong thực tế so với các mạng di động, nó làkhông rõ ràng mà các giao thức này là hữu ích nhất Ví dụ, chúng ta sẽ xem xét một trongnhững thuật toán định tuyến phổ biến nhất, AODV (Ad hoc On-demand Distance Vector)(Perkins và Royer, 1999) Nó tương tự như các thuật toán định tuyến vecto khoảng cách đượcchuyển đến làm việc trong một môi trường di động, trong đó các nút thường có giới hạn băngthông và tuổi thọ pin Bây giờ chúng ta xem làm thế nào nó phát hiện ra và duy trì các tuyếnđường
Route Discovery- phát hiện đường đi
Trong AODV, điểm đến được phát hiện theo yêu cầu, có nghĩa là, chỉ khi một ai đómuốn gửi một gói tin đến đích đó Điều này tiết kiệm được nhiều công việc mà nếu không sẽlãng phí khi thay đổi cấu trúc liên kết trước khi tuyến đường được sử dụng Lúc nào, các cấutrúc liên kết của một mạng ad hoc có thể được mô tả bằng một đồ thị của các nút kết nối Hainút được kết nối (ví dụ, có một vòng cung giữa chúng trong đồ thị) nếu họ có thể giao tiếptrực tiếp sử dụng radio của họ Một mô hình cơ bản nhưng đầy đủ đó là đủ cho mục đích củachúng ta là mỗi nút có thể giao tiếp với tất cả các nút khác nằm trong vòng tròn bao phủ củamình Mạng thực phức tạp hơn, với các tòa nhà, những ngọn đồi và những trở ngại khác màchặn thông tin liên lạc, và các nút mà A được kết nối với B nhưng B không được kết nối với
A vì A có một phát mạnh mẽ hơn B Tuy nhiên, để đơn giản, chúng ta sẽ tiếp nhận tất cả cáckết nối là đối xứng
Để mô tả các thuật toán, xem xét các mạng mới được thành lập ad hoc của hình Fig
5-20 Giả sử rằng một quá trình tại nút A muốn gửi một gói tin đến nút IN Các thuật toánAODV duy trì một bảng vector khoảng cách tại mỗi nút, keyed theo địa điểm, cung cấp thông
Trang 38tin về địa điểm đó, kể cả những nút liền kề mà để gửi các gói tin đến đích Đầu tiên, A sẽ tìmtrong bảng của mình và không tìm thấy một mục nhập cho I Bây giờ nó đã có thể khám phámột con đường để tìm giá của I.
Để xác định vị trí I, A xây dựng một gói ROUTE REQUEST và chương trình phátsóng bằng cách sử dụng flooding, như được mô tả trong Sec 5.2.3 truyền từ A đến B và D,như minh họa trong hình Fig 5-20 (a) Mỗi nút phát sóng theo yêu cầu, trong đó tiếp tục đạtcác nút F, G và C trong hình Fig 5-20 (c) và các nút H, E, và I trong hình Fig 5-20 (d) Một
số thứ tự thiết lập tại nguồn được sử dụng để loại bỏ bản sao trong flooding Ví dụ, D sẽ loại
bỏ lan truyền từ B trong hình Fig 5-20 (c) bởi vì nó đã được chuyển tiếp các yêu cầu
Cuối cùng, yêu cầu đạt đến nút I, xây dựng một gói ROUTE REPLY Gói này làunicast cho người gửi cùng đảo ngược của các con đường tiếp theo yêu cầu Để làm việc này,mỗi nút trung gian phải nhớ các nút mà nó gửi các yêu cầu Các mũi tên trong hình Fig 5-20(b) - (d) hiển thị các thông tin đường bay ngược được lưu trữ Mỗi nút trung gian cũng giatăng một số hop là nó sẽ chuyển các phản hồi Điều này nói với các nút như thế nào nó đíchđến Các câu trả lời cho mỗi nút trung gian mà nút liền kề sử dụng để đạt đến đích: các nút đógửi cho họ những phản hồi Các nút trung gian G và D đưa các tuyến đường tốt nhất màchúng biết được vào bảng định tuyến của chúng khi chúng xử lý các phản hồi Khi phản hồiđến A, một con đường mới, ADGI, đã được tạo ra
Trong một mạng rộng lớn, các thuật toán tạo ra nhiều chương trình phát sóng, ngay cảđối với các đích đến gần Để giảm chi phí, phạm vi của chương trình phát sóng được giới hạn
sử dụng Time gói Lĩnh vực này được khởi tạo bởi người gửi và được làm giảm trên mỗi hop.Nếu nó về 0, gói tin bị loại bỏ thay vì được phát sóng Sau đó quá trình tìm tuyến đường đượcsửa đổi như sau Để xác định vị trí một điểm đến, người gửi broadcast YÊU CẦU ĐƯỜNGvới Thời gian để sống là 1 Nếu không có phản hồi trở lại trong một thời gian hợp lý, một sốkhác được gửi đi, lần này với Thời gian để sống thiết lập 2 Nỗ lực tiếp theo sử dụng 3, 4, 5,
Trang 39vv Bằng cách này, việc tìm kiếm đầu tiên được thử tại địa phương, sau đó trong vòng ngàycàng rộng hơn.
Route Maintenance
Bởi vì các nút có thể di chuyển hoặc bị tắt, cấu trúc liên kết có thể thay đổi một cách tựnhiên Ví dụ, trong hình Fig 5-20, nếu G là tắt, A sẽ không nhận ra rằng con đường nó đãđược sử dụng để đến I (ADGI) là không còn giá trị Các thuật toán cần có để có thể đối phóvới điều này Định kỳ, mỗi nút phát đi một thông điệp Hello Nếu không có phản hồi sắp tới,các đài truyền hình đều biết rằng nút liền kề đó đã di chuyển ra khỏi phạm vi hoặc thất bại vàkhông còn được kết nối với nó Tương tự như vậy, nếu nó cố gắng để gửi một gói tin đến mộtnút liền kề mà không phản hồi, nó biết rằng nút liền kề không còn nữa
Thông tin này được sử dụng để hủy các tuyến đường mà không còn làm việc Đối vớimỗi điểm có thể, mỗi nút, N, theo dõi các hoạt động của các nút liền kề Khi bất kỳ nút liền kềnào của N không thể truy cập, nó sẽ kiểm tra bảng định tuyến của nó để xem những địa điểm
có các tuyến đường bằng cách sử dụng nút liền kề đã bị hủy Đối với mỗi tuyến đường, nhữngnút liền kề đang hoạt động được thông báo rằng con đường của họ thông qua N bây giờ khônghợp lệ và phải được xóa khỏi bảng định tuyến của chúng Trong ví dụ của chúng ta, D xóamục của nó cho G và I từ bảng định tuyến của nó và thông báo cho A, mà chuyển cho I.Trong trường hợp chung, đệ quy, cho đến khi tất cả các tuyến đường phụ thuộc trên nút bâygiờ ra đi được lọc từ tất cả các bảng định tuyến
Ở bước này, các tuyến đường không hợp lệ đã bị xóa khỏi mạng, và người gửi có thể tìm mới,các tuyến đường hợp lệ bằng cách sử dụng các cơ chế phát hiện ra như chúng ta đã mô tả Tuynhiên, có một biến cố vấn đề khi khoảng cách các giao thức vector có thể bị hội tụ chậm hoặcđếm đến vô cực sau khi một sự thay đổi cấu trúc liên kết, các tuyến đường không hợp lệ vớimới, các tuyến đường hợp lệ
Để đảm bảo hội tụ nhanh chóng, các tuyến đường bao gồm một dãy số đó được điềukhiển bởi đích đến Các số thứ tự là điểm đến như một đồng hồ logic Mỗi khi có các điểmđến nó sẽ gửi một ROUTE REPLY mới Người gửi yêu cầu cho một tuyến đường mới bằngcách bao gồm trong YÊU CẦU ĐƯỜNG số thứ tự điểm đến của các tuyến đường cuối cùngchúng đã sử dụng, mà một trong hai sẽ là số thứ tự của các tuyến đường vừa được lọc, hoặc 0
là giá trị ban đầu Các yêu cầu sẽ được phát sóng cho đến khi một con đường với một số thứ
tự cao hơn được tìm thấy Các nút trung gian lưu trữ các tuyến đường mà có một số thứ tự caohơn, hoặc những hop ít nhất cho số thứ tự hiện nay
Trong yêu cầu của một giao thức, các nút trung gian duy nhất lưu trữ các tuyến đườngđang được sử dụng Thông tin đường bay khác đã học trong chương trình phát sóng được hẹngiờ sau một thời gian chờ ngắn Tìm và lưu trữ các tuyến đường được sử dụng giúp tiết kiệmbăng thông và thời lượng pin so với một giao thức vector khoảng cách tiêu chuẩn mà theođịnh kỳ chương trình phát sóng được cập nhật
Cho đến nay, chúng ta đã xem xét chỉ một tuyến đường duy nhất, từ A đến I Để tiếtkiệm thêm nguồn lực, con đường tìm và bảo dưỡng được chia sẻ khi tuyến đường chồng chéolên nhau Ví dụ, nếu B cũng muốn gửi gói tin đến I, nó sẽ thực hiện phát hiện bộ định tuyến.Tuy nhiên, trong trường hợp này, yêu cầu đầu tiên sẽ đến D, mà đã có một con đường đến I
Trang 40Nút D sau đó có thể tạo ra một câu trả lời để nói với B theo tuyến đường mà không yêu cầubất kỳ công việc bổ sung nào.
Có rất nhiều quảng cáo hoc chương trình định tuyến khác Một chương trình nổi tiếng
về đề án cầu DSR (Nguồn Dynamic Routing) (Johnson et al., 2001) Một chiến lược khácnhau dựa trên địa lý được khám phá bởi GPSR (Greedy Perimeter Stateless Routing) (Karp vàKung, 2000) Nếu tất cả các nút biết vị trí địa lý của chúng, chuyển tiếp đến một địa điểm cóthể tiến hành mà không có đường tính toán đơn giản bằng cách đi theo hướng bên phải vàlượn vòng lại để thoát khỏi bất kỳ ngõ cụt Các giao thức giành chiến thắng sẽ phụ thuộc vàoloại mạng ad hoc chứng minh hữu ích trong thực tế
5.3 CÁC THUẬT TOÁN ĐIỀU KHIỂN TẮC NGHẼN
Khi có quá nhiều gói tin trong mạng một mạng con có thể khiến các gói tin bị trễ ,mất ,làm giảm hiệu suất quả trình truyền tin,tình trạng này được gọi là tắc nghẽn
“congestion”.Lớp mạng cũng như lớp vận chuyển cũng đã đưa ra các biện pháp điều khiểntắc nghẽn Khi trong một mạng con xảy ra tắc nghẽn ,lớp mạng phải trực tiếp trải qua tắcnghẽn và phải xác định trực tiếp việc gì phải làm đối với những gói tin bị thừa Tuy nhiêncách hiệu quả nhất để điều khiển tắc nghẽn là giảm lượng tải trên lớp vận chuyển Điều nàyđòi hỏi lớp mạng cũng như lớp vận chuyển phải hoặt đồng đồng thời Trong chương này tanghiên cứu tắc nghẽn xảy ra trong lớp mạng ,chương 6 sẽ đề cập đến khía cạnh tắc nghẽn ởlớp vận chuyển
Hình 5-21 mô tả thời điểm xảy ra tắc nghẽn khi các gói tin được gửi vào mạng vớidung lượng nhất định ,trong đó số gói tin được phân phối sẽ tỉ lệ với số gói tin gửi đi Tuynhiên khi mật độ lưu lượng tăng quá cao sẽ lấp đầy bộ đệm bên trong bộ định tuyến làm một
số gói tin bị mất Các gói tin bị mất tiêu thụ một khối dung lượng ,nên một số gói tin chuyểnđến bị rớt xuống khỏi đường cong lý tưởng