OPNET làmột công cụ phần mềm mạnh được sử dụng để mô phỏng mạng, đã được các nhànghiên cứu khoa học trên thế giới đánh giá cao và những kết quả mô phỏng bằngOPNET đã được công nhận trên
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Nguyễn Mai Phương
Hoàng Thu Thủy
Nguyễn Thị Tưởng
Lớp: D08VT2
Hà Nội, ngày 26 tháng 4 năm 2011
Trang 2Mục Lục
I Giới thiệu phần mềm OPNET: 1
1 Giới thiệu OPNET: 1
2 Cách cài đặt OPNET 14.5: 2
3 Hướng dẫn sử dụng OPNET 14.5: 3
3.1 Các bước cần thiết để xây dựng một bài toán mô phỏng: 3
3.2 Cách thiết lập một Project mới: 3
3.2 Môi trường Project Editor: 5
II Mô phỏng bằng OPNET 14.5: 8
1 Bài toán mô phỏng ICMP: 8
1.1 Tìm hiểu giao thức ICMP: 8
1.1.1 Thông báo lỗi (error-reporting): 8
1.1.2 Truy vấn (query): 9
1.2 Xây dựng bài toán mô phỏng ICMP: 9
2 Bài toán mô phỏng UDP: 9
2.1 Tìm hiểu giao thức UDP: 9
2.1.1 Cổng UDP: 10
2.1.2 Định dạng UDP datagram: 10
2.1.3 Hoạt động của giao thức UDP: 11
2.1.4 Ưu điểm của UDP: 11
2.1.5 Nhược điểm của UDP : 11
2.1.6 Khi nào nên sử dụng UDP: 11
2.2 Xây dựng bài toán mô phỏng UDP: 12
3 Bài toán mô phỏng TCP: 12
3.1 Tìm hiểu giao thức TCP: 12
3.1.1 Cổng TCP: 12
3.1.2 Phân đoạn TCP: 13
3.1.3 Ưu điểm của TCP: 14
3.1.4 Sự khác nhau giữa hai giao thức TCP và UDP: 15
3.2 Xây dựng bài toán mô phỏng TCP: 15
Trang 3I Giới thiệu phần mềm OPNET:
1 Giới thiệu OPNET:
Phần mềm Opnet được phát triển bởi công ty OPNET Technologies, Inc OPNET làmột công cụ phần mềm mạnh được sử dụng để mô phỏng mạng, đã được các nhànghiên cứu khoa học trên thế giới đánh giá cao và những kết quả mô phỏng bằngOPNET đã được công nhận trên nhiều tờ báo cũng như diễn đàn công nghệ thế giới.OPNET chứa một lượng thư viện rất lớn về các mô hình mạng, mô hình node, mô hìnhliên kết, bao trùm từ mạng hữu tuyến cho tới mạng vô tuyến, với rất nhiều các giao thứcmạng sẵn có OPNET được thiết kế với cơ sở dữ liệu phân lớp và hướng đối tượng, dựatrên nền tảng bộ ngôn ngữ lập trình C/C++, tuy vậy OPNET lại có giao diện GUI, tạođiều kiện tương tác dễ dàng hơn cho việc sử dụng để nghiên cứu và mô phỏng mạng Ngoài việc mô phỏng mạng và các giao thức của mạng, OPNET còn cung cấp cho tanhiều công cụ cho phép phân tích hiệu suất, tính toán đường đi, khởi tạo lưu lượng, sosánh bằng đồ thị,… vô cùng linh hoạt, từ đó giúp ta không những chỉ tạo lập các hệthống mạng mà còn giúp ta đánh giá hoạt động của các hệ thống mạng đó
Trang 4Trong đó file (1) là file chạy của chương trình, file (2) là tài liệu đính kèm, file
(3) là thư viện của opnet
Chạy file OPNET.Modeler.14.5.License.Maker-FFS.exe để tạo license Sau khichạy xong sẽ có 1 file:
Sau khi cài đặt xong, khởi động OPNET trong menu Start và lựa chọn tất cả cácmodul
3 Hướng dẫn sử dụng OPNET 14.5:
3.1 Các bước cần thiết để xây dựng một bài toán mô phỏng:
Trình tự xử lý (các bước cần thiết để xây dựng một mô hình mạng và chạy các môphỏng) tập trung quanh môi trường Project Editor
Chạy (các)
mô phỏn g
Xem
và phân tích (các) kết quả
Trang 53.2 Cách thiết lập một Project mới:
Khởi động chương trình Opnet Modeler 14.5 Chọn FileNew để tạo một
thực hiện công cụ Startup Wizard để kiến tạo một scenario mới Công cụ Startup
Wizard cho phép:
+ Xác định hình trạng (topology) khởi đầu của mạng
+ Xác định quy mô, kích thước của mạng
+ Chọn lựa bản đồ nền cho mạng
+ Liên kết thư viện phần từ (Object palette) với scenario.
Trang 6Startup Wizard sẽ tự động xuất hiện mỗi khi một project mới được khởi tạo.Công cụ này cho phép chúng ta xác định một số các đặc tính của môi trường thiết kếmạng
Các tham số trong hộp khai báo Startup Wizard:
Tên hộp khai báo Giá trị
1 Initial Topology Chọn giá trị mặc định Creat Empty
Scenario
2 Choose Network Scale Chọn quy mô (Logical, Office,
Campus, World )
3 Specify Size Không thực hiện đối với Logical
(thường cho Office, Campus…)
4 Select Technologies Lựa chọn các công nghệ sử dụng
trong bài mô phỏng
5 Review Kiểm tra lại các tham số đã thiết lập
trước đó → OK
3.2 Môi trường Project Editor:
Môi trường Project Editor là vùng thao tác chính để thực hiện mô phỏng
Cửa sổ Project Editor: có các vùng chức năng tương tác với các thủ tục khởi tạo
và chạy mô phỏng mô hình mạng Các vùng chức năng này được minh họa ở hình dưới
Một mô hình mạng trên cửa sổ Project Editor
Trang 7Thanh thực đơn: nằm ở phía trên cùng cửa sổ thiết kế Thanh này gồm các thựcđơn theo chủ đề trong đó chứa các lệnh Số thực đơn và số các lệnh trong mỗi thực đơnthay đổi tùy theo số modul được gọi vào mô hình Các lệnh phụ thuộc tình huống có thểđược chọn khi nhấp phải chuột lên đối tượng hoặc lên không gian thiết kế.
Các nút công cụ: Một số chức năng thường dùng trên thanh thực đơn có thể được kích hoạt nhờ các nút công cụ được minh họa dưới đây:
1 Mở thư viện Object Palette
2 Kiểm tra kết nối
3 Đánh lỗi đối tượng chọn
4 Khôi phục đối tượng chọn
5 Trở về phân mạng bậc cao hơn
Trang 8Không gian thiết kế: Là phần không gian nằm giữa cửa sổ Editor, chứa các biểutượng của mô hình mạng Có thể chọn, xê dịch các biểu tượng, chọn các lệnh phụ thuộctình huống khi nhấp phải chuột lên phông nền của không gian thiết kế.
Vùng thông báo: nằm ở vị trí dưới cùng của cửa sổ Editor Nó cung cấp thôngtin về trạng thái công cụ
Để xem thông tin về tiến trình làm việc, nhấp trái chuột lên biểu tượng bên cạnhvùng thông báo Cửa sổ mới mở sẽ liệt kê các thông báo đã xuất hiện trong vùngthông báo Các thông tin này trợ giúp, hướng dẫn người dùng trong quá trình xây dựng
mô hình mô phỏng
Bấm vào nút Open Object Palette để thêm các mô hình mạng:
Cửa sổ Object Palette Tree
Trang 9II Mô phỏng bằng OPNET 14.5:
1 Bài toán mô phỏng ICMP:
1.1 Tìm hiểu giao thức ICMP:
Giao thức ICMP (Internet Control Message Protocol - giao thức thông báo điềukhiển liên mạng) là một giao thức hoạt động trên lớp 2 - Internetwork trong mô hìnhTCP/IP hoặc lớp 3 - Network trong mô hình OSI
ICMP cho phép kiểm tra và xác định lỗi của Lớp 2 - Internetwork trong mô hìnhTCP/IP bằng cách định nghĩa ra các loại thông điệp có thể sử dụng để xác định xemmạng hiện tại có thể truyền được gói tin hay không Nó được đi kèm với giao thức IP.Trong thực tế, ICMP cần các thành phần của mọi gói tin IP để có thể hoạt động được Các bản tin ICMP được chia làm 2 loại: thông báo lỗi (error-reporting) và truy vấn(query):
Thông báo lỗi là thông báo những sự cố mà bộ định tuyến hoặc trạm đích có thểgặp phải khi xử lý IP datagram
Truy vấn giúp một trạm hoặc một người quản lý mạng lấy các thông tin cụ thể
về 1 bộ định tuyến hoặc một trạm khác
1.1.1 Thông báo lỗi (error-reporting):
Nhiệm vụ chính của ICMP là thông báo các lỗi xảy ra do nguồn ICMP không thựchiện sửa lỗi mà nó chỉ thông báo lỗi Các thông báo lỗi điển hình:
Destination unreachable: Khi một bộ định tuyến không thể định tuyến một
datagram hoặc một trạm không thể chuyển phát một datagram, datagram đó sẽ bị bỏ đi
và bộ định tuyến hoặc trạm đích gửi thông báo lỗi destination unreachable cho trạm
nguồn
Source quench: được thiết kế để bổ xung cho IP chức năng điều khiển luồng.
Khi bộ định tuyến hoặc trạm loại bỏ gói do có tắc nghẽn chúng gửi một thông báo
source quench tới trạm nguồn Thông báo này có hai mục đích:
+ Thứ nhất, nó thông báo cho trạm nguồn biết datagram đã bị bỏ.
+ Thứ hai, nó cảnh báo trạm nguồn về tắc nghẽn và trạm nguồn cần giảm tốc
độ gửi
Time exceeded: được gửi trong hai trường hợp:
+ Khi bộ định tuyến nhận được một datagram có trường thời gian sống bằng 0 + Khi trong một khoảng thời gian nhất định trạm đích không nhận được tất cảcác mảnh của một datagram
Parameter problem: Sự không rõ ràng trong phần tiêu đề của một datagram có
thể gây lên các vấn đề nghiêm trọng khi datagram di chuyển trong liên mạng Nếu một
Trang 10bộ định tuyến hoặc trạm đích nhận thấy có sự không rõ ràng hoặc thiếu một giá trị nào
đó trong phần tiêu đề , chúng sẽ loại bỏ gói và gửi thông báo Parameter problem cho
trạm nguồn
1.1.2 Truy vấn (query):
Ngoài thông báo lỗi ICMP cũng cho phép chuẩn đoán một số sự cố trên mạng Điềunày được thực hiện thông qua các thông báo truy vấn
Echo Request, Echo Reply: Hai thông báo này được thiết kế cho các mục đích
chẩn đoán Người quản lý mạng hoặc người dùng sử dụng cặp thông báo này để nhậndiện các sự cố mạng Kết hợp hai thông báo này cho biết hai hệ thống có thể liên lạcđược với nhau không Lệnh ping sủ dụng cặp thông báo truy vấn này
Timestamp Request, Timestamp Reply: Hai máy (trạm hoặc bộ đinh tuyến)
có thể sử dụng Timestamp Request và Timestamp Reply để xác đinh thời gian một
vòng đi giữa chúng Nó cũng được sử dụng để đồng bộ đồng hồ giữa hai máy
Mask Request, Mask Reply: Một trạm có thể biết địa chỉ IP của mình nhưng
lại không biết mặt nạ đi kèm với địa chỉ IP này Để lấy được mặt nạ , trạm gửi thông
báo Mask Request tới một bộ định tuyến trên mạng LAN Khi bộ định tuyến nhận được thông báo Mask Request, nó đáp lại bằng thông báo Mask Reply Thông báo trả lời này
cung cấp mặt nạ cho trạm
Router Solicilation và Router Advertisement: Đôi khi một trạm cần biết các
bộ định tuyến có tồn tại và hoạt động không Thông báo Router Solicilation và Router
Advertisement có thể trợ giúp yêu cầu này Trạm có thể gửi quảng bá một Router Solicilation Bộ định tuyến nhận được thông báo sẽ quảng bá thông tin định tuyến của
chúng sử dụng thông báo Router Advertisement Bộ định tuyến có thể gửi định kì các thông báo Router Advertisement.
1.2 Xây dựng bài toán mô phỏng ICMP:
2 Bài toán mô phỏng UDP:
2.1 Tìm hiểu giao thức UDP:
UDP (User Datagram Protocol – Giao thức dữ liệu người sử dụng) là một giao thứctruyền thông phi kết nối và không tin cậy, được dùng thay thế cho TCP ở trên IP theoyêu cầu của ứng dụng UDP có trách nhiệm truyền các thông báo từ tiến trình-tới-tiếntrình, nhưng không cung cấp các cơ chế giám sát và quản lý UDP cũng cung cấp cơchế gán và quản lý các số cổng để định danh duy nhất cho các ứng dụng chạy trên mộttrạm của mạng Do ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn sovới TCP Nó thường được dùng cho các ứng dụng không đòi hỏi độ tin cậy cao tronggiao vận
Trang 1167 Bootps Cổng máy chủ để tải thông tin khởi động
68 Bootpc Cổng máy khách để tải thông tin khởi động
69 TFTP Giao thức truyền tệp thông thường
161 SNMP Giao thức quản lý mạng đơn giản
Trang 12Cổng nguồn (Source Port – 16bit): xác định số cổng của chương trình ứng dụnggửi.
Cổng đích (Destination Port – 16bit): xác định số cổng của chương trình ứngdụng nhận
Độ dài tổng (Message length – 16bit): Xác định độ dài tổng (cả tiêu đề và dữliệu) của UDP datagram
Tổng kiểm tra (Checksum – 16bit): Chứa mã kiểm tra lỗi (theo phương phápCRC) cho toàn bộ phân đoạn (cả tiêu đề và dữ liệu)
2.1.3 Hoạt động của giao thức UDP:
Khi một ứng dụng dựa trên giao thức UDP gửi dữ liệu tới một host khác trên mạng,UDP thêm vào một header có độ dài 8 byte chứa các số hiệu cổng nguồn và đích, cùngvới tổng chiều dài dữ liệu và thông tin checksum IP thêm vào header của riêng nó vàođầu mỗi datagram UDP để tạo lên một datagram IP
2.1.4 Ưu điểm của UDP:
UDP là giao thức phi kết nối, vì thế không cần phải thiết lập liên kết UDP tránhđược thời gian trễ nên DNS thường sử dụng giao thức UDP hơn là TCP
Tốc độ: UDP nhanh hơn so với TCP nên nhiều ứng dụng thường được cài đặttrên giao thức UDP
Hỗ trợ các kiểu kiến trúc mạng (Topology) UDP hỗ trợ các liên kết 1-1, 1-n;TCP chỉ hỗ trợ liên kết 1-1
Kích thước header: UDP chỉ có 8 byte header cho mỗi đoạn, ngược lại TCP cầncác header 20 byte, vì vậy sử dụng băng thông ít hơn
2.1.5 Nhược điểm của UDP :
Thiếu các tín hiệu bắt tay: Trước khi gửi một đoạn, UDP không gửi các tín hiệubắt tay giữa bên gửi và bên nhận Vì thế phía gửi không có cách nào để biết datagram
đã đến đích hay chưa Do vậy, UDP không đảm bảo việc dữ liệu đã đến đích hay chưa
UDP không hỗ trợ bất kỳ phiên nào
Không tin cậy: UDP không đảm bảo rằng chỉ có một bản sao dữ liệu tới đích
Để gửi dữ liệu tới các hệ thống cuối, UDP phân chia dữ liệu thành các đoạn nhỏ UDPkhông đảm bảo rằng các đoạn này sẽ đến đích đúng thứ tự như chúng đã được tạo ra ởnguồn
Bảo mật: TCP có tính bảo mật cao hơn UDP
UDP thiếu cơ chế kiểm soát luồng, kết quả là một ứng dụng UDP được thiết kếtồi có thể làm giảm băng thông của mạng
2.1.6 Khi nào nên sử dụng UDP:
Dựa trên các ưu và nhược điểm của UDP, chúng ta có thể kết luận UDP có ích khi:
Trang 13Sử dụng cho các phương thức truyền broadcasting và multicasting khi chúng ta muốn truyền tin với nhiều host.
Kích thước datagram nhỏ và trình tự đoạn là không quan trọng
Không cần thiết lập liên kết
Ứng dụng không gửi các dữ liệu quan trọng
Không cần truyền lại các gói tin
Băng thông của mạng đóng vai trò quan trọng
2.2 Xây dựng bài toán mô phỏng UDP:
3 Bài toán mô phỏng TCP:
3.1 Tìm hiểu giao thức TCP:
TCP (Transmission Control Protocol - Giao thức điều khiển truyền dẫn) là một giaothức hướng kết nối và đáng tin cậy Nó có trách nhiệm thiết lập một kết nối với phíanhận, chia luồng dữ liệu thành các đơn vị có thể vận chuyển, đánh số chúng và sau đógửi chúng lần lượt
TCP sử dụng cổng để tạo truyền thông tiến trình–tới–tiến trình; sử dụng giao thứccửa sổ trượt để thực hiện điều khiển luồng; sử dụng gói xác nhận, thời gian chờ vàtruyền lại để thực hiện điều khiển lỗi
Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy vàđúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (như dịch vụ Web vàdịch vụ thư điện tử ) đồng thời chạy trên cùng một máy chủ TCP hỗ trợ nhiều giaothức ứng dụng phổ biến nhất trên Internet và các ứng dụng kết quả, trong đó có WWW,thư điện tử và Secure Shell
3.1.1 Cổng TCP:
Mặc dù có nhiều cách để thực hiện truyền thông tiến trình-tới-tiến trình, nhưng cáchthông dụng nhất là thực hiện thông qua mô hình khách-chủ (client-server) Chươngtrình khách tự xác định nó bằng một số cổng được chọn ngẫu nhiên Chương trình chủcũng phải tự xác định bằng một số cổng, tuy nhiên cổng này không thể được chọn ngẫunhiên TCP/IP đã chọn cách sử dụng các số cổng thong dụng cho các ứng dụng chủ Các số cổng được chia thành ba vùng sau:
Các cổng thông dụng: 0 đến 1023
Các cổng đăng ký: 1024 đến 49151
Các cổng động: 49152 đến 65535
Trang 14TCP có các cổng thông dụng sau:
Cổng Giao thức Mô tả
20 FTP, data Giao thức truyền tệp (kết nối dữ liệu)
21 FTP, control Giao thức truyền tệp (kết nối điều khiển)
3.1.2 Phân đoạn TCP:
Đơn vị dữ liệu truyền giữa hai thiết bị sử dụng TCP được gọi là phân đoạn(segment) Phân đoạn TCP gồm một phần tiêu đề có chiều dài từ 20byte đến 60byte,theo sau là dữ liệu từ chương trình ứng dụng Tiêu đề có chiều dài 20byte nếu nó khôngchứa tùy chọn và có chiều dài tối đa 60byte nếu nó chứa các tùy chọn
Cấu trúc tiêu đề TCP
Source Port (16 bit): xác định số cổng của chương trình ứng dụng gửi
Destination Port (16 bit): xác định số cổng của chương trình ứng dụng nhận.Sequence Number (32 bit): xác định số được gán cho byte dữ liệu đầu tiên chứatrong phân đoạn
Trang 15Acknowledgment Number (32 bit): xác định số hiệu byte của mà trạm gửi phânđoạn đang chờ để nhận.
Data offset (4 bit): số lượng bội của 32 bit (32 bit words) trong TCP header(tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu)
Reserved (6 bit): dành để dùng trong tương lai
Control bit (các bit điều khiển):
+ URG: Vùng con trỏ khẩn (Ucgent Poiter) có hiệu lực
+ ACK: Vùng báo nhận (ACK number) có hiệu lực
+ PSH: Chức năng PUSH
+ RST: Khởi động lại (reset) liên kết
+ SYN: Đồng bộ hóa số hiệu tuần tự (sequence number)
+ FIN: Không còn dữ liệu từ trạm nguồn
Window (16 bit): xác định kích thước của cửa sổ (tính theo byte) mà phía kiaphải duy trì
Checksum (16 bit): chứa mã kiểm tra lỗi (theo phương pháp CRC) cho toàn bộphân đoạn (cả tiêu đề và dữ liệu)
Urgemt Poiter (16 bit): xác định số phải cộng với số trình tự để lấy được số hiệucủa byte khẩn cuối cùng trong phần dữ liệu Vùng này chỉ có hiệu lực khi bit URG đượcthiết lập
Options (độ dài thay đổi): chứa các thông tin tùy chọn, có chiều dài tối đa 40byte.Paddinh (độ dài thay đổi): phần chèn thêm vào header để đảm bảo phần headerluôn kết thúc ở một mốc 32 bit Phần thêm này gồm toàn số 0
TCP data (độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối đa ngầm định
là 536 byte Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options
3.1.3 Ưu điểm của TCP:
TCP giải quyết nhiều vấn đề nhằm cung cấp một dòng dữ liệu đáng tin cậy như:
Dữ liệu đến đích đúng thứ tự
Sửa lỗi dữ liệu ở mức tối thiểu (thật ra là truyền lại)
Dữ liệu trùng lặp bị loại bỏ
Các gói tin thất lạc/loại bỏ được gửi lại
Kiểm soát tắc nghẽn giao thông trong việc truyền/nhận dữ liệu