Kỹ thuật mô phỏng và ứng dụng trong đào tạo, nghiên cứu viễn thông

6 836 5
Kỹ thuật mô phỏng và ứng dụng trong đào tạo, nghiên cứu viễn thông

Đang tải... (xem toàn văn)

Thông tin tài liệu

Kỹ thuật mô phỏng và ứng dụng trong đào tạo, nghiên cứu viễn thông

Trang 1

KỸ THUẬT MÔ PHỎNG VÀ

ỨNG DỤNG TRONG ĐÀO TẠO, NGHIÊN CỨU VIỄN THÔNG

Simulation and Applications in Reseaching and Training Telecommunicatons

ThS Nguyễn Xuân Hoàng, Khoa Viễn Thông 1, Học viện công nghệ Bưu chính Viễn thông Tóm tắt: Trong những năm gần đây, trên 50% các nghiên cứu được công bố trên các tạp chí

viễn thông là kết quả của mô phỏng Điều đó nói lên tầm quan trọng và mức độ ứng dụng rộng rãi của mô phỏng trong nghiên cứu về viễn thông Mô phỏng cho phép đánh giá được hiệu năng của một hệ thống mạng với các điều kiện, cấu hình khác nhau trong trường hợp các phương pháp đánh giá trực tiếp trên các hệ thống thật hoặc qua phân tích tính toán bằng toán học không khả thi Đặc biệt, trong môi trường đào tạo hiện nay, mô phỏng là một lựa chọn tốt cho quá trình tìm hiểu hoạt động của các hệ thống cũng như nghiên cứu thử nghiệm các hệ thống, các giao thức mạng mới Tuy nhiên, để có thể thực hiện mô phỏng hiệu quả, chính xác và đáng tin cậy là điều không hề dễ dàng Bài báo này sẽ trình bày tổng quan về kỹ thuật mô phỏng, các vấn đề đặt ra trong quá trình thực hiện mô phỏng Sau đó các phần mềm mô phỏng thông dụng sẽ được xem xét và đánh giá ứng dụng của chúng trong nghiên cứu, đào tạo về viễn thông

1 Giới thiệu chung

Trong quá trình nghiên cứu, thiết kế một mạng viễn thông, hoặc đánh giá hiệu quả của việc áp dụng một giao thức, một công nghệ mới trên mạng viễn thông sẵn có, có thể sử dụng phương pháp phân tích bằng các mô hình toán học, hoặc thử nghiệm trực tiếp trên hệ thống thực Tuy nhiên, đối với các hệ thống phức tạp, việc phân tích bằng các mô hình toán nhiều khi không khả thi Việc thử nghiệm trực tiếp trên các hệ thống thực cũng rất khó, hoặc là do đang trong quá trình thiết kế, chưa tồn tại hệ thống thật, hoặc các hệ thống đang hoạt động trên mạng lưới, việc thử nghiệm có thể gây nên những hiệu quả không lường trước được cho toàn mạng Trong các trường hợp đó, sử dụng kỹ thuật mô phỏng là một giải pháp thích hợp nhất Mô phỏng (simulation), nói một cách tổng quát là quá trình thiết kế một mô hình của một hệ thống thật, và thực hiện các thử nghiệm trên mô hình đó nhằm mục đích hiểu được hoạt động và/hoặc đánh giá các cấu hình, tham số khác nhau của hệ thống [1] Mô hình được sử dụng cho mô phỏng được xây dựng bằng phần mềm, là mô hình động, có nghĩa là có bao gồm các tham số ngẫu nhiên thay đổi theo thời gian Nó khác với mô hình tĩnh là mô hình được mô tả bằng các

công thức toán học, không có biến thay đổi theo thời gian

Đối với mạng viễn thông, mô phỏng được sử dụng rất rộng rãi, từ tính toán tắc nghẽn cho các hệ thống tổng đài chuyển mạch kênh, tối ưu về sử dụng tài nguyên cho các mạng gói, đánh giá hiệu quả của một giao thức mới, hoặc so sánh hiệu quả của các phương pháp mã hóa kênh trên một môi trường kênh vô tuyến Đặc biệt trong môi trường đào tạo, thông qua mô phỏng, người học sẽ hiểu được rất sâu về hoạt động của một hệ thống cũng như sự liên kết hoạt động của các phần tử, các giao thức trong một hệ thống

Bài báo này sẽ có cấu trúc như sau Phần 2 sẽ trình bày về các bước trong mô phỏng một hệ thống và các vấn đề cần quan tâm Phần 3 sẽ đánh giá các công cụ mô phỏng được sử dụng phổ biển cho viễn thông hiện nay Phần 4 sẽ là kết luận

2 Tổng quan về ký thuật mô phỏng

Như đã đề cập ở trên, mục đích cuối cùng của mô phỏng là giúp đánh giá hiệu năng của một hệ thống thông qua một mô hình của hệ thống đó Trước hết, ta xem xét mối liên

quan giữa các khái niệm hệ thống (system), mô hình (model) và mô phỏng

2.1 Hệ thống, mô hình và mô phỏng

Trang 2

Hệ thống được định nghĩa là một tập hợp các phần tử có mối quan hệ với nhau, tương tác với nhau để thực hiện một công việc, chức năng nào đó Tùy thuộc vào mục đích cần nghiên cứu về hệ thống là gì mà các phần tử của hệ thống có thể khác nhau Ví dụ như khi muốn so sánh hiệu năng (BER chẳng hạn) khi áp dụng các kỹ thuật mã hóa kênh khác nhau trên kênh vô tuyến thì ta không cần quan tâm đến kênh vô tuyến đó mang giao thức gì, mà chỉ cần quan tâm đến đặc tính của bản thân kênh truyền Ta định nghĩa trạng thái của một hệ thống là tập hợp các biến cần thiết để mô tả hệ thống tại một thời điểm nhất định, có liên quan đến các đối tượng cần nghiên cứu của hệ thống Ví dụ như trong nghiên cứu tắc nghẽn trên một kênh trung kế của tổng đài thì các trạng thái của hệ thống là số kênh trung kế còn rỗi, thời gian đến của các cuộc gọi từ khách hàng

Hình 1: Các phương thức nghiên cứu một hệ thống

Có 2 loại hệ thống là liên tục và rời rạc Hệ

thống liên tục là hệ thống có các biến trạng thái thay đổi liên tục theo thời gian Ví dụ như biến về nhiễu trên kênh truyền Hệ thống rời rạc là hệ thống có các biến trạng thái chỉ thay đổi tại các thời điểm rời rạc về mặt thời gian Ví dụ của loại này là hệ thống tổng đài ta nói tới ở trên, trạng thái của hệ thống chỉ thay đổi khi có cuộc gọi mới từ khách hàng ra trung kế hoặc một cuộc gọi qua trung kế được giải phóng Hệ thống rời rạc là loại

được sử dụng phổ biến trong mô phỏng về mạng viễn thông

Để nghiên cứu, đánh giá một hệ thống, có các cách tiếp cận như trên hình vẽ 1.

2.1.1 Thử nghiệm trên hệ thống thực và thử nghiệm trên mô hình của hệ thống: Về

nguyên tắc, có thể thực hiện các thí nghiệm trực tiếp trên các hệ thống thực Tuy nhiên, có 2 khó khăn đối với phương pháp này là nó có thể gây hậu quả nghiêm trọng đến hệ thống thực, nhất là các hệ thống viễn thông liên quan đến thông tin quan trọng, liên quan đến cước…hoặc trong một số trường hợp thì hệ thống muốn nghiên cứu chưa hề tồn tại, mà người ta lại muốn nghiên cứu hiệu quả của các hệ thống đề xuất Với các lý do đó, mô hình của hệ thống thực sẽ được xây dựng, và thay vì nghiên cứu trên hệ thống thực thì sẽ nghiên cứu trên mô hình của hệ thống Mô hình của một hệ thống có thể coi là một đối tượng có cấu trúc, chức năng, hoạt động tương tự như hệ thống thật Nó thường chỉ phản ánh các mặt quan trọng nhất của hệ thống, và không nhất thiết phải giống hoàn toàn với hệ thống thật

2.1.2 Mô hình vật lý và mô hình toán học:

Mô hình vật lý ở đây là các loại mô hình như buồng lái máy bay cho phi công tập lái Tuy nhiên loại mô hình này thường không được dùng cho mục đích phân tích, nghiên cứu các hệ thống Mô hình toán học, biểu diễn hệ thống dưới dạng các quan hệ logic Nếu mô hình toán học là chính xác, thì khi tác động vào các quan hệ logic của mô hình, mô hình sẽ đưa đến kết quả như hệ thống thật

2.1.3 Phương pháp phân tích (analytical) và mô phỏng: Sau khi đã xây dựng được

mô hình toán học, chúng ta cần phải xem xét mô hình đó có thể trả lời được các câu hỏi mà ta quan tâm về hệ thống hay không Nếu đó là mô hình đơn giản, có thể dựa trên các mối quan hệ logic của mô hình để đưa đến một kết quả chính xác thông qua phương pháp phân tích, thực ra là thông qua việc giải các phương trình toán học Đây là phương pháp đưa lại kết quả chính xác và ít tốn kém nhất, tuy nhiên trong rất nhiều trường hợp không thể áp dụng được vì nó quá phức tạp, ví dụ như trong trường hợp cần giải bài toán Hệ thống

Thử nghiệm trên hệ thống

thật

Thử nghiệm trên mô hình của hệ thống

Mô hình vật lý

Mô hình toán học

Phương pháp phân

tích

Mô phỏng

Trang 3

cho quá nhiều nút mạng, quá nhiều biến số Trong các trường hợp này, phải sử dụng đến phương pháp mô phỏng Mô hình lúc đó được gọi là mô hình mô phỏng (simulation model) Mô hình mô phỏng được phân ra

làm các loại sau:

+ Mô hình tĩnh và mô hình động: Mô hình

mô phỏng tĩnh là mô hình biểu diễn hệ thống tại một thời điểm nhất định, hay nói cách khác là khi đó thời gian không đóng vai trò gì trong mô hình Ví dụ của loại này là mô hình Monte Carlo Ngược lại, mô hình mô phỏng động biểu diễn hệ thống theo thời gian Mô hình mô phỏng động phức tạp hơn, tuy nhiên cho phép các mô phỏng gồm nhiều quá trình xảy ra đồng thời trong hệ thống

+ Mô hình xác định (deterministic) và mô hình ngẫu nhiên (stochastic): Nếu mô hình

mô phỏng không có thành phần ngẫu nhiên thì nó được gọi là mô hình xác định Mô hình xác định cho phép xác định được kết quả khi biết rõ đầu vào và mô hình Nếu đầu vào của mô hình có bất kỳ môt thành phần ngẫu nhiên, nó được gọi là mô hình ngẫu nhiên (stochastic) Mô hình này cũng cho kết quả là các giá trị ngẫu nhiên Các mô hình xếp hàng trong viễn thông đều là các mô hình ngẫu nhiên

+ Mô hình liên tục và mô hình rời rạc: Cũng

tương tự như đối với định nghĩa của hê thống Thông thường một mô hình của một hệ thống có thể được coi là liên tục hoặc rời rạc tùy thuộc vào các đối tượng cụ thể của hệ thống cần nghiên cứu

Các mô hình mô phỏng được sử dụng trong viễn thông chủ yếu là rời rạc, động, ngẫu

nhiên, và được gọi là các mô hình mô phỏng sự kiện rời rạc (discrete event simulation

2.2.1 Xác định rõ bài toán mô phỏng

Trước khi thực hiện xây dựng mô hình của bất cứ hệ thống nào, cần nắm rõ hoạt động cũng như mối quan hệ bên trong của hệ

thống đó Cũng cần phải xác định rõ các mục tiêu cần đạt được của thực hiện mô phỏng

2.2.2 Xây dựng mô hình

Sau khi xác định rõ được bài toán, bước tiếp theo là xây dựng nên mô hình mô phỏng Bước này chỉ là xây dựng nên các mối quan hệ logic giữa các phần tử trong mô hình, đầu vào và đầu ra của mô hình Cần phải xác định được mô hình cần chi tiết đến mức độ nào, phần nào của hệ thống phải trừu tượng hóa Trong thực tế, không mô hình nào biểu diễn chính xác toàn bộ hoạt động của hệ thống, mà thường sẽ chỉ xấp xỷ chính xác với một số thực thể cần nghiên cứu của hệ thống Hay nói cách khác, ta cần phải đưa các điều kiện ràng buộc ban đầu vào mô hình mô phỏng Ví dụ như khi xây dựng mô hình một kênh vô tuyến, ta chỉ hạn chế là mô hình kênh AWGN thay vì kênh chung chung

2.2.3 Thu thập dữ liệu cho mô hình

Để thực hiện mô phỏng, có thể lấy các dữ liệu cho đầu vào từ các giá trị đầu vào đo được của một hệ thống thật (lấy mẫu), hoặc sử dụng các biến ngẫu nhiên Trong mô phỏng các hệ thống viễn thông, thường sử dụng các biến ngẫu nhiên theo một phân bố nào đó, ví dụ như Poisson Việc tạo nên các con số ngẫu nhiên đầu vào này đóng vai trò rất quan trọng vì thông thường chỉ sử dụng các con số giả ngẫu nhiên, rất dễ lặp lại và dẫn đến kết quả không chính xác Thường gặp nhất là khi mô phỏng các sự kiện ít xảy ra, ví dụ như lỗi bit trên kênh truyền chất lượng tốt, do đó thời gian mô phỏng rất lâu, sử dụng chuỗi các con số ngẫu nhiên rất lớn nên việc lặp lại chuỗi ngẫu nhiên là dễ xảy ra

2.2.3 Biên dịch mô hình

Đây chính là quá trình lập trình, xây dựng nên phần mềm biểu diễn mô hình mô phỏng Có thể sử dụng các ngôn ngữ lập trình bậc cao như C, C++ hoặc sử dụng kết hợp với các công cụ mô phỏng là các phần mềm sẵn có như OPNET, NS-2, OMNET++…để xây dựng nên mô hình

2.2.4 Kiểm tra (verification)

Để đảm bảo quá trình lập trình biên dịch mô hình là chính xác Thực ra bước này giống

Trang 4

như quá trình tìm lỗi (debug), dựa trên các đầu vào khác nhau, dựa trên lưu đồ của mô hình để kiểm tra tính chính xác của quá trình biên dịch mô hình sang chương trình phần mềm Ngoài hậu quả là làm sai kết quả, việc biên dịch không tốt có thể dẫn đến thời gian thực hiện mô phỏng sẽ là rất lâu, không khả thi để thực hiện

2.2.5 Xác minh tính chính xác của mô hình (validation)

Để đảm bảo mô hình đã xây dựng hoạt động giống với hệ thống thật, từ đó có thể tin tưởng vào kết quả của mô phỏng trên mô hình đó Đây là bước rất quan trọng vì các số liệu đạt được từ mô phỏng sẽ không có ý nghĩa gì nếu nó không phản ánh đúng kết quả của hệ thống thật Trong trường hợp đào tạo, khi sinh viên xây dựng các mô hình mô phỏng cho viễn thông, có thể so sánh các kết quả của mô hình với các kết quả từ các mô hình giống với nó đã được công bố trên các tài liệu chuẩn (tạp chí IEEE chẳng hạn) Phương pháp thường dùng hơn là so sánh với dữ liệu lấy được từ hệ thống thật Nếu hệ thống thật cần so sánh chưa tồn tại, có thể đơn giản hóa các điều kiện ràng buộc về tham số đầu vào để có thể so sánh kết quả mô phỏng với kết quả có được thông qua phân tích tính toán (thường là các khoản giới hạn dưới hoặc trên)

2.2.5 Thử nghiệm trên mô hình

Ở bước này cần xác định tập các tham số cần đánh giá trong mỗi lần thử nghiệm Đối với các tham số, cũng cần xác định phạm vi thay đổi cũng như tham số nào cố định, tham số nào thay đổi Mục đích của bước này là thu được càng nhiều thông tin cần thiết mà phải thực hiện càng ít lần chạy mô phỏng càng tốt

2.2.6 Phân tích kết quả thu được

Trong viễn thông, kết quả mô phỏng thường là các tham số như tỷ lệ lỗi bit (BER), tỷ lệ mất gói, độ trễ, xác suất tắc nghẽn…Thông qua mô phỏng, ta có thể có được giá trị thống kê (trung bình, phương sai), phạm vi biến thiên…của các tham số trên Nếu sử dụng các phần mềm mô phỏng như OPNET, OMNET++…, việc phân tích một số kết quả cơ bản đã được tích hợp sẵn Nếu chương trình mô phỏng được xây dựng trên ngôn ngữ lập trình C, C++ , thì từ kết quả thu

được, có thể phải sử dụng thêm các phần mềm như Excel để hỗ trợ vẽ kết quả, đánh giá xu hướng tăng, giảm…Một vấn đề rất cần chú ý trong phần này là xác định mức độ chính xác, ổn định của kết quả Ví dụ như để đảm bảo kết quả BER của một kênh truyền đủ chính xác, cần phải thực hiện đủ một số vòng lặp tối thiểu nào đó

3 Các phần mềm mô phỏng

Như đã đề cập ở phần trước, ngoài việc sử dụng các ngôn ngữ lập trình như C, C++ để xây dựng mô hình mô phỏng thì có thể sử dụng các chương trình phần mềm mô phỏng sẵn có như OPNET, OMNET++, NS-2…để thực hiện mô phỏng Các phần mềm này sẽ đơn giản hóa quá trình mô phỏng nhờ khả năng hỗ trợ quá trình tạo, kiểm tra và chạy các mô hình mô phỏng Nó cũng hỗ trợ công việc đánh giá, phân tích kết quả thu được từ mô phỏng

Các phần mềm mô phỏng phổ biển hiện nay đều thuộc loại hướng đối tượng Ngoài các thư viện modul rất phong phú về các giao thức, thiết bị viễn thông sẵn có thì nó còn cho phép người dùng xây dựng các modul riêng với các giao diện vào ra, có tính kế thừa, phân cấp giữa các modul Người dùng cũng có thể quan sát được kết quả thay đổi của hệ thống thông qua đồ họa Người dùng cũng có thể dễ dàng quy định số lần thực hiện chạy mô phỏng, thời gian chạy mô phỏng và độ chính xác cần thiết

Các yêu cầu đặt ra khi lựa chọn một phần mềm mô phỏng bao gồm khả năng chạy được trên nhiều hệ điều hành, khả năng hỗ trợ tạo topo cho mạng, hỗ trợ tạo lưu lượng đầu vào và phân tích đặc tính của lưu lượng ra, hỗ trợ giám sát các đặc tính của một node mạng, một luồng lưu lượng mạng thông qua giao diện đồ họa Ngoài ra, các yêu cầu quan trọng nữa là có sẵn các module quan trọng như các mô hình kênh cơ bản, các giao thức quan trọng…và các phần mềm mô phỏng phải có các tính năng cho phép mở rộng, sửa đổi các module sẵn có Đối với môi trường đào tạo, một số yêu cầu cần phải để ý thêm là mức độ hỗ trợ về kỹ thuật và tài liệu của phần mềm, phần mềm đó là mở, miễn phí hay là phần mềm thương mại

Trang 5

Hiện nay có khá nhiều phần mềm mô phỏng có thể sử dụng trong mô phỏng mạng viễn thông, tuy nhiên có các phần mềm được trình bày tóm tắt sau đây là phổ biến nhất

Phần mềm OPNET [3]

OPNET (Optimized Network Engineering Tools), là một công cụ mô phỏng thương mại được phát triển bởi OPNET Technologies Inc, dùng để mô hình hóa và mô phỏng các thiết bị, giao thức trong mạng truyền thông Được phát triển cách đây trên 15 năm, nó là một công cụ mô phỏng mạng rất mạnh, được sử dụng bởi rất nhiều trường đại học và công ty lớn trên thế giới OPNET có thể dùng để mô phỏng hầu hết các mạng vô tuyến và hữu tuyến, ngoài ra nó còn cho phép thực hiện các giao thức, mạng…thử nghiệm trên các thành phần mạng sẵn có OPNET cho phép mô phỏng các mạng lên đến hàng trăm nút Một khó khăn duy nhất khi lựa chọn OPNET là phần mềm này không phải là miễn phí Phần mềm NS-2 [4]

NS (Network Simulator), xuất phát từ trường U.C.Berkely, là một phần mềm mô phỏng sự kiện rời rạc, hướng đối tượng, với mục đích để nghiên cứu về mạng, và là miễn phí Phiên bản 2 của NS (NS-2) được sử dụng rộng rãi trong cộng đồng nghiên cứu về mạng và được dùng để thử nghiệm các thuật toán, các giao thức hay các ý tưởng mới về mạng NS-2 rất thích hợp cho mô phỏng các mạng gói và các mạng vô tuyến (adhoc, vệ tinh ) và được sử dụng chủ yếu cho các mô phỏng cỡ nhỏ về các thuật toán định tuyến và xếp hàng, các giao thức truyền tải, điều khiển tắc nghẽn Tuy nhiên, NS-2 có các nhược điểm như khá phức tạp khi muốn mở rộng, sửa đổi các module sẵn có Ngoài ra, NS-2 cũng không hoạt động tốt khi kích cỡ mạng lớn và tốc độ mô phỏng của NS-2 cũng khá chậm so với các phần mềm khác NS-2 cũng hỗ trợ về đồ họa kém hơn so với các phần mềm mô phỏng như OPNET và OMNET++

Phần mềm OMNET++ [5]

OMNET++ (Objective Modular Network Testbed in C++), là một phần mềm mô phỏng sự kiện rời rạc, hướng đối tượng, dựa

trên mã nguồn mở và miễn phí Nó có thể sử dụng để mô phỏng lưu lượng trên các mạng viễn thông, các giao thức, và rộng hơn là bất kỳ một hệ thống sự kiện rời rạc Một điểm khác so với 2 phần mềm mô phỏng trên là OMNET++ được thiết kế ban đầu không phải cho mạng viễn thông mà là với mục tiêu rộng hơn Ngoài ra, so với phần mềm thương mại như OPNET thì thư viện các mô hình sẵn có của OMNET++ cũng ít hơn Tuy nhiên, hiện nay OMNET++ cũng đã có rất nhiều mô hình quan trọng như MPLS, Ipv6…Các ưu điểm khác của OMNET++ bao gồm khả năng hỗ trợ về đồ họa, cấu trúc hướng đối tượng nên dễ dàng thay đổi, mở rộng các mô hình, và cho phép thực hiện mô phỏng song song Khả năng mở rộng mạng và tốc độ mô phỏng của OMNET++ cũng rất tốt Nhược điểm đáng kể của OMNET++ hiện nay là các mô hình có sẵn chưa đầy đủ, và dẫn đến khó khăn khi mô phỏng một số mô hình mạng

4 Kết luận

Bài báo đã đưa ra được một cái nhìn tổng quan về kỹ thuật mô phỏng, các quá trình và các vấn đề cần quan tâm khi mô phỏng một hệ thống, đặc biệt là hệ thống mạng viễn thông Để áp dụng mô phỏng hiệu quả hơn trong nghiên cứu, đào tạo về viễn thông, phần 2 của bài báo đã trình bày một số nhận xét cơ bản về các phần mềm được sử dụng phổ biến Rõ ràng là nếu nắm vững lý thuyết về mô phỏng và sử dụng thành thạo các phần mềm mô phỏng trên, có thể giúp nắm vững hơn hoạt động của các hệ thống viễn thông, cũng như cho phép hoạt động nghiên cứu, thiết kế các giao thức mới, các cấu hình mới cả mạng viễn thông hiệu quả hơn rất nhiều Tài liệu tham khảo

[1] A.M Law và W.D Kelton, “ Simulation, Modelling and Analysis”, Third Edition, Mc Graw Hill, 2000

[2]Holger Karl, bài giảng “ A brief introduction to discrete event simulation”, 2005

[3] www.opnet.com

[4] http://www.isi.edu/nsnam/ns/[5] http://www.omnetpp.org/

Trang 6

Sơ lược về tác giả

Nguyễn Xuân Hoàng tốt nghiệp khoa Điện tử Viễn thông, ĐHBK Hà nội năm 1999, tốt nghiệp cao học ngành Viễn thông tại Học Viện Công nghệ Châu Á (AIT, Thái Lan) năm 2002 Hiện nay tác giả đang công tác tại

Khoa Viễn thông 1, Học Viện Công Nghệ Bưu Chính Viễn Thông Các hướng nghiên cứu của tác giả bao gồm mạng băng rộng, IP QoS, truyền thông đa phương tiện

Email: hoangptit@gmail.com

Ngày đăng: 08/10/2012, 11:43

Hình ảnh liên quan

Hình 1: Các phương thức nghiên cứu một hệ thống  - Kỹ thuật mô phỏng và ứng dụng trong đào tạo, nghiên cứu viễn thông

Hình 1.

Các phương thức nghiên cứu một hệ thống Xem tại trang 2 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan