Hoàng Đăng Hải Học Viên: Lê Đăng Phong [1-22] Vũ Anh Tuấn



tải về 0.59 Mb.
trang1/19
Chuyển đổi dữ liệu13.08.2016
Kích0.59 Mb.
  1   2   3   4   5   6   7   8   9   ...   19


1
HỌC VIỆN CÔNG NGHỆ VIỄN THÔNG

KHOA QUAN HỆ QUỐC TẾ VÀ ĐÀO TẠO SAU ĐẠI HỌC




TIỂU LUẬN MÔN HỌC
IP – ỨNG DỤNG VÀ BẢO MẬT

Thầy hướng dẫn: Hoàng Đăng Hải

Học Viên: Lê Đăng Phong [1-22]

Vũ Anh Tuấn [23-44]

Nguyễn Việt Thắng [45-66]

Đinh Hải Đăng [67-hết]
. Giới thiệu về công cụ mô phỏng mạng NS 4

1.1 Tổng quan 4

1.2. Bộ định trình sự kiện 5

1.3. Các thành phần mạng 6

1.4. Gói dữ liệu 8

2. Giao tiếp với bộ thông dịch: Liên kết OTcl 8

2.1 Các khái niệm 8

2.2 Tổng quan về mã lệnh 9

2.3 Lớp Tcl 9

2.3.1 Lấy tham chiếu tới instance của lớp Tcl 9

2.3.2 Gọi các hàm OTcl 9

2.3.3 Gửi và nhận kết quả từ bộ thông dịch 10

2.3.4 Thông báo lỗi và thoát. 10

2.3.5 Các hàm băm trong bộ thông dịch 10

2.4 Lớp TclObject 10

2.4.1 Tạo và hủy đối tượng TclObject 10

2.4.2 Kết hợp biến 10

2.4.3 Theo dõi giá trị biến 10

2.4.4 Hàm command: định nghĩa và cách gọi 10

2.5 Lớp TclClass 11

2.5.1 Kết hợp các biến thành viên tĩnh của lớp C++ 11

2.6 Lớp TclCommand 11

2.7 Lớp EmbeddedTcl 11

2.8 Lớp InstVar 11

3. Lớp Simlator 12

3.1 Khởi tạo bộ mô phỏng 12

3.2. Bộ định trình và sự kiện 12

3.2.1 Bộ định trình danh sách 13

3.2.2. Bộ định trình xếp đống 14

3.2.3 Bộ định trình xếp hàng theo lịch 14

3.2.4 Bộ định trình thời gian thực 14

3.3 Các phương thức khác 14

3.4. Lướt qua về các lệnh 15

4. Các nút và chuyển gói 16

4.1 Các cách thức của bộ mô phỏng: Tạo kiến trúc mạng 16

4.2 Các cách thức của nút: đặt cấu hình nút 18

4.3 Cấu hình nút về mặt chức năng 20

4.3.1 Giao diện cấu hình nút 20

4.4 Bộ phân lớp 22

4.4.1 Bộ phân lớp địa chỉ 25

4.4.2 Bộ phân lớp đa hướng 25

4.4.3 Bộ phân lớp đa đường 27

4.4.4 Bộ phân lớp băm 27

4.4.5 Bộ tạo bản sao 29

4.5 Module định tuyến và sự tổ chức bộ phân lớp 30

4.5.1 Module định tuyến 31

4.5.2 Giao diện nút 32

4.6 Xem qua một vài lệnh 34

5. Các liên kết: Các liên kết đơn 35

5.1. Thủ tục cho Links và SimpleLinks 37

5.2. Các Connector 38

5.3 Phân cấp đối tượng. 39



6. Quản lý hàng đợi và định trình gói. 40

6.1. Lớp Queue trong C++ 41

6.1.1 Khóa hàng đợi 41

6.1.2. Lớp PacketQueue 43

6.2. Ví dụ: Loại bỏ phần cuối (Drop Tail) 44

6.3 Các kiểu khác nhau của đối tượng Queue 45



7. Trễ và các tuyến liên kết 51

7.1 Lớp LinkDelay 51



8.Các dịch vụ trong ns. 53

8.1. Tổng quan 53

8.2 Sự thi hành (Implementation) 54

8.2.1 Hàng đợi RED cho Diffserv 54

8.3 Cấu hình 56

9. Agents 56

9.1. Trạng thái Agent 56

9.2. Các phương thức của Agent 57

9.3. Protocol Agents 57

9.4. Liên kết trong OTcl 58

9.4.1 Tạo và sửa đổi các Agent 59

9.4.2. Các giá trị mặc định 59

9.4.3. Các phương thức trong OTcl 59

9.5. Ví dụ: Các agent Tcp, TCPSink 59

9.5.1. Tạo Agent 59

9.5.2. Khởi động Agent 61

9.5.3. Xử lý đầu vào ở bộ thu 62

9.5.4. Xử lý đáp ứng ở bên gửi 63

9.5.5. Các bộ định thời 64

9.6. Tạo một agent mới 64

9.6.1. Ví dụ: Yêu cầu “ping” (Cấu trúc kế thừa) 64

9.6.2. Các phương thức recv() và timeout() 65

9.6.3. Liên kết agent “ping” với OTcl 66

9.6.4. Sử dụng agent nhờ OTcl 67

9.7. Agent API 68

9.8. Các đối tượng agent khác 68

9.9. Các lệnh cơ bản 68



10. Các bộ định thời 69

10.1. Lớp cơ sở trong C++ TimerHandler 69

10.1.1. Định nghĩa một bộ định thời mới 70

10.1.2. Ví dụ: Bộ định thời truyền lại TCP 70

10.2. Lớp định thời trong OTcl 73

10.3. Một số lệnh cơ bản 74



11. Header gói và các định dạng 74

11.1. Header gói cho một giao thức cụ thể 74

11.1.1. Thêm một kiểu header gói mới 76

11.1.2. Lựa chọn các header gói trong bộ mô phỏng 77

11.2. Các lớp gói 77

11.2.1. Lớp Packet 78

11.2.2. Lớp p_info 80

11.2.3. Lớp hdr_cmn 81

11.2.4. Lớp PacketHeaderManager 82

11.3. Các lệnh cơ bản 83




1. Giới thiệu về công cụ mô phỏng mạng NS

1.1 Tổng quan


NS là bộ công cụ mô phỏng mạng điều khiển theo các sự kiện rời rạc, được xây dựng và phát triển bởi trường đại học Berkeley – Mỹ, cho phép mô phỏng nhiều kiểu mạng IP khác nhau, mô phỏng các giao thức mạng: TCP, UDP cũng như các dạng nguồn lưu lượng: FTP, Telnet, Web, CBR, VBR, mô phỏng các hàng đợi trong các bộ định tuyến: DropTail, RED, CBQ, mô phỏng các giải thuật định tuyến. Ngoài ra NS còn cho phép thực hiện việc phát đa luồng và một số giao thức lớp MAC đối với mô phỏng LAN.

NS được xây dựng bằng ngôn ngữ lập trình hệ thống C++ và ngôn ngữ mô phỏng OTcl. Otcl là dạng ngôn ngữ kịch bản Tcl được mở rộng theo mô hình hướng đối tượng.

Hình 1: NS theo quan điểm người dùng

Theo quan điểm người dùng thuần túy, NS là một bộ thông dịch các kịch bản Tcl hướng đối tượng. NS gồm có các bộ định trình các sự kiện mô phỏng, các thư viện đối tượng thành phần mạng, thư viện các môdule tạo lập mạng (thực tế việc kết nối các module được thực hiện bằng các hàm thành viên của các đối tượng mô phỏng cơ bản).

Khi sử dụng NS, người dùng phải lập trình bằng ngôn ngữ kịch bản Tcl. Để tạo lập và triển khai một mạng mô phỏng, người dùng viết một kịch bản Tcl để khởi tạo một bộ định trình sự kiện, thiết lập topo mạng thông qua việc sử dụng các đối tượng thành phần mạng và các hành liên kết trong các thư viện của NS. Việc thiết lập một mạng là ghép nối các đường dữ liệu giữa các đối tượng mạng bằng cách đặt con trỏ của một đối tượng này tới địa chỉ của một đối tượng khác tương ứng. Khi muốn tạo một đối tượng mạng mới, thì người dùng có thể tạo ra đối tượng đó bằng cách xây dựng một đối tượng mới hoặc tổ hợp các đối tượng có sẵn trong các thư viện đối tượng của NS và tạo ra các đường liên kết dữ liệu giữa chúng.

Một thành phần quan trọng của NS (bên cạnh các đối tượng mạng) là bộ định trình sự kiện. Một sự kiện trong NS là một mã nhận dạng gói, mã này là duy nhất đối với một gói, sự kiện được định thời và gắn với một con trỏ trỏ đến đối tượng sẽ xử lý sự kiện đó. Trong NS, bộ định trình sự kiện giám sát toàn bộ thời gian mô phỏng, quản lý và kích hoạt các sự kiện theo một hàng đợi. Khi một sự kiện được kích hoạt, bộ định trình sẽ gọi tới thành phần đối tượng mạng xử lý tương ứng (thường cũng là đối tượng tạo ra sự kiện đó), cho phép đối tượng này thực hiện các tác vụ thích hợp lên gói gắn với sự kiện. Các thành phần đối tượng mạng truyền thông với nhau bằng cách trao đổi các gói. Về nguyên tắc, tất cả các thành phần mạng luôn cần phải có một khoảng thời gian nhất định để xử lý gói (trễ). Trễ này được thể hiện thông qua việc sử dụng các bộ định trình sự kiện: gửi đi một sự kiện gắn với gói và chờ sự kiện đó được kích hoạt trở lại trước khi xử lý các gói tiếp theo. Ví dụ: một thành phần mạng mô phỏng một thiết bị chuyển mạch gói với 20 ms trễ, nó sẽ gửi đi một sự kiện trễ 20 ms gắn với gói cần phải chuyển mạch tới bộ định trình sự kiện, bộ định trình sau 20 ms sẽ đưa sự kiện đó ra khỏi hàng đội và kích hoạt nó trở lại thành phần mạng chuyển mạch, thành phần chuyển mạch sẽ thực hiện việc chuyển gói tương ứng tới đối tượng liên kết đầu ra của nó.

Một ứng dụng nữa của bộ định trình sự kiện là tạo ra các bộ định thời. VD: giao thức TCP cần bộ định thời để giám sát thời gian chờ khi phát đi một gói nhằm thực hiện việc phát lại gói. Khi đó, bộ định thời sử dụng bộ định trình tương tự như trong trường hợp giả lập trễ, sự khác biệt duy nhất là bộ định thời đo giá trị thời gian gắn với một gói, thực hiện các tác vụ liên quan đến gói đó sau một khoảng thời gian nhất định trôi qua mà không thực hiện việc mô phỏng trễ.

NS được viết bằng hai ngôn ngữ OTcl và C++. Để đảm bảo tính hiệu quả NS phân chia đường dữ liệu và đường điều khiển riêng biệt. Để giảm thời gian chương trình xử lý các sự kiện và gói (thời gian này không phải thời gian mô phỏng),thì bộ định trình sự kiện và các đối tượng mạng cơ bản trong đường dữ liệu được viết và biên dịch bằng ngôn ngữ C++. Các đối tượng sau biên dịch vẫn có thể được sử dụng bởi bộ thông dịch Otcl thông qua các liên kết Otcl, các liên kết này tạo ra đối tượng OTcl tương ứng cho mỗi đối tượng C++, cũng như tạo ra các hàm và các biến thành viên trong đối tượng Otcl tương ứng với các biến và hàm thành viên trong đối tượng C++. Bằng cách này việc điều khiển các đối tượng C++ có thể được thực hiện thông quan OTcl, ngoài ra ta cũng có thể thêm các biến và hàm thành viên khác vào đối tượng OTcl. Các đối tượng được viết bằng C++ mà không cần thiết phải điều khiển trực tiếp trong quá trình mô phỏng cũng không cần phải liên kết sang OTcl.

Mặt khác một đối tượng không nằm trên đường số liệu có thể được xây dựng hoàn toàn bằng OTcl. Hình 2 minh họa một cây phân cấp đối tượng trong C++ và OTcl.

Hình 2: Sự tương đồng giữa C++ và OTcl

Hình 3: Mô hình kiến trúc của NS

Hình 3 chỉ ra kiến trúc chung của công cụ mô phỏng NS. Trong hình vẽ này, người sử dụng thiết kế, triển khai các mô phỏng bằng các câu lệnh Tcl, sử dụng các đối tượng mô phỏng từ thư viện Otcl, các bộ định trình sự kiện và phần lớn các đối tượng mạng được xây dựng bằng C++, và các đối tượng này vẫn có thể được sử dụng như là các đối tượng Otcl thông qua các liên kết. Toàn bộ các thành phần trong hình 3, kết hợp lại tạo nên một bộ công cụ mô phỏng mạng NS, là một bộ thông dịch Tcl được mở rộng hướng đối tượng và một tập các thư viện đối tượng mô phỏng mạng.

Các kết quả đạt được sau khi kết thúc quá trình mô phỏng, như trong hình vẽ 1, là tập một hoặc nhiều file kết quả đầu ra dưới dạng văn bản text, chứa các dữ liệu mô phỏng chi tiết. Các số liệu này có để được dùng để phân tích mô phỏng hoặc dùng làm đầu vào cho các công cụ trình diễn mô phỏng mạng dạng đồ họa: Nam, Xgraph...

Nam (Network Animator) có dạng giao diện tương tự như một công cụ chơi CD, cho phép hiển thị thông tin dạng đồ hoạ như: thông lượng, số gói bị loại bỏ trên mỗi link ...


: Hoc%20Tap -> Cong%20Nghe%20Wan
Hoc%20Tap -> Point to Point Protocol (ppp) ppp được xây dựng dựa trên nền tảng giao thức điều khiển truyền dữ liệu lớp cao (High-Level Data link Control (hdlc)) nó định ra các chuẩn cho việc truyền dữ liệu các giao diện dte và dce của mạng wan như V
Hoc%20Tap -> Cấu hình Application Port-Mapping với cbac mục tiêu: Cấu hình để router nhận ra các ứng dụng không sử dụng port chuẩn. Mô hình
Hoc%20Tap -> ĐẢng cộng sản việt nam đẢng ủy phưỜng 04
Hoc%20Tap -> CiR = Bc / Tc
Hoc%20Tap -> Mean command : ip ospf mtu-ignore Diagram : Problems
Hoc%20Tap -> R1# ip route 0 0 0 0 FastEthernet0/0 R2# show run
Cong%20Nghe%20Wan -> Câu hỏi về kết nối chi nhánh về Head Office dùng wan
Cong%20Nghe%20Wan -> 1/ Cáp đồng gshdsl
Cong%20Nghe%20Wan -> 1. xu hưỚng chuẩn hoá VÀ CẤu trúc giao thứC


  1   2   3   4   5   6   7   8   9   ...   19


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2019
được sử dụng cho việc quản lý

    Quê hương