Bài giảng môn Mạng máy tính - Chương 4: Lớp Network

pdf 128 trang ngocly 890
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Mạng máy tính - Chương 4: Lớp Network", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mon_mang_may_tinh_chuong_4_lop_network.pdf

Nội dung text: Bài giảng môn Mạng máy tính - Chương 4: Lớp Network

  1. Chương 4 Lớp Network Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004. Slide này được biên dịch sang tiếng Việt theo sự cho phép của các tác giả All material copyright 1996-2006 J.F Kurose and K.W. Ross, All Rights Reserved Lớp Network 1
  2. Chương 4: Lớp Network Mục tiêu: ˆ hiểu các nguyên lý nền tảng của các dịch vụ lớp network:  các mô hình dịch vụ lớp network  forwarding và routing  một router làm việc như thế nào  routing (chọn đường)  xử lý với scale  các đề tài nâng cao: IPv6, mobility ˆ hiện thực trong Internet Lớp Network 2
  3. Chương 4: Nội dung trình bày ˆ 4. 1 Giới thiệu ˆ 4.5 các giải thuật ˆ 4.2 Virtual circuit và Routing datagram networks  Link state ˆ 4.3 Bên trong một  Distance Vector router?  Hierarchical routing ˆ 4.6 Routing trong ˆ 4.4 IP: Internet Protocol Internet  RIP  dạng thức Datagram  OSPF  địa chỉ IPv4  BGP  ICMP  IPv6 ˆ 4.7 Broadcast và multicast routing Lớp Network 3
  4. 4. 1 Giới thiệu Lớp Network 4
  5. lớp Network ˆ chuyển các đoạn từ host gửi đến host nhận application transport network ˆ bên gửi sẽ đóng gói các data link network physical network data link network đoạn vào trong các data link physical data link physical physical datagram network data link physical network ˆ bên nhận sẽ chuyển các data link đoạn cho lớp transport physical network network data link ˆ các giao thức lớp data link physical physical network trong mọi host, network data link application physical transport router network data link ˆ Router sẽ xem xét các physical trường header trong tất cả các IP datagram đã được chuyển cho nó Lớp Network 5
  6. 2 chức năng chính ˆ forwarding: di chuyển tương tự: các gói từ đầu vào đến đầu ra thích hợp của ˆ routing: tiến trình lập router kế hoạch chuyến đi từ nguồn đến đích ˆ routing: xác định đường đi cho các gói ˆ forwarding: tiến trình từ nguồn đến đích vận chuyển qua 1 giao điểm  các giải thuật routing Lớp Network 6
  7. Tác động qua lại giữa routing & forwarding giải thuật routing bảng forwarding cục bộ giá trị header đường ra 0100 3 0101 2 0111 2 1001 1 giá trị đang đến trong header của gói 0111 1 3 2 Lớp Network 7
  8. Thiết lập kết nối ˆ chức năng quan trọng thứ 3 của một số kiến trúc mạng:  ATM, frame relay, X.25 ˆ trước khi các datagram chuyển đi, 2 host và các router trung gian thiết lập kết nối ảo  các router cũng liên quan ˆ dịch vụ kết nối lớp network với lớp transport:  network: giữa 2 host (có thể cũng chứa các router trung gian trong trường hợp kết nối ảo)  transport: giữa 2 tiến trình Lớp Network 8
  9. mô hình dịch vụ Network Hỏi: Mô hình dịch vụ là gì (cho kênh truyền các datagram từ bên gửi đến bên nhận)? Ví dụ các dịch vụ cho các Ví dụ các dịch vụ cho 1 datagram riêng biệt: luồng các datagram: ˆ giao nhận bảo đảm ˆ giao nhận datagram ứ ự ˆ giao nhận bảo đảm với theo th t độ trễ < 40 ms ˆ bảo đảm băng thông tối thiểu cho luồng ˆ hạn chế các thay đổi trong khoảng trống giữa các gói Lớp Network 9
  10. mô hình dịch vụ Network Bảo đảm? kiến trúc Mô hình phản hồi Network dịch vụ Băngthông Mất Thứ Định tắc nghẽn mát tự thì Internet best effort không không không không không (phát hiện thông qua mất mát) ATM CBR tốc độ có có có không không đổi tắc nghẽn ATM VBR tốc độ có có có không có bảo đảm tắc nghẽn ATM ABR bảo đảm không có không có tối thiểu ATM UBR không không có không không Lớp Network 10
  11. 4.2 Các mạng virtual circuit và datagram Lớp Network 11
  12. Kết nối lớp network và dịch vụ không kết nối ˆ datagram network cung cấp dịch vụ không kết nối lớp network ˆ kết nối ảo cung cấp dịch vụ kết nối lớp network ˆ tương tự với các dịch vụ lớp transport, nhưng:  dịch vụ: host-to-host  không lựa chọn: network chỉ cung cấp 1 dịch vụ  hiện thực: bên trong phần lõi của network Lớp Network 12
  13. các mạch ảo “cách xử lý đường từ nguồn đến đích phải tương tự với mạch điện thoại”  hiệu quả ˆ thiết lập cuộc gọi, chia nhỏ mỗi cuộc gọi trước khi dữ liệu có thể truyền ˆ mỗi gói mang nhân dạng kết nối ảo (không phải là địa chỉ đích) ˆ mọi router trên đường từ nguồn đến đích giữ nguyên “trạng thái” qua mỗi kết nối ˆ kết nối, các tài nguyên router (băng thông, bộ đệm) có thể được cấp phát cho kết nối ảo (các tài nguyên dành riêng = dịch vụ có thể dự đoán trước) Lớp Network 13
  14. hiện thực kết nối ảo một kết nối ảo bao gồm: 1. đường từ nguồn đến đích 2. các số hiệu kết nối ảo, mỗi số dành cho mỗi kết nối dọc theo đường 3. các điểm đăng ký vào các bảng forwarding trong router dọc theo đường ˆ gói thuộc về kết nối ảo mang số hiệu (không là địa chỉ đích) ˆ số hiệu kết nối ảo có thể thay đổi trên mỗi kết nối  số hiệu mới được cấp từ bảng forwarding Lớp Network 14
  15. Bảng Forwarding số hiệu 12 22 32 1 3 2 bảng Forwarding trong số hiệu ế router góc tây-bắc: giao ti p giao tiếp vào số hiệu kết nối vào giao tiếp ra số hiệu kết nối ra 1 12 3 22 2 63 1 18 3 7 2 17 1 97 3 87 Các Router giữ nguyên thông tin trạng thái kết nối! Lớp Network 15
  16. các mạch ảo: các giao thức gửi tín hiệu ˆ dùng để thiết lập, duy trì kết nối ảo ˆ dùng trong ATM, frame-relay, X.25 ˆ không dùng trong Internet ngày nay application 6. nhận dữ liệu application transport 5. bắt đầu dòng dữ liệu transport network 4. cuộc gọi đã kết nối 3. chấp nhận cuộc gọi network data link 1. khởi tạo cuộc gọi 2. cuộc gọi đến data link physical physical Lớp Network 16
  17. các mạng Datagram ˆ không thiết lập cuộc gọi tại lớp network ˆ các router: không có trạng thái về các kết nối end- to-end  không có khái niệm mức network của “kết nối” ˆ vận chuyển các gói dùng địa chỉ host đích  các gói giữa cùng cặp nguồn-đích có thể có các đường đi khác nhau application application transport transport network 1. gửi dữ liệu 2. nhận dữ liệu network data link data link physical physical Lớp Network 17
  18. 4 tỷ điểm bảng Forwarding đăng nhập có thể Vùng địa chỉ đích Giao tiếp kết nối 11001000 00010111 00010000 00000000 đến 0 11001000 00010111 00010111 11111111 11001000 00010111 00011000 00000000 đến 1 11001000 00010111 00011000 11111111 11001000 00010111 00011001 00000000 đến 2 11001000 00010111 00011111 11111111 khác 3 Lớp Network 18
  19. So trùng prefix dài nhất So trùng prefix Link Interface 11001000 00010111 00010 0 11001000 00010111 00011000 1 11001000 00010111 00011 2 ngược lại3 Các ví dụ: DA: 11001000 00010111 00010110 10100001 Chọn interface nào? DA: 11001000 00010111 00011000 10101010 Chọn interface nào? Lớp Network 19
  20. Datagram hoặc network: tại sao? Internet (datagram) ATM (kết nối ảo) ˆ dữ liệu trao đổi giữa các máy ˆ phát triển từ hệ thống điện tính thoại  dịch vụ “mềm dẻo”, không ˆ đàm thoại của con người: định thì chặt chẽ  định thì chặt chẽ, yêu ˆ các hệ thống đầu cuối “thông cầu độ tin cậy minh” (các máy tính)  cần thiết cho các dịch vụ  có thể thích ứng, điều bảo đảm khiển và sửa lỗi ˆ các hệ thống đầu cuối “ít  “bên trong” mạng đơn giản, thông minh” “bên ngoài” phức tạp  điện thoại ˆ nhiều kiểu kết nối  “bên trong” mạng phức  các đặc tính khác nhau tạp  đồng nhất dịch vụ khó khăn Lớp Network 20
  21. 4.3 Router Lớp Network 21
  22. Tổng quan kiến trúc Router 2 chức năng chính: ˆ chạy các giao thức/giải thuật routing (RIP, OSPF, BGP) ˆ đẩy các datagram từ kết nối vào đến kết nối ra Lớp Network 22
  23. Các chức năng cổng vào lớp Physical: tiếp nhận mức bit lớp Data link: switch không tập trung: ví dụ: Ethernet ˆ với đích của datagram biết trước, tìm xem chương 5 cổng ra dùng bảng forwarding trong bộ nhớ cổng vào ˆ mục tiêu: hoàn tất xử lý cổng vào dựa trên “tốc độ dòng” ˆ sắp hàng: nếu datagrams đến nhanh hơn tốc độ forwarding bên trong switch fabric Lớp Network 23
  24. 3 kiểu switching fabrics Lớp Network 24
  25. Switching thông qua bộ nhớ Các router thế hệ thứ nhất: ˆcác máy tính cổ điển với switch dưới sự điều khiển trực tiếp của CPU ˆgói được sao chép vào trong bộ nhớ hệ thống ˆtốc độ giới hạn bởi băng thông bộ nhớ cổng bộ nhớ cổng vào ra Bus hệ thống Lớp Network 25
  26. Switch thông qua 1 Bus ˆ datagram từ bộ nhớ cổng vào đến bộ nhớ cổng ra thông qua một bus chia sẻ ˆ tranh chấp bus: tốc độ switch giới hạn bởi băng thông của bus ˆ 1 Gbps bus, Cisco 1900: tốc độ đủ cho truy xuất các router Lớp Network 26
  27. Switch thông qua 1 mạng kết nối nội bộ ˆ vượt qua các giới hạn của băng thông bus ˆ các mạng kết nối nội bộ khác lúc đầu được dùng để kết nối các bộ xử lý trong thiết bị có nhiều bộ xử lý ˆ thiết kế nâng cao: phân mảnh datagram vào các ô độ dài cố định, chuyển các ô thông qua fabric. ˆ Cisco 12000: chuyển với tốc độ hàng Gbps thông qua kết nối nội bộ Lớp Network 27
  28. Các cổng ra ˆ Đệm được yêu cầu khi các datagram đến từ fabric nhanh hơn tốc độ truyền ˆ Scheduling discipline chọn giữa những datagram đã sắp hàng để truyền Lớp Network 28
  29. Sắp hàng tại cổng ra ˆ đệm khi tốc độ đến thông qua switch vượt quá tốc độ dòng ra ˆ sắp hàng (trễ) và mất mát bởi vì bộ đệm tại cổng ra bị tràn! Lớp Network 29
  30. Sắp hàng tại cổng vào ˆ Fabric chậm hơn sự phối hợp tại các cổng vào -> sắp hàng xảy ra tại các hàng vào ˆ Tắc nghẽn Head-of-the-Line (HOL): datagram đã sắp hàng phía trước của hàng ngăn cản các datagram khác di chuyển lên trước ˆ sắp hàng (trễ) và mất mát bởi vì bộ đệm tại cổng vào bị tràn! Lớp Network 30
  31. 4.4 IP - Internet Protocol Lớp Network 31
  32. Lớp Internet Network Các chức năng: lớp Transport: TCP, UDP ứ các giao thức Routing giao th c IP ướ ị ị ỉ •chọn đường •các quy c đ nh đ a ch ạ ứ •RIP, OSPF, BGP •d ng th c datagram lớp •các quy ước quản lý gói Network forwarding giao thức ICMP table •thông báo lỗi •router “signaling” lớp Link lớp physical Lớp Network 32
  33. dạng thức IP datagram ố ệ ả s hi u phiên b n 32 bits giao thức IP tổng độ dài độ dài header head. type of datagram (bytes ver length (bytes) len service dành cho việc “kiểu” của dữ liệu fragment 16-bit identifier flgs phân mảnh/ offset tổng hợp số hop còn lại time to upper header tối đa live layer checksum (giảm xuống tại 32 bit địa chỉ IP nguồn mỗi router) 32 bit địa chỉ IP đích giao thức lớp trên tùy chọn (nếu có) ví dụ: trường timestamp bao nhiêu overhead dữ liệu ghi nhận đường đi, với TCP? (độ dài thay đổi, danh sách các ˆ 20 bytes của TCP tùy theo đoạn TCP router hoặc UDP) để đi đến ˆ 20 bytes của IP ˆ = 40 bytes + overhead lớp app Lớp Network 33
  34. Phân mảnh & tổng hợp IP ˆ các kết nối mạng có MTU (max.transfer size) - frame mức kết nối lớn nhất có thể.  các kiểu liên kết khác nhau, phân mảnh: các MTU khác nhau vào: 1 datagram lớn ˆ các datagram lớn được chia ra: 3 datagram nhỏ hơn (phân mảnh) bên trong mạng  1 datagram thành một vài datagram tổng hợp  “tổng hợp” tại đích cuối cùng  các bit của IP header xác định, thứ tự liên quan các mảnh Lớp Network 34
  35. Phân mảnh & tổng hợp IP length ID fragflag offset Ví dụ =4000 =x =0 =0 ˆ 4000 byte 1 datagram lớn thành một vài datagram nhỏ hơn datagram ˆ MTU = 1500 bytes length ID fragflag offset =1500 =x =1 =0 1480 bytes trong trường dữ liệu length ID fragflag offset =1500 =x =1 =185 offset = 1480/8 length ID fragflag offset =1040 =x =0 =370 Lớp Network 35
  36. Định địa chỉ IP: giới thiệu ˆ địa chỉ IP: 32-bit nhận 223.1.1.1 dạng cho host, router 223.1.2.1 223.1.1.2 interface 223.1.1.4 223.1.2.9 ˆ ế ố ữ interface: k t n i gi a 223.1.2.2 host/router và kết nối 223.1.1.3 223.1.3.27 vật lý  router thường có nhiều interface 223.1.3.1 223.1.3.2  host thường có 1 interface  mỗi địa chỉ IP liên kết với mỗi interface 223.1.1.1 = 11011111 00000001 00000001 00000001 223 111 Lớp Network 36
  37. Các Subnet (mạng con) ˆ địa chỉ IP: 223.1.1.1  phần subnet (các bit có 223.1.2.1 223.1.1.2 trọng số cao) 223.1.1.4 223.1.2.9  phần host (các bit có trọng số thấp) 223.1.2.2 223.1.1.3 223.1.3.27 ˆ subnet là gì? subnet  các interface thiết bị có phần subnet của địa 223.1.3.1 223.1.3.2 chỉ IP giống nhau  có thể tìm thấy nhau không cần sự can thiệp của router mạng gồm 3 subnets Lớp Network 37
  38. 223.1.1.0/24 Subnets 223.1.2.0/24 phương pháp ˆ Để xác định subnet, tách mỗi interface từ host hoặc router của nó, tạo vùng các mạng độc lập. Mỗi vùng mạng độc lập được gọi là một subnet. 223.1.3.0/24 Subnet mask: /24 Lớp Network 38
  39. Subnets 223.1.1.2 Bao nhiêu? 223.1.1.1 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 Lớp Network 39
  40. Định địa chỉ IP: CIDR CIDR: Classless InterDomain Routing  phần subnet của địa chỉ có độ dài bất kỳ  dạng thức địa chỉ: a.b.c.d/x, trong đóx làsố bit trong phần subnet của địa chỉ phần phần subnet host 11001000 00010111 00010000 00000000 200.23.16.0/23 Lớp Network 40
  41. các địa chỉ IP: làm sao lấy một? Hỏi: Làm sao host lấy được địa chỉ IP? ˆ mã hóa cứng do người quản trị hệ thống trong 1 file  Wintel: control-panel->network->configuration- >tcp/ip->properties  UNIX: /etc/rc.config ˆ DHCP: Dynamic Host Configuration Protocol: tự động lấy địa chỉ từ server  “plug-and-play” (xem chương kế tiếp để biết rõ hơn) Lớp Network 41
  42. các địa chỉ IP: làm sao lấy một? Hỏi: Làm sao mạng lấy được phần subnet của địa chỉ IP? Đáp: lấy phần đã cấp phát của không gian địa chỉ IP do ISP cung cấp khối của ISP 11001000 00010111 00010000 00000000 200.23.16.0/20 Tổ chức 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Tổ chức 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Tổ chức 2 11001000 00010111 00010100 00000000 200.23.20.0/23 . . Tổ chức 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Lớp Network 42
  43. Định địa chỉ phân cấp: route tích hợp cho phép thông báo hiệu quả thông tin routing: Tổ chức 0 200.23.16.0/23 Tổ chức 1 “gửi cho tôi bất cứ thứ gì 200.23.18.0/23 với các địa chỉ bắt đầu Tổ chức 2 200.23.16.0/20” . Fly-By-Night-ISP 200.23.20.0/23 . . . . Internet Tổ chức 7 . 200.23.30.0/23 “gửi cho tôi bất cứ thứ gì ISPs-R-Us với các địa chỉ bắt đầu 199.31.0.0/16” Lớp Network 43
  44. Định địa chỉ phân cấp: nhiều cách route xác định ISPs-R-Us có nhiều cách route đến Tổ chức 1 Tổ chức 0 200.23.16.0/23 “gửi cho tôi bất cứ thứ gì với các địa chỉ bắt đầu Tổ chức 2 200.23.16.0/20” . Fly-By-Night-ISP 200.23.20.0/23 . . . . Internet Tổ chức 7 . 200.23.30.0/23 “gửi cho tôi bất cứ thứ gì ISPs-R-Us với các địa chỉ bắt đầu Tổ chức 1 199.31.0.0/16 hoặc 200.23.18.0/23” 200.23.18.0/23 Lớp Network 44
  45. Định địa chỉ IP: Hỏi: Làm sao một ISP lấy được khối địa chỉ? Đáp: ICANN: Internet Corporation for Assigned Names and Numbers  cấp phát các địa chỉ  quản lý DNS  gán các tên miền, giải quyết tranh chấp Lớp Network 45
  46. NAT: Network Address Translation phần còn lại của mạng cục bộ Internet (vd: mạng gia đình) 10.0.0/24 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 Tất cả datagram đi ra khỏi mạng cục các Datagram với nguồn hoặc đích bộ có cùng một địa chỉ IP NAT là: trong mạng này có địa chỉ 10.0.0/24 138.76.29.7, với các số hiệu cổng nguồn khác nhau Lớp Network 46
  47. NAT: Network Address Translation ˆ Mạng cục bộ chỉ dùng 1 địa chỉ IP đối với bên ngoài:  không cần thiết dùng 1 vùng địa chỉ từ ISP: chỉ cần 1 cho tất cả các thiết bị  có thể thay đổi địa chỉ các thiết bị trong mạng cục bộ mà không cần thông báo với bên ngoài  có thể thay đổi ISP mà không cần thay đổi địa chỉ các thiết bị trong mạng cục bộ  các thiết bị trong mạng cục bộ không nhìn thấy, không định địa chỉ rõ ràng từ bên ngoài (tăng cường bảo mật) Lớp Network 47
  48. NAT: Network Address Translation Hiện thực: NAT router phải:  các datagram đi ra: thay thế (địa chỉ IP và số hiệu cổng nguồn) mọi datagram đi ra bên ngoài bằng (địa chỉ NAT IP và số hiệu cổng nguồn mới) . . . các clients/servers ở xa sẽ dùng (địa chỉ NAT IP và số hiệu cổng nguồn mới) đó như địa chỉ đích  ghi nhớ (trong bảng chuyển đổi NAT) mọi cặp chuyển đổi (địa chỉ IP và số hiệu cổng nguồn) sang (địa chỉ NAT IP và số hiệu cổng nguồn mới)  các datagram đi đến: thay thế (địa chỉ NAT IP và số hiệu cổng nguồn mới) trong các trường đích của mọi datagram đến với giá trị tương ứng (địa chỉ IP và số hiệu cổng nguồn) trong bảng NAT Lớp Network 48
  49. NAT: Network Address Translation bảng chuyển đổi NAT 1: host 10.0.0.1 2: NAT router ị ỉ ị ỉ đ a ch phía WAN đ a ch phía LAN ử ế thay đổi địa chỉ từ g i datagram đ n 138.76.29.7, 5001 10.0.0.1, 3345 10.0.0.1, 3345 -> 128.119.40.186, 80 138.76.29.7, 5001, ậ ậ ả c p nh t b ng S: 10.0.0.1, 3345 D: 128.119.40.186, 80 10.0.0.1 1 S: 138.76.29.7, 5001 2 D: 128.119.40.186, 80 10.0.0.4 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 128.119.40.186, 80 3 D: 138.76.29.7, 5001 4: NAT router 10.0.0.3 ả ồ ế ị ỉ 3: ph n h i đ n đ a ch : thay đổi địa chỉ datagram đích 138.76.29.7, 5001 đích từ 138.76.29.7, 5001 -> 10.0.0.1, 3345 Lớp Network 49
  50. NAT: Network Address Translation ˆ trường số hiệu cổng 16-bit:  60,000 kết nối đồng thời chỉ với một địa chỉ phía LAN ˆ NAT còn có thể gây ra tranh luận:  các router chỉ xử lý đến lớp 3  vi phạm thỏa thuận end-to-end •những người thiết kếứng dụng phải tính đến khả năng NAT, vd: ứng dụng P2P  sự thiếu thốn địa chỉ IP sẽ được giải quyết khi dùng IPv6 Lớp Network 50
  51. ICMP: Internet Control Message Protocol ˆ được các host & router dùng để truyền thông thông kiểu mã mô tả tin lớp network 0 0 echo reply (ping) 3 0 dest. network unreachable  Thông báo lỗi: host, 3 1 dest host unreachable network, port, giao thức 3 2 dest protocol unreachable không có thực 3 3 dest port unreachable  phản hồi request/reply 3 6 dest network unknown (dùng bởi lệnh ping) 3 7 dest host unknown ˆ lớp network “trên” IP: 4 0 source quench (congestion  các thông điệp ICMP control - not used) chứa trong các IP 8 0 echo request (ping) datagram 9 0 route advertisement 10 0 router discovery ˆ ệ ể thông đi p ICMP: ki u, mã 11 0 TTL expired ớ ầ thêm v i 8 byte đ u tiên 12 0 bad IP header của IP datagram gây ra lỗi Lớp Network 51
  52. Traceroute & ICMP ˆ nguồn gửi một chuỗi các ˆ Khi thông điệp ICMP đến, đoạn UDP đến đích nguồn tính toán RTT  đầu tiên có TTL =1 ˆ Traceroute thực hiện công  thứ hai có TTL=2, tương việc này 3 lần tự. tiêu chuẩn dừng  không giống số port ˆ đoạn UDP đến lần lượt tại ˆ khi datagram thứ n đến host đích router n: ˆ đích trả về gói ICMP “host  Router hủy datagram không có thực” (kiểu 3, m㠁 và gửi đến nguồn một ICMP 3) message (kiểu 11, mã 0) ˆ Khi nguồn có ICMP này ->  thông điệp chứa tên của địa dừng. chỉ router& IP Lớp Network 52
  53. IPv6 ˆ động lực thúc đẩy ban đầu: không gian địa chỉ 32-bit sớm được cấp phát cạn kiệt. ˆ động lực bổ sung:  dạng thức header giúp tăng tốc xử lý/forwarding  header thay đổi tạo điều kiện thuận lợi cho QoS dạng thức IPv6 datagram:  40 byte header, độ dài cố định  không cho phép phân mảnh Lớp Network 53
  54. IPv6 Header (tt) độ ưu tiên: xác định độ ưu tiên của các datagram trong luồng nhãn luồng: xác định các datagram trong cùng “luồng” (khái niệm “luồng” không được rõ ràng). header kế tiếp: xác định giao thức lớp trên cho dữ liệu Lớp Network 54
  55. Những thay đổi khác nữa so với IPv4 ˆ Checksum: bỏ hết, nhằm giảm thời gian xử lý tại hop ˆ Options: cho phép, nhưng nằm ngoài header, chỉ thị bởi trường “Next Header” ˆ ICMPv6: phiên bản mới của ICMP  các kiểu thông điệp bổ sung, vd “Packet Too Big”  các chức năng quản lý nhóm multicast Lớp Network 55
  56. Chuyển từ IPv4 sang IPv6 ˆ không phải tất cả router đều có thể nâng cấp đồng thời  mạng có các router dùng cả IPv4 và IPv6 hoạt động thế nào? Lớp Network 56
  57. Tunneling A B E F cách nhìn logic: tunnel IPv6 IPv6 IPv6 IPv6 A B E F cách nhìn thực: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Lớp Network 57
  58. Tunneling A B E F cách nhìn logic: tunnel IPv6 IPv6 IPv6 IPv6 A B C D E F cách nhìn thực: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Flow: X Src:B Src:B Flow: X Src: A Dest: E Dest: E Src: A Dest: F Dest: F Flow: X Flow: X Src: A Src: A data Dest: F Dest: F data data data A-to-B: E-to-F: B-to-C: B-to-C: IPv6 IPv6 IPv6 inside IPv6 inside IPv4 IPv4 Lớp Network 58
  59. 4.5 Các giải thuật Routing Lớp Network 59
  60. Tác động lẫn nhau giữa routing, forwarding giải thuật routing bảng forwarding cục bộ giá trịheader l.kết ra 0100 3 0101 2 0111 2 1001 1 giá trị trong header của gói đến 0111 1 3 2 Lớp Network 60
  61. Mô hình đồ thị 5 v 3 w 2 5 u 2 1 3 z 1 x y 2 đồ thị: G = (N,E) 1 N = tập các routers = { u, v, w, x, y, z } E = tập các kết nối ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } Ghi chú: Mô hình đồ thị cũng dùng được trong những ngữ cảnh khác Ví dụ: P2P, trong đóN làtập các điểm và E là tập các kết nối TCP Lớp Network 61
  62. Mô hình đồ thị: các chi phí 5 • c(x,x’) = chi phí kết nối (x,x’) v 3 w 2 5 -vídụ: c(w,z) = 5 u 2 1 3 z •chi phí có thể luôn luôn là 1, hoặc 1 ngược lại liên quan đến băng thông, x y 2 1 hay liên quan đến tắc nghẽn chi phí của đường (x1, x2, x3, , xp) = c(x1,x2) + c(x2,x3) + + c(xp-1,xp) Hỏi: chi phí thấp nhất trên đường từ u đến z ? giải thuật Routing: giải thuật tìm đường có chi phí thấp nhất Lớp Network 62
  63. phân lớp giải thuật Routing thông tin toàn cục hoặc không ộ tập trung Tĩnh hay đ ng? toàn cục: Tĩnh: ˆ tất cả router có toàn bộ thông ˆ ệ ườ tin về chi phí kết nối, cấu trúc vi c tìm đ ng đi thay mạng đổi chậm chạp theo ˆ các giải thuật “trạng thái kết thời gian nối” không tập trung: Động: ˆ biết các kết nối vật lý đến các ˆ việc tìm đường đi thay điểm lân cận và chi phí của nó ˆ lặp lại quá trình tính toán, trao đổi rất nhanh đổi thông tin với các điểm lân  cập nhật theo chu kỳ cận  phản ứng với những thay ˆ các giải thuật “vector khoảng cách” đổi chi phí kết nối Lớp Network 63
  64. 1 giải thuật Routing “trạng thái kết nối” giải thuật Dijkstra Ký hiệu: ˆ biết chi phí kết nối, cấu trúc ˆ c(x,y): chi phí kết nối từ mạng của tất cả các nút nút x đến y; = ∞ nếu không  tất cả các nút có thông kết nối trực tiếp đến điểm tin giống nhau lân cận ˆ tính toán đường đi chi phí ˆ D(v): giá trị chi phí hiện tại thấp nhất từ 1 nút (nguồn) của đường từ nguồn đến đích đến tất cả các nút khác v  cho trước bảng ˆ p(v): nút trước nằm trên forwarding của nút đó đường từ nguồn đến nút v ˆ sau k lần duyệt, biết được đường đi chi phí thấp nhất ˆ N': tập các nút mà đường đi của k đích chi phí thấp nhất đã được xác định Lớp Network 64
  65. giải thuật Dijkstra 1 Khởi tạo: 2 N' = {u} 3 for tất cả các nút v 4 if v kề với u 5 then D(v) = c(u,v) 6 else D(v) = ∞ 7 8 Lặp 9 tìm w không có trong N' nhưng D(w) tối tiểu 10 thêm w vào N' 11 cập nhật lại D(v) cho tất cả v kề với w và không có trong N' : 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* chi phí mới đến v là chính nó hoặc chi phí đường đi ngắn nhất 14 cộng với chi phí từ w đến v */ 15 cho đến khi tất cả các nút nằm trong N' Lớp Network 65
  66. giải thuật Dijkstra: ví dụ Bước N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u 2,u 5,u 1,u ∞ ∞ 1 ux 2,u 4,x 2,x ∞ 2 uxy 2,u 3,y 4,y 3 uxyv 3,y 4,y 4 uxyvw 4,y 5 uxyvwz 5 v 3 w 2 5 u 2 1 3 z 1 x y 2 1 Lớp Network 66
  67. giải thuật Dijkstra: ví dụ (2) Cây kết quả đường đi ngắn nhất từ u: v w u z x y Bảng forwarding kết quả trong u: đích kết nối v (u,v) x (u,x) y (u,x) w (u,x) z (u,x) Lớp Network 67
  68. giải thuật Dijkstra: thảo luận Độ phức tạp giải thuật: n nút ˆ mỗi lần duyệt: cần kiểm tra tất cả các nút w không có trong N ˆ n(n+1)/2 phép so sánh: O(n2) ˆ có nhiều cách hiện thực đạt hiệu quả hơn: O(nlogn) có thể dao động: ˆ vd: chi phí kết nối = số lượng lưu thông 1 A A A A 1+e 2+e 0 0 2+e 2+e 0 D B 0 0 D 1+e 1 B D 0 0 B D 1+e 1 B 0 e 0 0 1 1+e 0 e C C C C 1 1 e tính toán lại tính toán lại tính toán lại khởi tạo routing Lớp Network 68
  69. giải thuật Vector khoảng cách công thức Bellman-Ford định nghĩa dx(y) := chi phí thấp nhất của đường đi từ x đến y thì d (y) = min {c(x,v) + d (y) } x v v trong đó min được tính trên tất cả lân cận v của x Lớp Network 69
  70. Bellman-Ford: ví dụ 5 rõ ràng, dv(z) = 5, dx(z) = 3, dw(z) = 3 v 3 w 2 5 u 2 1 công thức B-F cho: 3 z 1 d (z) = min { c(u,v) + d (z), x y 2 u v 1 c(u,x) + dx(z), c(u,w) + dw(z) } = min {2 + 5, 1 + 3, 5 + 3} = 4 chú ý rằng tối tiểu đạt được là hop kế tiếp trong đường đi ngắn nhất Lớp Network 70
  71. giải thuật Vector khoảng cách ˆ Dx(y) = ước lượng chi phí thấp nhất từ x đến y ˆ nút x biết chi phí đến mỗi lân cận v: c(x,v) ˆ Nút X duy trì vectơ khoảng cách Dx = [Dx(y): y є N ] ˆ Nút X cũng duy trì các vectơ khoảng cách đến các lân cận của nó  với mỗi lân cận v, x duy trì Dv = [Dv(y): y є N ] Lớp Network 71
  72. giải thuật Vector khoảng cách (4) Ý tưởng chính: ˆ mỗi nút định kỳ gửi ước lượng vector khoảng cách của nó đến các lân cận ˆ khi 1 nút x nhận ước lượng Dv mới từ lân cận, nó cập nhật DV của mình dùng công thức B-F: Dx(y) ← minv{c(x,v) + Dv(y)} với mỗi nút y ∊ N ˆ Dưới những điều kiện tự nhiên, ước lượng Dx(y) hội tụ tới chi phí dx bé nhất thực sự dx(y) Lớp Network 72
  73. giải thuật Vector khoảng cách (5) lặp, không đồng bộ: mỗi lặp mỗi nút: cục bộ được gây ra bởi: ˆ chi phí kết nối cục bộ thay cho (thay đổi trong chi đổi chờ phí kết nối cục bộ hoặc thông ˆ ậ ậ ừ DV c p nh t thông báo t báo từ lân cận) lân cận phân bố: tính toán lại các ước lượng ˆ mỗi nút thông báo đến các lân cận chỉ khi DV của nó nếu DV đến bất kỳ đích nào thay đổi có thay đổi, cho  các lân cận sau đóthông thông báo báo đến các lân cận của nó các lân cận nếu cần thiết Lớp Network 73
  74. D (z) = min{c(x,y) + Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} x = min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)} bảng nút x = min{2+1 , 7+0} = 3 chi phí đến chi phí đến x y z x y z x 0 2 7 x 0 2 3 y y ừ ừ ∞∞ ∞ 2 0 1 t t z ∞∞ ∞ z 7 1 0 bảng nút y chi phí đến x y z y 2 1 x ∞ ∞∞ x z ừ t y 2 0 1 7 z ∞∞ ∞ bảng nút z chi phí đến x y z x ∞∞ ∞ ừ t y ∞∞ ∞ z 71 0 thời gian Lớp Network 74
  75. D (z) = min{c(x,y) + Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} x = min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)} bảng nút x = min{2+1 , 7+0} = 3 chi phí đến chi phí đến chi phí đến x y z x y z x y z x 0 2 7 x 0 2 3 x 0 2 3 y y ừ ừ ∞∞ ∞ 2 0 1 y ừ t t 2 0 1 z z t ∞∞ ∞ 7 1 0 z 3 1 0 bảng nút y chi phí đến chi phí đến chi phí đến x y z x y z y x y z 2 1 x ∞ ∞∞ x 0 2 7 x 0 2 3 x z y y 7 2 0 1 ừ 2 0 1 y ừ ừ t 2 0 1 t t z ∞∞ ∞ z 7 1 0 z 3 1 0 bảng nút z chi phí đến chi phí đến chi phí đến x y z x y z x y z x ∞∞ ∞ x 0 2 7 x 0 2 3 y y 2 0 1 ừ y ừ 2 0 1 ừ t ∞∞ ∞ t t z z z 71 0 3 1 0 3 1 0 thời gian Lớp Network 75
  76. Vector khoảng cách: các thay đổi chi phí kết nối các thay đổi chi phí kết nối: 1 ˆ nút kiểm tra thay đổi chi phí kết nối y 4 1 ˆ cập nhật thông tin dẫn đường, tính x z toán lại vector khoảng cách 50 ˆ nếu DV thay đổi, thông báo các lân cận Tại thời điểm t0, y kiểm tra thay đổi chi phí kết nối, cập nhật DV và thông báo đến các lân cận của nó “duyệt Tại thời điểm t1, z nhận được cập nhật từ y và cập nhật bảng của nó. tin tức Nó tính toán chi phí thấp nhất mới đến x và gửi DV của nó đến các tốt lân cận nhanh” Tại thời điểm t2, y nhận được cập nhật của z và cập nhật bảng khoảng cách của nó. Các chi phí thấp nhất của y không thay đổi và hơn nữa y không gửi bất kỳ thông báo nào đến z. Lớp Network 76
  77. Vector khoảng cách: các thay đổi chi phí kết nối các thay đổi chi phí kết nối: 60 ˆ duyệt tin tức tốt nhanh y 4 1 ˆ duyệt tin tức xấu chậm - vấn đề x z “đếm đến vô tận”! 50 ˆ 44 lần duyệt trước khi ổn định Poisoned reverse: ˆ Nếu Z dẫn đường từ Y thẳng tới X:  Z nói với Y khoảng cách của nó đến X là ∞ (vì thế Y sẽ không dẫn đường đến X đi qua Z) ˆ sẽ giải quyết triệt để vấn đề đếm vô tận? Lớp Network 77
  78. So sánh các giải thuật LS và DV thông báo phức tạp sự linh hoạt: điều gì xảy ra nếu router hoạt động sai chức ˆ ớ ế ố LS: v in nút, E kt n i, O(nE) năng? các thông báo được gửi LS: ˆ DV: chỉ trao đổi giữa các lân  nút có thể thông báo chi phí ậ c n kết nối không chính xác Tốc độ hội tụ  mỗi nút chỉ tính toán bảng riêng của nó ˆ LS: giải thuật O(n2) yêu cầu DV: O(nE) thông báo  nút có thể thông báo chi phí  ể ộ có th có các dao đ ng đường đi không chính xác ˆ DV: thời gian hội tụ thay đổi  bảng của nút có thể được nút  có thể do các quá trình lặp khác dùng tìm đường •lỗi lan truyền thông qua mạng  vấn đề đếm vô hạn Lớp Network 78
  79. Hierarchical Routing nghiên cứu trong môi trường lý tưởng hóa ˆ tất cả các router đồng nhất ˆ mạng “phẳng” không đúng trong thực tế quy mô: với 200 triệu quản trị đích ˆ internet = mạng của các ˆ ể ớ ấ ả không th ghi nh t t c ạ đích trong bảng routing! m ng ˆ bảng routing sẽ kiểm soát ˆ mỗi quản trị mạng muốn các kết nối! điều hành routing trong mạng của họ Lớp Network 79
  80. Hierarchical Routing ˆ các router gom thành các Gateway router vùng, “các hệ thống tự trị- autonomous systems” (AS) ˆ trực tiếp kết nối đến ˆ các router trong cùng AS router trong AS khác chạy giao thức routing giống nhau  giao thức “intra-AS” routing  các router trong AS khác nhau có thể chạy giao thức intra-AS routing Lớp Network 80
  81. Kết nối các AS 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b 1d AS1 ˆ bảng Forwarding được cấu hình bởi cả giải thuật intra- và inter-AS routing g.thuật g.thuật  Intra-AS thiết lập các Intra-AS Inter-AS điểm đăng nhập vào các Routing Routing đích nội mạng bảng  Inter-AS & Intra-As thiết Forwarding lập các điểm đăng nhập vào các đích ngoại mạng Lớp Network 81
  82. các tác vụ Inter-AS AS1 cần: ˆ giả sử router AS1 nhận 1. học các đích nào có datagram với đích nằm thể chạm đến thông ngoài nó qua AS2 và AS3  Router sẽ forward về 2. lan truyền thông tin một trong những này đến tất cả các gateway router kế tiếp, nhưng là cái nào? router trong AS1 công việc của inter-AS routing! 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b 1d AS1 Lớp Network 82
  83. Ví dụ: thiết lập bảng forwarding trong router 1d ˆ Giả sử AS1 học (thông qua giao thức inter-AS) mà subnet x có thể chạm đến qua AS3 (gateway 1c) nhưng không qua AS2. ˆ Giao thức Inter-AS lan truyền thông tin này đến tất cả các router nội mạng. ˆ Router 1d xác định từ thông tin intra-AS routing và I sẽ nằm trên đường đi chi phí thấp nhất đến 1c. ˆ Đưa giá trị (x,I) vào bảng forwarding 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b 1d AS1 Lớp Network 83
  84. Ví dụ: Chọn giữa nhiều AS ˆ Bây giờ giả sử AS1 học từ giao thức inter-AS là subnet x có thể chạm đến từ AS3 và từ AS2 ˆ Để cấu hình bảng forwarding, router 1d phải xác định gateway nào được dùng để chuyển các gói đến đích x. ˆ đấy cũng chính là công việc trên giao thức inter-AS routing! 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b 1d AS1 Lớp Network 84
  85. Ví dụ: Chọn giữa nhiều AS ˆ Hot potato routing: gởi các gói đến 2 router gần nhất dùng thông tin từ xác định từ bảng học từ giao thức Hot potato routing: giao thức intra-AS forwarding là I có thể inter-AS là subnet x chọn gateway để xác định các chi dẫn đến gateway chi có thể chạm đến thông nào có chi phí thấp phí của các đường phí thấp nhất. đưa qua nhiều gateways nhất đi có chi phí thấp giá trị (x,I) vào bảng nhất đến mỗi gateway Lớp Network 85
  86. 4.6 Routing trong Internet Lớp Network 86
  87. Intra-AS Routing ˆ cũng gọi là Interior Gateway Protocols (IGP) ˆ các giao thức Intra-AS routing phổ biến:  RIP: Routing Information Protocol  OSPF: Open Shortest Path First  IGRP: Interior Gateway Routing Protocol (Cisco độc quyền) Lớp Network 87
  88. RIP ( Routing Information Protocol) ˆ giải thuật vector khoảng cách ˆ công bố năm 1982 trong BSD-UNIX Distribution ˆ không gian khoảng cách: số lượng hop (tối đa 15 hop) từ router A đến các subset: đích số hop u v u 1 A B w v 2 w 2 x 3 x y 3 z C D z 2 y Lớp Network 88
  89. các thông báo của RIP ˆ Các vector khoảng cách: trao đổi giữa các lân cận mỗi 30s thông qua Response Message (cũng được gọi là thông báo). ˆ Mỗi thông báo: danh sách lên đến 25 mạng đích trong mỗi AS Lớp Network 89
  90. RIP: ví dụ z w xy A D B C Network đích Router kế tiếpSố hop đến đích w A2 y B2 z B7 x 1 . . bảng Routing trong D Lớp Network 90
  91. RIP: ví dụ Đích Kế tiếpSố hop w -1 thông báo x -1 từ A đến D z C 4 . z w xy A D B C Network đích Router kế tiếpSố hop đến đích w A2 y B2 z B A 7 5 x 1 . . bảng Routing trong D Lớp Network 91
  92. RIP: kết nối sai & phục hồi Nếu không có thông báo nào sau 180s Æ lân cận/kết nối được xem như đã “chết”  những đường đi qua lân cận không còn dùng được  gửi thông báo mới cho các lân cận  các lân cận tiếp tục gửi ra những thông báo mới đó (nếu các bảng thay đổi)  thông tin kết nối lỗi nhanh chóng (?) lan truyền trên toàn mạng  poison reverse dùng để ngăn chặn các vòng lặp ping- pong (khoảng cách vô hạn = 16 hop) Lớp Network 92
  93. RIP: xử lý bảng ˆ các bảng RIP routing được quản lý bởi các tiến trình mức application gọi là route-d (daemon) ˆ các thông báo gửi trong các gói UDP, lặp lại theo chu kỳ routed routed Transprt Transprt (UDP) (UDP) network bảng bảng network (IP) forwarding forwarding (IP) link link physical physical Lớp Network 93
  94. OSPF (Open Shortest Path First) ˆ “open”: sẵn sàng công khai ˆ dùng giải thuật Link State  phân phối gói LS  bản đồ cấu trúc mạng tại mỗi nút  tính toán đường đi dùng giải thuật Dijkstra ˆ thông báo OSPF mang 1 entry vào mỗi router lân cận ˆ các thông báo phân tán đến toàn bộ AS (thông qua cơ chế flooding)  thông điệp OSPF trực tiếp trên IP (chứ không phải là TCP hoặc UDP) Lớp Network 94
  95. các đặc tính OSPF “cao cấp” (không có trong RIP) ˆ bảo mật: chứng thực tất cả các thông điệp OSPF (ngăn những kẻ có ý đồ xấu) ˆ cho phép nhiều đường đi có chi phí giống nhau (RIP chỉ cho 1) ˆ với mỗi kết nối, có nhiều không gian chi phí cho TOS khác nhau (vd: chi phí kết nối vệ tinh được thiết lập “thấp” để đạt hiệu quả tốt, “cao” cho thời gian thực) ˆ hỗ trợ uni- và multicast tích hợp:  Multicast OSPF (MOSPF) dùng cùng cơ sở dữ liệu cấu trúc như OSPF ˆ OSPF phân cấp trong những miền lớn. Lớp Network 95
  96. OSPF phân cấp Lớp Network 96
  97. OSPF phân cấp ˆ phân cấp mức 2: vùng địa phương, backbone.  các thông báo Link-state chỉ bên trong vùng  mỗi nút có cấu trúc vùng chi tiết; chỉ biết hướng (đường đi ngắn nhất) đến các mạng trong các vùng khác ˆ các router ngoài biên vùng: “tổng hợp” khoảng cách đến các mạng trong vùng của nó, thông báo đến các router ngoài biên vùng ˆ các Backbone routers: chạy OSPF routing hạn chế đến backbone. ˆ các router ngoài biên: kết nối đến các AS khác. Lớp Network 97
  98. Internet inter-AS routing: BGP ˆ BGP (Border Gateway Protocol): chuẩn thực tế ˆ BGP hỗ trợ cho mỗi AS: 1. Lấy thông tin khả năng chạm subnet đích từ các AS lân cận. 2. lan truyền thông tin đó đến tất cả các router bên trong AS. 3. Xác định đường đi “tốt” đến các subnet dựa trên thông tin khả năng chạm subnet đích và chính sách. ˆ cho phép subnet thông báo sự tồn tại của nó trên Internet Lớp Network 98
  99. các cơ sở BGP ˆ Các cặp router (BGP peers) trao đổi thông tin routing trên các kết nối TCP bán bền vững: BGP sessions  các phiên BGP không cần các kết nối vật lý tương xứng ˆ Khi AS2 thông báo 1 prefix đến AS1, AS2:  AS2 có thể tích hợp các prefix trong thông báo của nó 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b AS1 1d eBGP session iBGP session Lớp Network 99
  100. Phân phối thông tin khả chạm đích ˆ Với phiên eBGP giữa 3a và 1c, AS3 gửi thông tin khả chạm cho AS1. ˆ 1c sau đócóthể dùng iBGP phân phối thông tin khả chạm đến tất cả router trong AS1. ˆ 1b sau đócóthể thông báo lại thông tin khả chạm đến AS2 trên phiên eBGP từ 1b-đến-2a ˆ Khi router học xong prefix mới, tạo entry cho prefix trong bảng forwarding của nó. 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b AS1 1d eBGP session iBGP session Lớp Network 100
  101. các thuộc tính đường đi & BGP ˆ khi thông báo 1 prefix, trong đócóchứa các thuộc tính BGP  prefix + các thuộc tính = “dẫn đường” ˆ 2 thuộc tính quan trọng:  AS-PATH: chứa các AS qua đó thông báo prefix truyền đi: AS 67 AS 17  NEXT-HOP: Chỉ định router bên trong AS là hop kế tiếp (có nhiều kết nối từ AS hiện tại đến AS hop kế tiếp) ˆ Khi gateway router nhận thông báo tìm đường, nó dùng import policy để chấp nhận/từ chối. Lớp Network 101
  102. chọn BGP route ˆ Router có thể học nhiều hơn một nhưng chỉ được chọn một. ˆ Các quy tắc hạn chế: 1. Thuộc tính giá trị ưu tiên cục bộ: quyết định chính sách 2. AS-PATH ngắn nhất 3. NEXT-HOP router gần nhất: hot potato routing 4. Tiêu chuẩn bổ sung Lớp Network 102
  103. các thông điệp BGP ˆ trao đổi các thông điệp BGP dùng TCP ˆ các thông điệp BGP:  OPEN: mở kết nối TCP đến peer và chứng thực người gửi  UPDATE: thông báo đường đi mới  KEEPALIVE giữ kết nối sống (alive), cũng gọi là yêu cầu OPEN các ACK  NOTIFICATION: thông báo các lỗi trong thông điệp trước đó, dùng để đóng kết nối Lớp Network 103
  104. chính sách BGP routing legend: provider B network X W A customer C network: Y Figure 4.5-BGPnew: a simple BGP scenario ˆ A,B,C là những nhà cung cấp mạng ˆ X,W,Y là khách hàng (của những nhà cung cấp mạng) ˆ X là dual-homed: gắn vào 2 mạng  X không muốn dẫn đường từ B qua X đến C  vì thế X sẽ không thông báo với B về đường đến C Lớp Network 104
  105. chính sách BGP routing (2) legend: provider B network X W A customer C network: Y Figure 4.5-BGPnew: a simple BGP scenario ˆ A thông báo với B về đường AW ˆ B thông báo với X về đường BAW ˆ B sẽ thông báo với C về đường BAW?  Không có cách nào! B không có "lợi ích" về đường CBAW cũng như W không phải là những khách hàng của B, C  B muốn buộc C phải tìm đường đến W thông qua AB  B chỉ muốn tìm đường đến/từ khách hàng của nó! Lớp Network 105
  106. Tại sao phải routing Intra- và Inter-AS khác nhau? chính sách: ˆ Inter-AS: người quản trị muốn điều hành hoạt động lưu thông routing, ai routing thông qua mạng của họ ˆ Intra-AS: 1 người quản trị, vì thế không cần các quyết định chính sách linh hoạt: ˆ routing phân cấp tiết giảm kích thước bảng, giảm lưu lượng cập nhật hiệu suất: ˆ Intra-AS: có thể tập trung vào hiệu suất ˆ Inter-AS: chính sách quan trọng hơn hiệu suất Lớp Network 106
  107. 4.7 Broadcast và multicast routing Lớp Network 107
  108. Broadcast Routing ˆ Chuyển các gói từ nguồn đến tất cả các nút khác ˆ Nguồn trùng lặp thì không có hiệu quả tạo/truyền dẫn trùng lặp R1 trùng lặp R1 trùng lặp R2 R2 R3 R4 R3 R4 nguồn trùng lặp trùng lặp trong mạng ˆ Nguồn trùng lặp: làm sao xác định địa chỉ người nhận? Lớp Network 108
  109. Trùng lặp trong mạng ˆ Ngập lụt: khi nút nhận gói broadcast và gửi đến tất cả các lân cận  các vấn đề: bão broadcast & lặp lại ˆ Ngập lụt có điều khiển: nút chỉ gửi broadcast nếu nó không gửi gói nào giống như vậy trước đó  nút phải theo dõi các gói đã broadcast  hoặc reverse path forwarding (RPF): chỉ forward gói nếu nó đến trên đường ngắn nhất giữa nút và nguồn ˆ Cây mở rộng  tại bất kỳ nút nào cũng đều không nhận thừa các gói Lớp Network 109
  110. Cây mở rộng ˆ Đầu tiên xây dựng Cây mở rộng ˆ Các nút forward các bản sao chỉ trên Cây mở rộng A A B B c c D D F E F E G G (a) Broadcast khởi đầu tại A (b) Broadcast khởi đầu tại D Lớp Network 110
  111. Cây mở rộng: tạo ˆ Nút trung tâm ˆ Mỗi nút gửi thông điệp gia nhập unicast đến nút trung tâm  Thông điệp forward cho đến khi gặp một nút đã nằm trên cây mở rộng A A 3 B B c c 4 2 D D F E F E 1 5 G G (a) các bước xây dựng (b) cây mở rộng đã xây một cây mở rộng dựng xong Lớp Network 111
  112. Multicast Routing: phát biểu vấn đề ˆ Mục tiêu: tìm một cây (trong các cây) kết nối các router có các thành viên nhóm Multicast  cây: không phải tất cả các đường đi giữa các router được dùng  cây dựa trên nguồn: cây khác nhau từ nơi gửi đến nơi nhận  cây chia sẻ: cây giống nhau dùng bởi tất cả các thành viên nhóm cây chia sẻ cây dựa trên nguồn
  113. Các cách tiếp cận xây dựng các cây multicast ˆ cây dựa trên nguồn: một cây mỗi nguồn  các cây đường đi ngắn nhất  cây đường đi ngược ˆ cây chia sẻ nhóm: nhóm dùng 1 cây  mở rộng tối thiểu (Steiner)  các cây trung tâm nghiên cứu các cách tiếp cận cơ bản
  114. Cây đường đi ngắn nhất ˆ cây đường đi ngược multicast: cây đường đi ngắn nhất dẫn đường từ nguồn đến tất cả các điểm nhận  giải thuật Dijkstra S: nguồn Ký hiệu R1 2 ớ ủ 1 R4 router v i các thành viên c a nhóm đã gắn vào R2 5 router không có các thành 3 4 R5 viên của nhóm gắn vào R3 6 i kết nối dùng cho forward, R6 R7 i chỉ thứ tự kết nối thêm vào bởi giải thuật
  115. Cây đường đi ngược forward: ‰ phụ thuộc tri thức của router của đường đi ngắn nhất unicast từ nó đến nơi gửi ‰ mỗi router có cách xử lý forwarding đơn giản if (multicast datagram nhận được trên kết nối đến trên đường đi ngắn nhất kể từ trung tâm) then tràn ngập datagram lên tất cả các kết nối ra else lờ đi datagram
  116. Cây đường đi ngược forward: ví dụ S: nguồn Ký hiệu R1 R4 router với các thành viên của nhóm đã gắn vào R2 router không có các thành R5 viên của nhóm gắn vào R3 datagram sẽ được R6 R7 forward datagram sẽ không được forward •kết quả là một cây SPT đảo ngược –cóthể là một lựa chọn tồi với các kết nối không đồng bộ
  117. Cây đường đi ngược forward: cắt giảm ˆ cây forward chứa các cây con với các thành viên nhóm không multicast  không cần forward các datagram xuống cây con  “cắt giảm” các thông điệp gửi lên bởi router ệ S: nguồn Ký hi u R1 router với các thành viên R4 của nhóm đã gắn vào R2 router không có các thành P viên của nhóm gắn vào P R5 thông điệp cắt giảm R3 P các kết nối với multicast R6 R7 forward
  118. Cây chia sẻ: cây Steiner ˆ cây Steiner: cây chi phí thấp nhất kết nối tất cả các router với các thành viên nhóm đã gắn vào ˆ vấn đề là NP-complete ˆ đã có các heuristic rất tốt ˆ không dùng trong thực tế:  độ phức tạp tính toán  cần thông tin về toàn bộ mạng  monolithic: chạy lại bất cứ khi nào 1 router cần gia nhập/rời khỏi
  119. Các cây trung tâm ˆ một cây truyền nhận chia sẻ cho tất cả ˆ 1 router được gọi là “trung tâm” của cây ˆ để gia nhập:  bên ngoài gửi thông điệp gia nhập unicast cho router trung tâm  thông điệp gia nhập “được xử lý” bởi các router trung gian và chuyển đến router trung tâm  thông điệp gia nhập gặp nhánh của cây đã tồn tại hoặc đến được trung tâm  đường đi thu được khi thông điệp gia nhập đến trở thành nhánh mới của cây cho router này
  120. Các cây trung tâm: ví dụ giả sử R6 được chọn làm trung tâm: Ký hiệu R1 router với các thành viên R4 3 của nhóm đã gắn vào router không có các thành R2 2 viên của nhóm gắn vào 1 R5 thứ tự đường đi trong ấy các thông điệp gia nhập đã R3 sinh ra 1 R6 R7
  121. Internet Multicasting Routing: DVMRP ˆ DVMRP: giao thức multicast routing dùng vector khoảng cách, RFC1075 ˆ flood & prune: forward đường đi ngược, cây dựa trên nguồn  cây RPF dựa trên các bảng routing của DVMRP của riêng nó được xây dựng bởi truyền thông các router DVMRP  không có các giả thiết về unicast bên dưới  datagram ban đầu đến nhóm multicast làm tràn ngập mọi nơi thông qua RPF  các router không phải nhóm: gửi các thông điệp cắt giảm
  122. DVMRP: (tt) ˆ trạng thái “mềm”: router DVMRP chu kỳ (1 phút) “quên” các nhánh đã cắt giảm:  dữ liệu mcast một lần nữa đổ xuống các nhánh không cắt giảm  router dòng xuống: tái cắt giảm hoặc tiếp tục nhận dữ liệu ˆ các router có thể nhanh chóng tái cắt giảm  gia nhập IGMP tại các nút lá ˆ còn lại  đã hiện thực phổ biến trong các router thương mại  hoàn thành routing dùng DVMRP
  123. Tunneling Hỏi: Làm sao kết nối các “đảo” multicast router trong một “biển” các unicast router? cấu trúc vật lý cấu trúc logic ‰ multicast datagram được đóng gói trong datagram “thông thường” (không có multicast) ‰ datagram IP thông thường gửi thông qua “đường ống” và qua IP unicast đến router multicast nhận ‰ router multicast nhận mở gói để lấy multicast datagram
  124. PIM: Protocol Independent Multicast ˆ không phụ thuộc vào bất kỳ giải thuật unicast routing bên dưới nào ˆ hai kịch bản phân phối multicast khác nhau Trù mật: Thưa thớt: ‰ các thành viên nhóm ‰ số lượng các mạng với các đóng gói trù mật thành viên nhóm ít ‰ băng thông dư thừa ‰ các thành viên nhóm “phân bố thưa thớt” ‰ băng thông không dư thừa
  125. Hậu quả sự phân chia thưa thớt-trù mật Trù mật: Thưa thớt: ˆ nhóm các thành viên ˆ không có thành viên cho router là giả cho đến khi đến khi có các router gia các router cắt giảm thực nhập thực sự sự ˆ kiến trúc hướng người ˆ kiến trúc hướng dữ liệu nhận trên cây multicast trên cây multicast (vd: (vd: cây trung tâm) RPF) ˆ băng thông và router ˆ băng thông và router không thuộc nhóm xử lý không thuộc nhóm xử lý vừa phải phung phí
  126. PIM- kiểu trù mật flood-and-prune RPF, tương tự DVMRP, nhưng: ‰ giao thức unicast bên dưới cung cấp thông tin RPF cho datagram đến ‰ ít phức tạp (ít hiệu quả) ‰ có cơ chế giao thức cho router để kiểm tra có phải router là nút lá
  127. PIM – kiểu thưa thớt ˆ tiếp cận hướng trung tâm ˆ router gửi thông điệp R1 R4 gia nhập đến join rendezvous point (RP) R2  các router trung gian join cập nhật trạng thái và R5 forward thông điệp gia join nhập R3 R7 ˆ sau khi gia nhập bằng R6 RP, router có thể tất cả dữ liệu RP chuyển sang cây xác multicast định nguồn đến từ RP  hiệu suất tăng: ít tập trung, các đường đi ngắn
  128. PIM – kiểu thưa thớt bên gửi: ˆ dữ liệu unicast đến RP, RP phân phối xuống cây R1 R4 có nút gốc là RP join ˆ ể ở ộ RP có th m r ng cây R2 multicast dòng lên đến join nguồn R5 join ˆ RP có thể gửi thông R3 R7 điệp dừng nếu không có R6 bên nhận nào được gắn vào tất cả dữ liệu RP multicast  “không có ai đang lắng đến từ RP nghe!”