Hiệu năng mạng là một vấn đề phức tạp do các yếu tố có thể tổng hợp đưa ra nhằm đánh giá vấn đề hiệu năng chưa thực sự rõ ràng. Đã có nhiều khái niệm, tham số được đưa ra nhằm minh chứng cho bản chất của vấn đề hiệu năng, lý giải cho việc truyền thông tin hiệu quả hay kém hiệu quả giữa các hệ thống trong mạng. Tuy nhiên, trong thực tế rất cần có những khái niệm bản chất và sát thực tiễn với mục tiêu đánh giá được toàn bộ vấn đề hiệu năng bao gồm cả các yếu tố đo đạc, theo dõi, điều khiển đều được tính đến.
75 trang |
Chia sẻ: haohao89 | Lượt xem: 4297 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Tổng quan đánh giá hiệu năng mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 1. TỔNG QUAN ĐÁNH GIÁ HIỆU NĂNG MẠNG
Khái niệm hiệu năng mạng
Hiệu năng mạng là một vấn đề phức tạp do các yếu tố có thể tổng hợp đưa ra nhằm đánh giá vấn đề hiệu năng chưa thực sự rõ ràng. Đã có nhiều khái niệm, tham số được đưa ra nhằm minh chứng cho bản chất của vấn đề hiệu năng, lý giải cho việc truyền thông tin hiệu quả hay kém hiệu quả giữa các hệ thống trong mạng. Tuy nhiên, trong thực tế rất cần có những khái niệm bản chất và sát thực tiễn với mục tiêu đánh giá được toàn bộ vấn đề hiệu năng bao gồm cả các yếu tố đo đạc, theo dõi, điều khiển đều được tính đến. Có thể sơ lược khái niệm hiệu năng mạng như sau: Hiệu năng mạng là hiệu quả và năng lực hoạt động của hệ thống mạng. Như vậy, việc đánh giá hiệu năng mạng chính là tính toán và xác định hiệu quả, năng lực thực sự của hệ thống mạng trong các điều kiện khác nhau.
Các điều kiện được sử dụng trong đánh giá hiệu năng là rất quan trọng, chúng ảnh hưởng trực tiếp tới các kết quả thu được. Trong các điều kiện ảnh hưởng tới quá trình đánh giá hiệu năng thì kịch bản mô tả là yếu tố then chốt quyết định giá trị hiệu năng tại điểm cần đo. Trong kịch bản cần xác định các tham số đầu vào rõ ràng như các nút tham gia hệ thống, thiết bị kết nối, tác nhân tham gia, giao thức hoạt động, ứng dụng triển khai, thời gian thực hiện,.. và rất nhiều yếu tố khác kết hợp tạo ra một kịch bản hoàn thiện.
Các phương pháp đánh giá hiệu năng
Phương pháp toán học
Việc sử dụng các phương pháp toán trong tính toán hiệu năng mạng đã được thực hiện từ lâu, trong đó các công cụ toán học đã được sử dụng rất linh hoạt và đa dạng như xác suất thống kê, đồ thị, quy hoạch, luồng,... để giải quyết nhiều vấn đề trong hiệu năng. Ưu điểm chính của phương pháp toán học là có thể xác định các ngưỡng giá trị của hệ thống qua việc xác định mối tương quan giữa các yếu tố trước khi tồn tại hệ thống. Nhưng khi áp dụng trong thực tế, việc mô tả đầy đủ các yếu tố đầu vào cho bài toán là cực kỳ khó khăn do vậy kết quả của phương pháp này còn nhiều hạn chế.
Phương pháp đo thực tế
Sau khi hệ thống mạng đã được xây dựng, đây là một hệ thống tổng thể kết nối của các thiết bị với những công nghệ khác nhau do vậy việc đo đạc để đưa ra kết quả từ mô hình thật là rất quan trọng. Khi thực hiện đo thực tế, người đo phải dựng ra được các kịch bản cần đo từ đó tạo ra những điều kiện giống với kịch bản thực tế và sử dụng các công cụ đo như phần mềm, thiết bị đo để thu nhận các kết quả thực tế từ hoạt động của hệ thống theo kịch bản. Thông thường với phương pháp đo thực tế cho chúng ta kết quả với độ chính xác rất cao, tuy nhiên việc đầu tư quá lớn trước khi biết kết quả hoạt động nhiều khi gây ra sự lãng phí vì vậy giải pháp đo thực tế chỉ được sử dụng để giám sát hoạt động mạng. Để đo được giá trị hiệu năng, quan trọng nhất là lấy thông tin chính xác về hệ thống. Hiện nay phổ biến có 3 phương pháp lấy thông tin sau:
Truy vấn các nút mạng để lấy trực tiếp thông tin đang lưu trữ.
Theo dõi luồng thông tin thực tế trên hệ thống.
Xây dựng kịch bản với dữ liệu thử nghiệm để đo hệ thống.
Phương pháp mô phỏng
Để giảm sai số của phương pháp toán học, giảm chi phí đầu tư cho hệ thống trước khi đo trong thực tế, phương pháp mô phỏng đã được sử dụng. Việc mô phỏng hệ thống đòi hỏi phải mô tả chính xác, chân thực tính năng, kỹ thuật, yếu tố ràng buộc giữa các nhân tố tham gia và ảnh hưởng tới hệ thống trong thực tế khi xây dựng. Như vậy, để kết quả chính xác đòi hỏi công tác mô tả kịch bản phải rất chuẩn xác. Trong khuôn khổ môn học, chúng ta sẽ đi sâu vào tìm hiểu và áp dụng phương pháp mô phỏng vào đánh giá hiệu năng mạng. Có hai phương pháp chính được sử dụng trong mô phỏng hệ thống mạng là mô phỏng thời gian thực và mô phỏng rời rạc. Để mô phỏng theo thời gian thực là rất khó do vậy phương pháp phổ biến hiện nay là mô phỏng rời rạc tức là các sự kiện được xác định rõ ràng và có thời điểm mô tả trên trục thời gian.
Các tham số đánh giá hiệu năng
Để lượng hóa vấn đề hiệu năng mạng, cần thiết phải có bộ tham số tiêu biểu đặc trưng cho vấn đề này. Trong đó, 5 tham số sau đây được sử dụng như những khái niệm điển hình mà nhìn vào chúng có thể cho thấy kết quả của đánh giá hiệu năng mạng.
Tính sẵn sàng (Availability)
Tính sẵn sàng là thước đo đầu tiên khi xác định và đánh giá hiện trạng mạng có khả năng phục vụ, đáp ứng yêu cầu hay không. Tham số này cho phép chỉ ra luồng thông tin có đang được chuyển tiếp qua hệ thống mạng hay bị tắc nghẽn cần phải xử lý, các dịch vụ mạng đang được cung cấp có sẵn sàng cho việc trả lời các yêu cầu đưa ra. Vấn đề liên thông giữa các hệ thống trong mạng cũng được đề cập trong tính sẵn sàng.
Một trong các công cụ, phương pháp đơn giản thường được sử dụng khi kiểm tra tính sẵn sàng của hệ thống mạng là sử dụng chương trình ping. Chương trình khi thực hiện sẽ gửi các gói tin dưới giao thức ICMP tới phía máy cần kiểm tra và đợi kết quả trả lời, nếu có kết quả trả lời chúng ta có thể xác định được tính sẵn sàng của hệ thống đích
Hình 1.1 Kiểm tra tính sẵn sàng với chương trình ping
Trong ví dụ trên, yêu cầu gửi đi đã có kết quả đáp ứng, trong một số trường hợp và tình huống thực tế việc mất gói tin thường xuyên xảy ra, điều nay có thể do nhiều nguyên nhân khác nhau, trong đó có một số nguyên nhân điển hình sau:
Xung đột xảy ra giữa các phân đoạn mạng: Các giao thức điều khiển truy cập đóng vai trò quan trọng trong quá trình kiểm soát xung đột, việc lựa chọn giao thức phù hợp ảnh hưởng lớn tới xử lý các gói tin khi hệ thống gặp vấn đề.
Các gói tin bị hủy bởi các thiết bị mạng: Mỗi thiết bị đều có những bộ đệm nhằm lưu trữ những gói tin chưa kịp xử lý. Để kiểm soát bộ đệm, thông thường các thiết bị sẽ sử dụng một số giải thuật nhằm duy trì trật tự của bộ đệm như giải thuật DropTail, RED, DDR,... trong các giải thuật này luôn tồn tại phương án hủy gói tin khi thỏa mãn điều kiện hủy nhằm duy trì hoạt động tốt nhất cho thiết bị, tránh tắc nghẽn và quá thời gian xử lý.
Hình 1.2 Hiện tượng hủy gói tin trên bộ đệm của thiết bị
Thời gian đáp ứng (Response time)
Khi yêu cầu được gửi tới, sẽ có một khoảng thời gian dành cho việc xử lý trước khi trả về kết quả, khoảng thời gian này được gọi là thời gian đáp ứng, bao gồm thời gian đi, thời gian xử lý yêu cầu và thời gian về. Đây là tham số rất quan trọng ảnh hưởng tới quá trình đánh giá khả năng giải quyết vấn đề khi có yêu cầu và hạ tầng truyền thông. Thời gian đáp ứng chậm thường do khả năng giải quyết vấn đề của ứng dụng, hạn chế trong truyền và nhận thông tin trên giao thức và hạ tầng truyền thông tin. Có thể chỉ ra một số các yếu tố ảnh hưởng trực tiếp tới thời gian đáp ứng như sau:
Quá tải trong các phân đoạn mạng
Các lỗi xuất hiện trên mạng
Khiếm khuyết khi mở rộng mạng
Xử lý các thông tin quảng bá trên mạng chưa tốt
Thiết bị mạng kém chất lượng
Quá tải trên các nút mạng
Trong hình 1.1 khi sử dụng chương trình ping cho chúng ta kết quả như sau:
64 bytes from 192.168.1.100: icmp_seq=0 ttl=255 time=0.712 ms
Thời gian đáp ứng được đo bằng milli giây (ms). Thông thường với các kết nối mạng LAN thì thời gian đáp ứng nhỏ hơn 1 hoặc 2 milli giây, với các kết nối mạng WAN thời gian đáp ứng có thể lên tới 200 hoặc 300 milli giây là chấp nhận được, giá trị cụ thể tùy thuộc vào tốc độ đường truyền giữa các hệ thống.
Trong minh họa trên, thời gian đáp ứng trung bình khi sử dụng chương trình ping đã được xác định
round-trip min/avg/max/stddev = 2.940/2.992/3.133/0.060 ms
Khả năng sử dụng mạng (Network utilization)
Khi hệ thống mạng hoạt động, việc đánh giá khả năng sử dụng mạng là yếu tố quan trọng khi cần đánh giá hiệu năng mạng. Hệ thống mạng có thể hoạt động ở trạng thái bình thường trong đa số thời gian, tuy nhiên trong thực tế thì hệ thống có thể chưa hoạt động hết công suất và khả năng, như vậy phần dư thừa khi xây dựng mạng chưa tính đến cũng là yếu tố giảm đi hiệu năng của hệ thống. Để tính tham số khả năng sử dụng mạng, thông thường công thức chính được sử dụng là phần trăm thời gian sử dụng mạng trong suốt thời gian hoạt động mạng. Trong rất nhiều tình huống, có những thời điểm hệ thống sử dụng 100% công suất nhưng có những thời điểm là về 0% cho trạng thái không có yêu cầu. Để tăng tính chính xác khi xác định khả năng sử dụng mạng, việc tính toán lưu lượng dữ liệu được truyền qua hệ thống trong tổng thời gian hoạt động đã được sử dụng. Giá trị cụ thể khi tính toán còn phụ thuộc nhiều vào phương thức truyền trên các kết nối được sử dụng tại các giao diện mạng. Ví dụ ở chế độ truyền bán song công (Half duplex) chỉ có dữ liệu một chiều tại một thời điểm và như vậy việc tính khả năng sử dụng mạng liên quan tới tỷ lệ tổng lượng vào ra trong suốt thời gian trên khả năng của thiết bị tại thời điểm đo. Công thức tính khả năng sử dụng mạng như sau:
NU = 100*(DS + DR) / (TP * ST)
NU (Network Ultilization): Khả năng sử dụng mạng, được đo bằng tỉ lệ phần trăm
DS (Data send): Lượng dữ liệu được gửi đi trong thực tế
DR (Data receive): Lượng dữ liệu nhận về trong thực tế
TP (Throughput): Thông lượng cho phép của kết nối
ST (Sample Time): Thời gian hoạt động.
Ví dụ: Với thông lượng cho phép 10MB ở chế độ kết nối bán song công, thực hiện đo trong thời gian 5 giây, lượng dữ liệu gửi đi là 700,000 bytes và dữ liệu nhận về là 175,000 bytes, chúng ta có
NU = 100*8(700,000 + 175,000) / (10*1024*1024 * 5) = 14%
Trong ví dụ trên, việc tính toán khả năng sử dụng mạng tại một nút có thể được thực hiện rất đơn giản, tuy nhiên trong trường hợp cần tính toán khả năng sử udngj mạng giữa 2 hay nhiều nút thì độ phức tạp của bài toán đã khác biệt. Bạn phải tính khả năng sử dụng mạng trên từng phân đoạn mạng trong toàn bộ kết nối cần đo, áp dụng các phương pháp toán học, thống kê,... trong việc xác định và lựa chọn công thức phù hợp cho từng trường hợp. Nhưng trong trường hợp này, thông thường người ta không tính toán thông số khả năng sử dụng mạng mà xác định giá trị thông lượng mạng tại 2 điểm cần đo.
Thông lượng mạng (Network throughput)
Về bản chất, khả năng sử dụng mạng chính là tỉ lệ làm việc thực tế của hệ thống còn thông lượng mạng là tổng lượng dữ liệu chuyển tiếp qua các nút cần đo trong một thời điểm xác định.
Người quản trị hệ thống mạng có thể xác định thông lượng mạng bằng phương pháp tìm nút cổ chai giữa 2 điểm cần đo. Đồng thời, trong một số tình huống nhiều người sẽ khẳng định thông lượng của hai điểm sẽ được xác định bằng giá trị băng thông (Bandwidth) tại 2 điểm đó. Những điểm nêu trên là hoàn toàn không chính xác bởi 2 lý do chính sau đây:
Giá trị băng thông không phụ thuộc vào thời gian đo và đây là khái niệm khác hoàn toàn với thông lượng.
Thông lượng thực tế phụ thuộc rất nhiều vào tổng thể kết nối, thiết bị sử dụng, ứng dụng hoạt động, dịch vụ cung cấp của hệ thống tại thời điểm cần đo.
Hình 1.3 Độ phức tạp khi xác định thông lượng giữa client và server
Khả năng của băng thông mạng (Network bandwidth capacity)
Khả năng của băng thông là một trong những yếu tố để xác định thông lượng mạng trong thời điểm cần đo. Tổng dung lượng băng thông có khả năng giữa hai nút mạng sẽ ảnh hưởng lớn tới hiệu năng của mạng điều này là khá hiển nhiên, khi ta kết nối mạng 100BaseTX thì đương nhiên luôn nhanh hơn với kết nối T1. Tuy nhiên việc xác định khẳ năng của băng thông giữa 2 điểm cần đo thường rất phức tạp do tổng thể kết nối của hệ thống tác động (mô tả tại hình 1.3), do vậy đòi hỏi phải có kỹ thuật cụ thể trong việc xác định giá trị lớn nhất trong khả năng của băng thông mạng khi hoạt động. Có 2 kỹ thuật chính được sử dụng để xác định khả năng băng thông đó là kỹ thuật packet pair/packet train và kỹ thuật thống kê gói tin.
.
Hình 1.4 Minh họa kỹ thuật packet pair/packet train
Phần mềm đánh giá hiệu năng
Ns2
Đây là phần mềm mô phỏng mạng được phát triển từ đại học California Berkeley nhằm thay thế cho phương pháp đo đạc trên hệ thống thực. Ns2 là gói phần mềm mô phỏng theo phương pháp rời rạc, đây là phần mềm tổng thể có sự tham gia của ngôn ngữ C++, Tcl, oTcl. Hiện tại số lượng các module đã được xây dựng trong gói phần mềm Ns2 là rất lớn như nam, ns, xgraph, awk,
SSFNet
SSFNet ứng dụng bộ công cụ phát triển SSF (Scalable Simulation Framework), đây là ngôn ngữ mô phỏng tương đối chuẩn, có khả năng triển khai mô hình hóa mô phỏng của nhiều yếu tố mạng, lưu lượng mạng. Ngoài SSFNet sử dụng trong SSF để mô phỏng mạng còn có phần mềm DaSSF (Dartmouth SSF). Cả hai gói trên đều có thể triển khai mô hình mạng khi mô phỏng các mạng cỡ lớn. Gói DaSSF sử dụng ngôn ngữ C++ để mô phỏng thiết bị, kết nối, sự kiện. Gói SSFNet sử dụng ngôn ngữ Java.
Một số phần mềm
Ngoài hai phần mềm bên trên, còn có nhiều phần mềm mô phỏng mạng, viễn thông, vệ tinh, giao thức như OPNET, OmNet++, Packet Tracer.... Tuy nhiên mỗi phần mềm thường tập trung riêng biệt cho các đối tượng sử dụng cụ thể và chạy trên hệ điều hành đã xác định do vậy chúng đều có những hạn chế nhất định. Để đáp ứng nhu cầu mô phỏng hệ thống trên các cấp độ khác nhau thì phần mềm NS2 được đánh giá là hàng đầu bởi tính mở cũng như khả năng chuyên sâu của hệ thống.
CHƯƠNG 2. CÔNG CỤ MÔ PHỎNG MẠNG - NS2
Tổng Quan NS2
NS (Network Simulator) là phần mềm mô phỏng mạng theo phương thức điều khiển sự kiện rời rạc và hướng đối tượng. Được phát triển tại đại học California Berkeley, viết bằng ngôn ngữ C++ và OTcl, Tcl. NS rất hữu ích cho việc mô phỏng mạng diện rộng (WAN) và mạng nội bộ (LAN), ngoài ra NS còn có khả năng mô phỏng rất nhiều lĩnh vực như mạng thông tin di động, thông tin vệ tinh,... Khi sử dụng NS chúng ta có thể thực hiện được một số khả năng sau:
Khả năng kiểm tra tính ổn định của các giao thức mạng
Khả năng đánh giá các giao thức mới trước khi đưa vào sử dụng
Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể triển khai được trong thực tế
Khả năng mô phỏng nhiều loại mạng khác nhau
Đã có nhiều phiên bản NS khác nhau nhưng hiện nay phổ biến là phiên bản Ns2 có thể cài đặt và hoạt động cả trên Windows32 và Linux.
Một số lớp trong môi trường NS2
TclObject
Lớp TclObject là lớp cơ sở đối cho hầu hết các lớp khác trong trình thông dịch và trình biên dịch phân cấp. Mỗi đối tượng trong lớp TclObject được tạo ra bởi người dùng từ bên trong trình thông dịch. Một đối tượng bóng (shadow object) tương đương được tạo ra trong trình biên dịch phân cấp. Hai đối tượng có quan hệ chặt chẽ với nhau. Lớp TclClass bao gồm các cơ chế dùng để thực thi đối tượng bóng (shadow) này.
Điểm khác biệt với NS v1: lớp TclObject được đưa vào sớm hơn lớp NsObject. Vì thế nó lưu trữ giao diện các kết nối thay đổi, kết nối các đặc tính khác nhau trong các đối tượng thông dịch sao cho phù hợp với các biến thành viên của đối tượng biên dịch. Quá trình kết nối mạnh hơn trong NS v1 vì bất kỳ sự thay đổi nào liên quan đến các biến của OTcl đều được giữ lại, và các giá trị hiện tại của C++ và OTcl đều được nhất quán sau mỗi truy suất trong trình thông dịch. Sự nhất quán được thực hiện thông qua lớp InstVar. Và cũng không giống NS v1, các đối tượng trong lớp TclObject không lưu trữ dài như trong một danh sách liên kết chung. Thay vì vậy, chúng được lưu trữ trong bảng phân cấp (hash table) bên trong lớp Tcl.
Minh họa cấu hình của một đối tượng TclObject: Ví dụ sau đây minh họa cho quá trình cấu hình một tác nhân SRM (lớp Agent/SRM/Adaptive).
set srm [new Agent/SRM/Adaptive]
$srm set packetSize_ 1024
$srm traffic-source $s0
Quy ước trong NS, lớp Agent/SRM/Adaptive là lớp con của Agent/SRM, Agent/SRM là lớp con của Agent, Agent là lớp con của TclObject. Tương ứng với lớp biên dịch phân cấp là ASRMAgent, là lớp con của SRMAgent, SRMAgent là lớp con của Agent, Agent là lớp con của TclObject.
Dòng lệnh đầu tiên cho biết cách một đối tượng TclObject được tạo ra (hay hủy bỏ).
Dòng lệnh thứ hai cấu hình một biến giới hạn (bound variable).
Dòng lệnh cuối cùng trình bày quá trình đối tượng thông dịch gọi phương thức C++ khi chúng đã là một thủ tục đặc tính (instance).
TclClass
Lớp biên dịch này (TclClass) là một lớp ảo hòan tòan. Các lớp này xuất phát từ lớp cơ sở cung cấp hai chức năng sau:
Tạo cấu trúc cho lớp trình trình thông dịch phân cấp để phản ánh lớp biên dịch phân cấp.
Cung cấp các phương thức để minh họa đối tượng TclObject mới.
Mỗi lớp con đó có quan hệ chặt chẽ với môt lớp biên dịch đặc biệt trong lớp biên dịch phân cấp, và có thể minh họa cho các đối tượng mới trong các lớp kết hợp (associated).
Ví dụ, xem xét lớp RenoTcpClass. Nó là xuất phát từ lớp TclClass, và được có quan hệ chặt chẽ với lớp RenoTcpClass. Nó sẽ minh họa cho các đối tượng mới trong lớp RenoTcpAgent. Lớp biên dịch phân cấp của RenoTcpAgent là lớp xuất phát từ TcpAgent, mà là lớp xuất phát từ Agent, mà là lớp xuất phát TlcObject. RenoTcpClass được định nghĩa như sau:
static class RenoTcpClass: public TclClass {
public:
RenoTcpClass() : TclClass("Agent/TCP/Reno") {}
TclObject* create(int argc, const char*const* argv) {
return (new RenoTcpAgent());
}
} class_reno;
Chúng ta có thể theo dõi từ những định nghĩa sau:
Lớp chỉ xác định một quá trình tạo cấu trúc, và một phương thức thêm vào, để tạo ra các đặc tính cho các đối tượng liên kết TclObject.
NS sẽ tiến hành tạo cấu trúc cho RenoTcpClass với biến tĩnh class_reno vào lúc bắt đầu. Nó sẽ cài đặt các phương thức và lớp thông dịch phân cấp phù hợp.
Quá trình tạo cấu trúc ghi rõ lớp thông dịch như Agent/TCP/Reno. Điều này cũng được chỉ định rõ trong lớp thông dịch phân cấp.
Quá trình tạo cấu trúc trong lớp TclClass tạo ra 3 lớp, Agent/TCP/Reno là lớp con của Agent/TCP, là lớp con của lớp Agent là lớp con của lớp TclObject.
Nhớ rằng quy ước trong NS sử dụng ký hiệu “/”để phân tách. Ví dụ, A/B/C/D là lớp con của A/B/C, A/B/C là lớp con của A/B, ….
Lớp này liên kết chặt chẽ với lớp RenoTcpAgent; nó tạo ra các đối tượng mới trong lớp liên kết này.
Phương thức The RenoTcpClass::create trả về đối tượng TclObjects trong lớp RenoTcpAgent.
Khi người sử dụng ghi rõ new Agent/TCP/Reno, thủ tục RenoTcpClass::create đựơc gọi.
Các đối số vector (argv) gồm có:
argv[0] lưu trữ tên của đối tượng.
s argv[1...3] lưu trữ $self, $class, and $proc. Vì create được gọi thông qua thủ tục đặc tính create-shadow
argv[3] lưu trữ create-shadow.
argv[4] lưu trữ bất kỳ đối số được thêm vào (đưa vào một chuỗi) cung cấp bởi người sử dụng.
Lớp Trace minh hoạ các đối số điều khiển bởi các phương thức TclClass
class TraceClass : public TclClass {
public:
TraceClass() : TclClass("Trace") {}
TclObject* create(int args, const char*const* argv) {
if (args >= 5)
return (new Trace(*argv[4]));
else
return NULL;
}
} trace_class;
Một đối tượng Trace mới được tạo như sau:
new Trace “X”
Cuối cùng, thực chất của vấn đế là làm thế nào để lớp thông dịch phân cấp được cấu trúc hóa:
1. Quá trình tạo cấu trúc đối tượng được thực thi khi NS bắt đầu.
2. Quá trình tạo cấu trúc này gọi quá trình tạo cấu trúc lớp TclClass với tên của lớp thông dịch như đối số của nó.
3. Cấu trúc của lớp Tcl lưu trữ tên của lớp, và thêm đối tượng này vào trong một danh sách liên kết của các đối tượng TclClass.
4. Trong suốt quá trình khởi tạo của trình mô phỏng, Tcl_AppInit(void) gọi TclClass::bind(void)
5. Đối với mỗi đối tượng trong danh sác các đối tượng TclClass, bind() gọi register{}, ghi rõ tên của lớp thông dịch như đối số của nó.
6. register{} thiết lập lớp phân cấp, quá trình tạo lớp được yêu cầu và chưa được tạo.
7. Cuối cùng, bind() xác định các thủ tục đặc tính (instance) create-shadow và delete-shadow cho lớp mới này.
TclCommand
Lớp này cung cấp cơ chế để NS đưa các lệnh đơn giản đến trình thông dịch, sau đó có thể được thi bên trong một ngữ cảnh chung (context) bởi trình thông dịch.
EmbeddedTcl
NS cho phép phát triển các chức năng ở trong mã trình biên dịch hay thông qua mã thông dịch, điều đó được xác định tại quá trình khởi tạo.
InstVar
Phần này mô tả các phần bên trong lớp InstVar. Lớp này định nghĩa các phương thức và các cơ chế để kết nối một biến thành viên C++ trong đối tượng của trình biên dịch shadow đến biến đặc tả OTcl trong đối tượng tương đương của trình thông dịch. Quá trình kết nối được cài đặt sao cho giá trị của biến có thể đư