cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu cơ sở truyền số liệu
Cơ sở mạng thơng tin Giáo trình dành cho sinh viên đại học ngành Điện tử - Viễn thông Chủ biên: Nguyễn Hữu Thanh Khoa Điện tử Viễn Thông Trường Đại học Bách khoa Hà nội Các từ viết tắt Đầy đủ Viết tắt Cumulative distribution function CDF First-come-first-server FCFS First in first out FIFO Last-come-first-serve LCFS Last in first out LIFO Probability density function pdf Probability distribution function PDF Bảng đối chiếu thuật ngữ Anh - Việt Tiếng Anh Tiếng Việt Analysis Phân tích Arrival process Tiến trình tới Base station Trạm gốc Biominal distribution Phân bố nhị thức Binomial process Tiến trình nhị thức Birth – Death Process Tiến trình sinh tử Derparture process Tiến trình Evaluation Đánh giá Expectation Kỳ vọng Exponential distribution Phân bố mũ First in first out / First-come-first-serve Vào trước phục vụ trước Formal description Mơ tả hình thức Frequency function Hàm tần suất Gaussian distribution Phân bố chuẩn/phân bố Gauss Inter-arrival time Thời gian hai kiện tới (?) Last in first out / Last-come-first-serve Vào sau phục vụ trước Load Tải Model Mơ hình Modeling Mơ hình hóa Performance Đặc tính/chất lượng hoạt động Probability Xác suất Probability density function Hàm mật độ xác suất Probability distribution function Hàm phân phối xác suất Random experiment Phép thử ngẫu nhiên Random event Sự kiện ngẫu nhiên Random variable Biến ngẫu nhiên Scale parameter Tham số tỷ lệ Server Trạm phục vụ/Server Service process Tiến trình phục vụ Shape parameter Tham số hình dạng Simulation Mơ Standard deviation Độ lệch chuẩn Steady state Trạng thái ổn định Stochastic process Tiến trình ngẫu nhiên Traffic intensity Mật độ lưu lượng Transformation Biến đổi Uniform distribution Phân bố Utilization Hiệu suất kênh Validation Kiểm định tính xác Variance Phương sai Mục lục Các từ viết tắt _ Bảng đối chiếu thuật ngữ Anh - Việt Mục lục _ Mục lục hình vẽ _ Mục lục bảng biểu 10 Chương Giới thiệu _ 1.1 Mục đích việc mơ hình hóa đánh giá đặc tính hoạt động hệ thống _ 1.2 Các tham số, tiêu chuẩn phương pháp đánh giá hệ thống thông tin _ 1.2.1 Các tham số đánh giá đặc tính hoạt động hệ thống thông tin 1.2.2 Các tiêu chuẩn đánh giá 1.2.3 Các phương pháp đánh giá _ Chương Các tiến trình ngẫu nhiên 2.1 Xác suất kiện _ 2.1.1 Phép thử kiện ngẫu nhiên 2.1.2 Xác suất 2.2 Biến ngẫu nhiên hàm xác suất _ 2.2.1 Biến ngẫu nhiên 2.2.2 Hàm mật độ phân phối xác suất 10 2.2.3 Hàm tần suất phân phối xác suất biến ngẫu nhiên rời rạc _ 12 2.2.4 Các tham số đặc trưng biến ngẫu nhiên _ 13 2.3 Các mô hình phân bố xác suất _ 16 2.3.1 Phân bố Bernoulli (Bernoulli distribution) 2.3.2 Phân bố nhị thức (binomial distribution) 2.3.3 Phân bố chuẩn (Gaussian distribution) _ 2.3.4 Phân bố mũ (exponential distribution) _ 2.3.5 Phân bố Poisson (Poinsson distribution) 2.3.6 Phân bố Gamma (Gamma distribution) 2.3.7 Mối liên hệ phân bố mũ phân bố Gamma 16 17 19 20 20 21 22 2.4 Tiến trình ngẫu nhiên (stochastic process) 23 2.4.1 Khái niệm định nghĩa 23 2.4.2 Phân loại 24 2.5 Các đặc tính thơng kê tiến trình ngẫu nhiên _ 25 2.5.1 Các hàm quan hệ xác suất _ 25 2.5.2 Các trung bình thống kê _ 26 2.5.3 Tính dừng 27 2.6 Các tiến trình ngẫu nhiên thường gặp _ 30 2.6.1 Tiến trình đếm 30 2.6.2 Tiến trình Poisson _ 31 2.7 Kết luận _ 31 Chương Hệ thống hàng đợi _ 32 3.1 Giới thiệu 32 3.2 Mơ hình hàng đợi – Ký hiệu Kendall 32 3.2.1 Mơ hình hàng đợi đơn 32 3.2.2 Ký hiệu Kendall _ 33 3.2.3 Các tham số quan trọng để đánh giá đặc tính hệ thống hàng đợi 35 3.3 Hệ thống hàng đợi trạng thái ổn định – Định lý Little _ 36 3.3.1 Hệ thống hàng đợi ổn định 36 3.3.2 Định lý Little _ 38 3.3.3 Một số đặc tính khác hệ thống đóng, hoạt động trạng thái ổn định _ 40 3.4 Hàng đợi M/M/1/1 _ 41 3.5 Hàng đợi M/M/1/ _ 44 3.5.1 Xác suất có n yêu cầu hệ thống 44 3.5.2 Tính tốn tham số hiệu 46 3.6 Tiến trình sinh – tử (Birth – Death Process) _ 49 3.7 Hàng đợi M/M/1/K 49 3.7.1 Xác suất có n yêu cầu hệ thống 50 3.7.2 Tính tốn tham số hiệu 50 3.8 Hàng đợi M/M/c/ _ 54 3.8.1 Xác suất có n yêu cầu hệ thống 55 Chương Mạng hàng đợi 56 4.1 Mạng nối tiếp _ 56 Chương Định tuyến mạng thông tin _ 57 5.1 Yêu cầu định tuyến mạng thông tin 57 5.1.1 Vai trò định tuyến mạng thông tin _ 57 5.1.2 Các khái niệm lý thuyết graph _ 57 5.2 Các mơ hình định tuyến quảng bá (broadcast routing) 59 5.2.1 Lan tràn gói (flooding) 5.2.2 Định tuyến bước ngẫu nhiên (random walk) _ 5.2.3 Định tuyến khoai tây nóng (hot potato) _ 5.2.4 Định tuyến nguồn (source routing) mơ hình (spanning tree) _ 5.2.5 Duyệt 59 60 60 61 61 5.3 Các mơ hình định tuyến thông dụng _ 82 5.3.1 Định tuyến ngắn (Shortest path Routing) _ 82 5.4 Bài tập (Pending) _ 105 Chương Điều khiển luồng chống tắc nghẽn 106 6.1 Tổng quan 106 6.1.1 Mở đầu _ 6.1.2 Khái niệm điều khiển luồng 6.1.3 Khái niệm chống tắc nghẽn _ 6.1.4 Nhiệm vụ chủ yếu điều khiển luồng chống tắc nghẽn _ 6.1.5 Phân loại điều khiển luồng tránh tắc nghẽn 106 109 110 110 111 6.2 Tính cơng 112 6.2.1 Định nghĩa 6.2.2 Tính cơng mặt băng truyền 6.2.3 Tính cơng mặt đệm 6.2.4 Cơ chế phát lại ARQ 6.2.5 Stop-and-Wait ARQ 6.2.6 Go-back-N ARQ _ 6.2.7 Selective repeat ARQ _ 112 112 112 114 115 121 128 6.3 Điều khiển luồng tránh tắc nghẽn theo phương pháp cửa sổ 130 6.3.1 Điều khiển luồng theo cửa sổ (Window Flow Control) _ 131 6.3.2 Điều khiển tắc nghẽn sử dụng cửa sổ thích ứng (adaptive window) _ 136 6.4 Điều khiển luồng chống tắc nghẽn dựa băng thông (rate-based flow control) _ 142 6.4.1 Khái niệm 142 6.4.2 Điều khiển băng thơng theo thuật tốn gáo rị (leaky bucket) _ 143 6.4.3 Thuật toán GPS (pending) 147 6.5 Bài tập (Pending) _ 148 Chương Kỹ thuật mô 149 7.1 Giới thiệu _ 149 7.2 Mô dựa kiện rời rạc công cụ _ 149 7.2.1 Phương pháp mô dựa kiện rời rạc 149 7.2.2 Các công cụ mô thông dụng dựa kiện rời rạc 152 7.3 Công cụ mô mạng NS2 _ 153 7.3.1 Cấu trúc 153 7.3.2 Các tiện ích NS hỗ trợ cho mô mạng [Pending] _ 155 7.3.3 Thí dụ (Pending) _ 155 7.4 Kết luận (Pending) 155 7.5 Bài tập (Pending) _ 156 Tài liệu tham khảo _ 157 Phụ lục 158 Mục lục hình vẽ Hình 1-1 Các bước mơ hình hóa đánh giá đặc tính hệ thống Hình 2-1 Hàm mật độ xác suất 10 Hình 2-2.Hàm phân phối xác suất 11 Hình 2-3: Kết Thí dụ 2-5 13 Hình 3-1 Hệ thống hàng đợi với N trạm phục vụ, hàng đợi có độ lớn K 33 Hình 3-2 Round robin 34 Hình 3-3 Mạng đóng 36 Hình 3-4 Quan hệ số yêu cầu tới số yêu cầu phục vụ 39 Hình 3-5.Hệ thống hàng đợi quan sát với hai ranh giới khác nhau: (a) Hàng đợi trạm phục vụ; (b) Hàng đợi 41 Hình 3-6 Hàng đợi M/M/1/1 42 Hình 3-7 Khoảng thời gian xét 42 Hình 3-8 Hàng đợi M/M/1/ 44 Hình 3-9 Cân xác suất trạng thái i Tiến trìnhsinh – tử49 Hình 3-10 Hệ thống M/M/1/K 49 Hình 3-11 Hệ thống hàng đợi M/M/1/K 50 Hình 3-12 Hệ thống M/M/1/K quan điểm hệ thống đóng 53 Hình 3-13 Hàng đợi M/M/c/ 54 Hình 5-1 Hàng chờ bên router 61 Hình 5-2 Duyệt 62 Hình 5-3 Các thành phần 66 Hình 5-4 Phép tính Minimum Spanning Tree ( MST) 74 Mục lục bảng biểu Bảng 2-1 Điểm tương ứng với kết tung xúc xắc Bảng 2-2: Kết Thí dụ 2-5 13 10 Việc sử dụng tài nguyên mạng hiệu đảm bảo tính công cho kết nối thực chế điều khiển luồng cực đại – cực tiểu (max–min flow control) Cơ chế xây dựng mơ hình cơng cực đại – cực tiểu (max-min fairness) Nguyên tắc hoạt động chế điều khiển luồng cực đại – cực tiểu sau: Nguyên tắc – Sau người dùng với yêu cầu tài nguyên đáp ứng công bằng, tài nguyên lại tiếp tục phân chia (một cách cơng bằng) cho người dùng cịn lại Trong nhóm người dùng này, tài nguyên lại phân chia cho người dùng có u cầu đáp ứng, trình tiếp tục đến hết Nói cách khác, việc cấp phát tài nguyên mạng cho người dùng i không làm ảnh hưởng đến tài nguyên cấp ngườii dùng khác với yêu cầu i Một số quy ước định nghĩa: Giả thiết mạng đồ có hướng G = (N, A) N tập hợp nút A tập hợp đường liên kết nút P tập hợp kết nối sử dụng mạng, kết nối tập hợp kết nối ký hiệu p rp tốc độ (hay băng thông) dùng cho kết nối p Với đường liên kết a (a Ỵ A) lưu lượng thơng tin liên kết a Fa = p (a).rp p (a ) = kết nối p qua liên kết pỴP a trường hợp ngược lại Gọi Ca dung lượng liên kết a, ta có: rp ≥ với p Ỵ P Fa ≤ Ca với a Ỵ A (*) Mục đích chế cơng cực đại – cực tiểu tìm tập hợp giá trị rp (với p Ỵ P) thỏa mãn (*) đồng thời thỏa mãn nguyên tắc quy chế công cực đại – cực tiểu Tập hợp giá trị rp tạo thành vector công cực đại – cực tiểu, ký hiệu r Một đặc điểm quan trọng vector công cực đại – cực tiểu với kết nối p thuộc P, có liên kết a mà p qua cho Fa = Ca rp không nhỏ tốc độ kết nối liên kết Liên kết gọi điểm nghẽn p (bottleneck arc) Hình 1-17 minh hoạt khái niệm vector công cực đại – cực tiểu khái niệm điểm nghẽn 145 Hình 5-17: Ví dụ tính cơng cực đại – cực tiểu Trên hình 5-17, điểm nghẽn kết nối 1, 2, 3, (3,5), (2,3), (2,3), (4,5) (2,3) Liên kết (3,5) điểm nghẽn cho kết nối liên kết chia sẻ hai kết nối kết nối có tốc độ cao kết nối liên kết Liên kết (1,3) điểm tắc nghẽn tất kết nối tài nguyên kết nối chưa sử dụng hết (cịn dư thừa 1/3 tốc độ) Thuật tốn tìm giá trị băng thông tối ưu (max-min fair algorithm) Phần trình bày thuật tốn tìm giá trị băng thông tối ưu 1) Khởi tạo tất kết nối với tốc độ = Tăng tốc độ tất kết nối với lượng nhỏ , lặp lại trình tồn liên kết có tổng băng thơng đạt đến giá trị băng thông cực đại (Fa = Ca) Lúc này: Tất kết nối chia sẻ liên kết sử dụng băng thông Liên kết điểm tắc nghẽn tất kết nối sử dụng liên kết Ngừng việc tăng băng thông cho kết nối kết nối đạt đến trạng thái cân cực đại – cực tiểu 2) Lặp lại trình tăng tốc độ cho kết nối khác chưa đạt đến điểm tắc nghẽn lại tìm thấy điểm tắc nghẽn ứng với kết nối khác (lặp lại bước 2) 3) Thuật toán kết thúc tất kết nối tìm điểm tắc nghẽn Có cần phải minh họa cơng thức khơng??? Ví dụ: xét trường hợp tìm băng thông tối ưu phương pháp công cực đại – cực tiểu hình 1-17 Giả thiết tất liên kết có tốc độ Bước 1: tất kết nối có tốc độ 1/3, liên kết (2,3) bão hịa (đạt giá trị cực đại) tốc độ ba kết nối (2, 5) liên kết đặt giá trị 1/3 146 Bước 2: hai kết nối tăng thêm lượng băng thông 1/3 đạt giá trị 2/3 Lúc liên kết (3,5) bão hòa tốc độ kết nối đặt giá trị 2/3 Bước 3: kết nối tăng thêm lượng 1/3 đạt đến giá trị Liên kết (4,5) lúc trở nên bão hòa tốc độ kết nối đạt Bước 4: cúc tất kết nối qua liên kết bão hòa (điểm nghẽn) nên giải thuật dừng lại kết giải thuật tìm giá trị băng thơng tối ưu băng thông kết nối cho phần Dưới thuật tốn tìm giá trị băng thơng tối ưu Quy ước: Ak tập hợp liên kết chưa bão hòa (chưa hoạt động với tốc độ cực đại liên kết) lúc bắt đầu bước k Pk tập hợp kết nối khơng qua liên kết bão hịa nào, tính lúc bắt đầu bước k nka số lượng kết nối Pk sử dụng liên kết a Đây số kết nối chia sẻ phần dung lượng đường truyền chưa dùng hết liên kết a r k phần băng thông tăng lên cho kết nối Pk bước thứ k Tại điều khiện ban đầu: k = 1, F0a = 0, r0p = 0, P1 = P A1 = A Thuật toán hoạt động sau: nak := số lượng đường p Ỵ P k với p (a ) = r k := (Ca Fak 1 ) / nak Ak rpk 1 + r k ( p Ỵ P k ) r = k 1 k rp ( p P ) Fak := p (a).rpk k p A A k+1 := a | Ca Fak 0 P k +1 := p | p (a) = 0, for all a A k+1 k := k + Nếu Pk tập hợp rỗng dừng lại, khơng quay lại bước 6.4.3 Thuật toán GPS (pending) 147 6.5 Bài tập (Pending) 148 Chương Kỹ thuật mô 7.1 Giới thiệu Công cụ NS2 (network simulator version 2) [5] phát triền trường Đại học Berkeley (Mỹ) công cụ cho phép mô đánh giá đặc tính mạng máy tính viễn thơng thay cho việc tiến hành thực nghiệm thiết bị thực tế Do có số ưu điểm mã nguồn mở, có module ứng dụng phong phú, NS2 công cụ mô phổ biến rộng rãi giới, đặc biệt viện nghiên cứu trường đại học Trong chương này, trước tiên chúng tơi trình bày khái niệm chung phương pháp mô dựa kiện rời rạc (discrete event simulation) Tiếp theo, nhằm cung cấp cho người đọc nhìn tổng quan công cụ mô cho mạng, giới thiệu số công cụ mô mạng thơng dụng phân tích ưu nhược điểm chúng Cấu trúc NS2, module có sẵn ứng dụng chúng trình bày phần Sau số kết luận chung phạm vi ứng dụng ưu nhược điểm NS2 7.2 Mô dựa kiện rời rạc công cụ 7.2.1 Phương pháp mô dựa kiện rời rạc Trước vào trình bày khái niệm mô dựa kiện rời rạc, định nghĩa số khái niệm sau: Định nghĩa 6.1 - Mơ hình mơ (Simulation Model): biểu diễn hệ thống cần mô cách mô tả mối quan hệ toán học, logic cấu trúc mặt trạng thái, thực thể làm nên hệ thống, kiện làm thay đổi trạng thái hệ thống, tiến trình hoạt động hệ thống Định nghĩa 6.2 - Trạng thái hệ thống (System State): tập hợp biến cần thiết chứa đựng đầy đủ thông tin để mô tả hệ thống thời điểm Định nghĩa 6.3 - Thực thể (Entity): Một mơ hình hệ thống cần mô chia nhỏ thành thực thể với chức khác (thí dụ hàng đợi, server, gói liệu v.v.) 149 Định nghĩa 6.4 - Thuộc tính (Attributes): Mỗi thực thể hệ thống có thuộc tính khác đặc trưng cho thực thể đó, thí dụ luật phục vụ gói hàng đợi v.v Định nghĩa 6.5 - Sự kiện (Event): Sự xuất kiện làm thay đổi trạng thái hệ thống (thí dụ kiện xuất gói làm tăng số gói chờ hàng đợi) Định nghĩa 6.6 - Bản ghi kiện (Event Notice): Là ghi có gắn thời gian xảy kiện tương lai, với liệu cần thiết để thực kiện đó, thí dụ kiểu kiện thời gian xảy kiện Định nghĩa 6.7 - Danh sách kiện (Event List): Là danh sách chứa nhiều ghi kiện xếp theo trình tự thời gian xảy kiện Định nghĩa 6.8 - Hoạt động (Activity): quãng thời gian với độ dài xác định (khoảng thời gian truyền gói tin, thời gian đến hai gói tin liên tiếp) thời điểm bắt đầu hoạt động xác định Định nghĩa 6.9 - Trễ (Delay): quãng thời gian với độ dài không xác định (như khoảng thời gian đợi gói tin hàng đợi đằng trước cịn n gói đợi) Định nghĩa 6.10 - Đồng hồ (Clock): Là biến số thể thời gian mô hệ thống Từ khái niệm trên, phương pháp mô dựa kiện rời rạc xây dựng bẳng cách mơ hình hố hệ thống mà trạng thái thay đổi thời điểm rời rạc, tức thời điểm xảy kiện Như q trình chạy mơ thực chất trình khảo sát hệ thống trạng thái thay đổi từ thời điểm sang thời điểm khác, tương ứng với thời điểm xảy kiện theo trình tự thời gian tăng dần Thí dụ 6.1: Để dễ hiểu lấy thí dụ hệ thống bao gồm hàng đợi Q hai thực thể phục vụ (server) A B phục vụ gói đợi Q Đầu tiên gói vào hàng đợi Q đợi lượt phục vụ Thực thể A B có thời gian phục vụ gói trung bình tsa tsb (đây hai thuộc tính tương ứng với A B) Khi có gói đến, A rỗi A phục vụ gói đó, A bận B rỗi B phục vụ, khơng gói đợi hàng đợi Q (Hình 6.1) 150 Hình 6.1 Hệ thống gồm hàng đợi thực thể phục vụ Có thể mơ hình hố hệ thống trạng thái thể tham số: LQ: độ dài hàng đợi (số gói có Q) SA: – A bận; – A rỗi SB: – B bận; – B rỗi Ngồi định nghĩa kiểu kiện làm thay đổi trạng thái hệ thống sau: 1) Sự kiện E1: gói Pi vào hàng đợi; 2) Sự kiện E2: gói Pi bắt đầu phục vụ A B; 3) Sự kiện E3: gói Pi phục vụ xong Giả sử thời điểm t1 gói Pn A phục vụ xong, Pn+1 bắt đầu phục vụ, thời điểm t2 gói Pi vào hàng đợi Q Hình 6.2 Mơ hệ thống với trình tự thời gian tăng dần 151 Hình 6.2 thể trình mơ hệ thống theo trình tự thời gian đồng hồ trình thay đổi, bổ sung ghi kiện danh sách kiện Việc xử lý danh sách kiện nhiệm vụ chương trình mơ Do ghi kiện chuỗi xếp theo trình tự thời gian, danh sách kiện có hai trỏ: trỏ trỏ vào đầu danh sách trỏ thứ hai trỏ vào ghi cuối danh sách Mỗi ghi phải có trỏ trỏ đến ghi nằm danh sách Các thao tác liên quan đến danh sách kiện bao gồm: 1) Xoá ghi đầu danh sách; 2) Xoá ghi vị trí danh sách; 3) Thêm ghi vào đầu cuối danh sách; 4) Thêm ghi vào vị trí danh sách phụ thuộc vào thời gian xảy kiện Các phương pháp mơ hình hố hệ thống thông tin chi tiết kỹ thuật mơ tìm thấy [1][2][3] 7.2.2 Các công cụ mô thông dụng dựa kiện rời rạc Trước vào trình bày cấu trúc công cụ NS2, phần điểm lại số công cụ mô thông dụng nhận xét ưu nhược điểm chúng OPNET [8] sản phẩm thương mại tương đối tiếng cơng ty OPNET, bao gồm hai phần OPNET Modeler phần mở rộng cho mạng không dây OPNET Wireless Module OPNET chạy môi trường Windows Unix/Linux OPNET thích hợp cho tổ chức cơng nghiệp việc quy hoạch đánh giá chất lượng dịch vụ mạng thực tế có sẵn thư viện phong phú với module mô thiết bị nhiều nhà sản xuất khác Cisco, Lucent, Juniper Tuy nhiên sở nghiên cứu trường đại học, có lẽ OPNET không phù hợp giá tương đối đắt, mặt khác mơ hình hố hệ thống, OPNET u cầu phải sử dụng thư viện với thiết bị cụ thể nên việc xây dựng mơ hình tổng qt gặp khó khăn Ptolemy II [9] công cụ mô Java phát triển trường Berkeley (Mỹ) Ptolemy II tải xuống miễn phí, nhiên Ptolemy II cung cấp môi trường mô dựa kiện rời rạc nói chung, module hỗ trợ cho mơ hệ thống mạng khơng có nhiều nên người lập trình phải tự phát triển ứng dụng riêng OMNET++ [10] chương trình mơ cho hệ thống mạng phát triển Andras Varga, trường Đại học Bách khoa Budapest OMNET++ viết ngôn ngữ C++ hỗ trợ Windows lẫn Unix/Linux OMNET++ tải xuống miễn phí Ngồi OMNET++ sử dụng giao diện đồ hoạ thân thiện với người sử dụng (như mơi trường phát triển OPNET), khối lượng công việc độ phức 152 tạp phát triển module giảm nhẹ nhiều Tuy nhiên OMNET++ cộng đồng nghiên cứu nên module có sẵn chưa nhiều NS2 [5] công cụ mô mạng sử dụng rộng rãi trường đại học viện nghiên cứu NS2 phát triển khuôn khổ dự án VINT, kết hợp trường Berkeley, Viện Khoa học thơng tin ISI, Xerox PARC phịng thí nghiệm quốc gia Lawrence Berkeley NS2 công cụ mô hướng đối tượng, phát triển dựa hai ngôn ngữ C++ OTcl (Object-oriented Tcl), chủ yếu chạy môi trường Unix/Linux Ưu điểm NS2 mã nguồn mở, có cộng đồng sử dụng phát triển đông đảo nên module hỗ trợ cho mô mạng (như giao thức, chế đảm bảo chất lượng dịch vụ, công nghệ mạng lớp 2, 3) phong phú Tuy nhiên có số nhược điểm: Do khơng có giao diên đồ hoạ với người sử dụng nên việc tạo kịch mô phát triển module phức tạp công cụ khác OPNET OMNET++; Khả hỗ trợ hệ điều hành khác Windows kém; Do phát triển nhiều cá nhân tổ chức khác nên cấu trúc NS2 tương đối phức tạp, sau thời gian làm quen dùng thử định người sử dụng có khả làm chủ chương trình, đặc biệt phải tạo module chức Sau tập trung giới thiệu công cụ NS2 Việc so sánh liệt kê công cụ mô đánh giá hoạt động mạng tìm thấy [2][11][12] 7.3 Cơng cụ mơ mạng NS2 7.3.1 Cấu trúc Hình Cấu trúc công cụ mô NS Mô NS xây dựng sở hai ngôn ngữ: C++: NS có thư viện phong phú đối tượng mạng giao thức mơ tả C++ (thí dụ nút mạng, đường nối, nguồn, hàng đợi v.v.) 153 OTcl: Ngồi chương trình thơng dịch OTcl (OTcl ngôn ngữ mở rộng chức hướng đối tượng Tcl) cho phép người sử dụng xây dựng kịch mô cụ thể truyền tham số cho thực thể C++ Mỗi đối tượng (tương ứng với thực thể) C++ có đối tượng tương ứng lớp OTcl thể Hình Như C++ phần cho liệu lõi NS OTcl phần đặt cấu hình cho chương trình mơ NS phải sử dụng ngơn ngữ có hai nhiệm vụ khác tiến hành mô Một mặt, mô tả chi tiết giao thức, khối chế mạng yêu cầu phải sử dụng ngôn ngữ bậc cao để xử lý số liệu, thực thuật toán Đối với nhiệm vụ yêu cầu tính hiệu chương trình mơ (như khoảng thời gian chạy chương trình, quản lý nhớ v.v.), thực thể bắt buộc phải viết C++ Mặt khác, trình xây dựng kịch mô đặt cấu hình cho phần tử mạng, truyền tham số cụ thể, thiết lập topo cho mạng sử dụng phần tử có sẵn nên yêu cầu khâu thời gian thiết lập cấu hình phải thấp (vì kịch mơ lặp lặp lại) Vì vậy, chương trình thơng dịch OTcl thích hợp Trong kịch mô dạng OTcl người dung đưa ra, thiết lập topo mạng, giao thức ứng dụng cụ thể mà muốn mô mẫu đầu mà mong nhận từ mơ phỏng, OTcl sử dụng đối tượng biên dịch C++ qua liên kết OTcl (sử dụng tclCL thư viện gắn kết để dễ dàng chia sẻ chức biến) để tạo ánh xạ 1-1 đối tượng OTcl cho đối tượng C++ định nghĩa liên hệ đối tượng Như trình bày trên, phần NS danh sách kiện mà người ta gọi phân hoạch kiện (event scheduler) NS sử dụng phương pháp phân hoạch kiện khác nhau, trình bày cụ thể [4] Một kiện đối tượng C++ bao gồm số hiệu nhận dạng (ID) nhất, thời gian phân hoạch trỏ trỏ đến đối tượng thực thi kiện Cấu trúc kiện phân hoạch kiện định nghĩa sau: class Event { public: Event* next_; /* event list */ Handler* handler_; /* handler to call when event ready */ double time_; /* time at which event is ready */ int uid_; /* unique ID */ Event() : time_(0), uid_(0) {} 154 }; /* * The base class for all event handlers When an event’s scheduled * time arrives, it is passed to handle which must consume it * i.e., if it needs to be freed it, it must be freed by the handler */ class Handler { public: virtual void handle(Event* event); }; Các gói tin NS định nghĩa từ lớp Event sau: class Packet : public Event { private: friend class PacketQueue; u_char* bits_; protected: static Packet* free_; public: Packet* next_; /* for queues and the free list */ static int hdrlen_; Packet() : bits_(0), datalen_(0), next_(0) {} u_char* const bits() { return (bits_); } static void free(Packet*); }; 7.3.2 Các tiện ích NS hỗ trợ cho mô mạng [Pending] Các module phục vụ cho mơ mạng máy tính viễn thông: Mobile networks, mobile IP, DiffServ, IntServ, MPLS, UDP/TCP/IP, SCTP, routing protocols (mobile ad-hoc, unicast, multicast), RED, RIO, WFQ, CSMA/CD, ON/OFF source, Pareto v.v Các chương trình trợ giúp việc khai thác số liệu mô phỏng: Nam, XGraph v.v 7.3.3 Thí dụ (Pending) 7.4 Kết luận (Pending) 155 7.5 Bài tập (Pending) 156 Tài liệu tham khảo [1] John S Carson II, Barry L Nelson, Discrete-Event System Simulation, Jerry Banks, Prentice Hall 1996 [2] Richard Blum, Network Performance Open Source Toolkit Using Netperf, tcptrace, NIST Net, and SSFNet, Wiley Publishing 2003 [3] Raj Jain, The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation and Modeling, John Wiley and Sons 1991 [4] Kannan Varadhan, Kevin Fall, NS Manual, http://www.isi.edu/nsnam/ns/nsdocumentation.html [5] http://www.isi.edu/nsnam/ns/ [6] Marc Greis, NS Tutorial, http://www.isi.edu/nsnam/ns/tutorial/index.html [7] Eintan Altman, Tania Jiménez, NS for Beginners, sop.inria.fr/maestro/personnel/Eitan.Altman/COURS-NS/n3.pdf http://www- [8] http://www.opnet.com [9] http://ptolemy.eecs.berkeley.edu/ptolemyII/index.htm [10] http://www.omnetpp.org/ [11] http://www.inrialpes.fr/planete/people/ernst/Documents/simulator.html [12] http://www.topology.org/soft/sim.html [13] Kishor Shridharbhai Trivedi, Probability and Statistics with Reliability, Queuing, and Computer Science Applications, Wiley-Interscience, 2001 [14] Donald Gross, Carl M Harris, Fundamentals of Queueing Theory, WileyInterscience,1998 [15] Dimitri Bertsekas, Robert Gallager, Data Networks, Prentice-Hall International Editions, 1987 [16] Andrew S Tanenbaum, Computer Networks, Prentice-Hall, 2003 [17] Joseph L Hammond, Peter J.P.O' Reilly, Performance Analysis of Local Computer Networks, Addison-Wesley, 1988 [18] Jeremiah F Hayes, Thimma V J Ganesh Babu, Modeling and Analysis of Telecommunications Networks, Wiley-Interscience, 2004 [19] Gunter Bolch, Stefan Greiner, Hermann de Meer, Kishor S Trivedi, Queuing Networks and Markov Chains, Modeling and Performance Evaluation with Computer Science Evaluation, John Wiley and Sons, 1998 Rudolf Avenhaus, Quantitative Modelle für Rechen- und Kommunikationssysteme, Universität der Bundeswehr München, 2000 [20] 157 158 159