TÌM HIỂU VỀ HỆ MÔ PHỎNG MẠNG OMNeT++
Mô hình trong OMNET++
1.2.1 Cấu trúc phân cấp của các module
Một mô hình trong OMNeT++ chứa các module lồng nhau có cấu trúc phân cấp, trao đổi thông tin với nhau bằng cách gửi các message Mỗi mô hình này thường biểu diễn cho một hệ thống mạng Module mức cao nhất trong cấu trúc phân cấp được gọi là module hệ thống Module này có thể chứa các module con, các module con cũng có thể chứa các module con của riêng nó Độ sâu phân cấp đối với các module là không giới hạn, điều này cho phép người sử dụng có thể dễ dàng biểu diễn một cấu trúc logic của một hệ thống trong thực tế bằng cấu trúc phân cấp của OMNeT++.Cấu trúc của mô hình có thể được mô tả bằng ngôn ngữ NED củaOMNeT++.
Hình 1.1 Các module đơn giản và kết hợp
Các module có thể chứa nhiều module con và được gọi là module kết hợp Các module đơn giản là các module có cấp thấp nhất trong cấu trúc phân cấp Các module đơn giản chứa các thuật toán của mô hình. Người sử dụng triển khai các module đơn giản bằng ngôn ngữ C++, sử dụng các thư viện mô phỏng của OMNeT++.
Tất cả các module dù là đơn giản hay phức tạp đều là các đối tượng cụ thể của các kiểu module Trong khi mô tả các mô hình, người sử dụng định nghĩa ra các kiểu module; các đối tượng cụ thể của các kiểu module này được sử dụng như các thành phần của các kiểu module phức tạp hơn. Cuối cùng, người sử dụng tạo module hệ thống như một đối tượng cụ thể của kiểu module đã được định nghĩa trước đó, tất cả các module của mạng đều là module con (hoặc là con của module con) của module hệ thống.
Khi một kiểu module được sử dụng như một khối dựng sẵn (building block), sẽ không thể phân biệt đó là một module đơn giản hay phức tạp.Điều này cho phép người sử dụng có thể tách các module đơn giản ra thành nhiều module đơn giản được nhúng trong một module kết hợp, và ngược lại có thể tập hợp các chức năng của một module kết hợp trong một module đơn giản mà không ảnh hưởng gì đến các kiểu module đã được người sử dụng định nghĩa Kiểu module có thể được lưu trữ trong một file riêng rẽ Điều này cho phép người sử dụng có thể nhóm các kiểu module lại và tạo ra một thư viện thành phần.
Các module trao đổi thông tin bằng việc gửi các message Trong thực tế, message có dạng khung (frame) hoặc là các gói tin (packet) được truyền đi trong mạng Các message có thể có cấu trúc phức tạp tuỳ ý Các module đơn giản có thể gửi các message đi một cách trực tiếp đến vị trí nhận hoặc gửi đi theo một đường dẫn định sẵn thông qua các cổng và các liên kết.
“Thời gian mô phỏng địa phương” (local simulation time) của một module tăng lên khi module nhận được một message Message có thể đến từ một module khác hoặc đến từ cùng một module (message của chính bản thân module - self-message được dùng để thực hiện bộ định thời).
Cổng (gate) là các giao tiếp vào ra của module Message được gửi đi qua các cổng ra và được nhận vào thông qua các cổng vào.
Mỗi kết nối (connection) hay còn gọi là liên kết (link) được tạo bên trong một mức đơn trong cấu trúc phân cấp của các module: bên trong một module kết hợp, một kết nối có thể được tạo ra giữa các cổng tương ứng của hai module con, hoặc giữa cổng của module con với cổng của module kết hợp.
Tương ứng với cấu trúc phân cấp của một mô hình, các message thường di chuyển qua một loạt các kết nối với điểm bắt đầu và kết thúc là các module đơn giản Tập các kết nối đi từ một module đơn giản và đến một module đơn giản được gọi là route Các module kết hợp hoạt động giống như các “cardboard box” trong mô hình, “trong suốt” trong việc chuyển tiếp các message giữa các thành phần bên trong và thế giới bên ngoài.
1.2.4 Mô hình truyền gói tin
Một kết nối có thể có ba tham số đặc trưng Những tham số này rất thuận tiện cho các mô hình mô phỏng mạng thông tin nhưng không hữu dụng lắm cho các kiểu mô hình khác Ba tham số này bao gồm:
Độ trễ đường truyền (propagation delay) tính bằng giây.
Tỉ số lỗi bit, được tính bằng số lỗi/bit.
Tỉ số dữ liệu, được tính bằng số bit/s.
Các tham số này là tuỳ chọn Giá trị của các tham số này là khác nhau trên từng kết nối, phụ thuộc vào kiểu của liên kết (hay còn gọi là kiểu của kênh truyền - channel type). Độ trễ đường truyền là tổng thời gian đến của message bị trễ đi khi truyền qua kênh.
Tỉ số lỗi bit ảnh hưởng đến quá trình truyền message qua kênh Tỉ số này là xác suất các bit bị truyền sai Do đó xác suất để một message độ dài n bit truyền đi chính xác là: P(message gửi đi được nhận chính xác) (1 - BER)n trong đó BER là tỉ số lỗi bit và n là số bit của message.
Các message truyền đi đều có một cờ lỗi, cờ này sẽ được thiết lập khi việc truyền message có lỗi.
Tỉ số dữ liệu được tính theo đơn vị bit/s, và nó được sử dụng để tính thời gian để truyền một gói tin Khi tỉ số này được sử dụng, quá trình gửi message đi trong mô hình sẽ tương ứng với việc truyền bit đầu tiên và message được tính là đến nơi sau khi bên nhận đã nhận được bit cuối cùng.
Các module có thể các tham số.Các tham số này có thể được đặt giá trị trong các file NED hoặc các file cấu hình ompnetpp.ini.
Các tham số này có thể được dùng để thay đổi các thuộc tính của các module đơn giản hoặc dùng để biểu diễn cho topology của mô hình.
Các tham số có thể có kiểu là chuỗi, số học, giá trị logic hoặc cũng có thể chứa cây dữ liệu XML (XML data tree) Các biến kiểu số trong các biểu thức có thể nhận giá trị từ các tham số khác, gọi hàm, sử dụng các biến ngẫu nhiên từ các nguồn phân tán hoặc nhận giá trị trực tiếp được nhập vào bởi người sử dụng.
Các tham số có kiểu số có thể được dùng để cấu hình topology rất dễ dàng Nằm trong các module kết hợp, các tham số này có thể được dùng để chỉ ra số module con, số cổng giao tiếp và cách các kết nối nội bộ được tạo ra.
1.3.1 Xây dựng và chạy thử các mô hình mô phỏng
Một mô hình OMNeT++ bao gồm những phần sau:
Ngôn ngữ mô tả topology - NED (file có phần mở rộng ned): mô tả cấu trúc của module với các tham số, các cổng Các file ned có thể được viết bằng bất kỳ bộ soạn thảo hoặc sử dụng chương trình GNED có trong OMNeT++.
TÌM HIỂU VỀ INET FRAMEWORK
INET Framework là một trong những bộ sưu tập mô hình mô phỏng lâu đời nhất và lớn nhất cho OMNeT ++ Nói chung, các khung công tác cung cấp một số mô hình mô phỏng cho các trường ứng dụng cụ thể để mở rộng trình mô phỏng sự kiện rời OMNeT ++ chung và độc lập với ứng dụng INET có thể được xem như là một thư viện giao thức truyền thông tiêu chuẩn tạo điều kiện cho việc mô phỏng các kịch bản mạng truyền thông Nó có một lịch sử lâu dài và gắn bó với OMNeT ++: từ điểm khởi đầu - Bộ giao thức Internet OMNeT ++ - trở lại năm 2000, qua việc đổi tên và tạo lại thành INET Framework vào năm 2004, cho đến việc phát hành INET phiên bản 4 và 4.1 được đề cập trong cuốn sách này chương INET đã phát triển và thúc đẩy sự phát triển của OMNeT ++ giống như OMNeT ++ đã không ngừng ảnh hưởng đến sự phát triển của INET.
INET được thiết kế phù hợp để nghiên cứu và thử nghiệm trong lĩnh vực mô phỏng mạng truyền thông Nó đặc biệt hữu ích khi khám phá các kịch bản mới hoặc thiết kế và xác nhận các giao thức truyền thông mới từ tất cả các lớp của ngăn xếp giao thức.
2.2.Mô phỏng mạng trong OMNeT++ sử dụng INET
INET là một khuôn khổ mở rộng và phức tạp sử dụng tính mô đun vốn có của OMNeT ++.Phần lớn các thành phần và mô hình của INET có thể được kết hợp theo nhiều cách khác nhau và được điều chỉnh / tham số hóa theo yêu cầu của kịch bản mô phỏng Do đó, việc lắp ráp một kịch bản mô phỏng với INET là khả thi và đồng thời phức tạp vì tính đa dạng và kích thước thuần túy của thư viện mô hình Người dùng có thể bắt đầu lắp ráp các cấu hình và kịch bản nhỏ và mở rộng hoặc tái sử dụng chúng để xây dựng mô phỏng mạng quy mô lớn bằng cách soạn các mô hình hiện có Phạm vi mô-đun mô phỏng có sẵn trong INET được giới thiệucùng với các bước khác nhau để tạo một kịch bản mô phỏng toàn ngăn xếp hoàn chỉnh.
TÌM HIỂU VỀ HỆ MÔ PHỎNG ỨNG DỤNG UDPCLIENT/SEVER
UDP là viết tắt của User Datagram Protocol – một gói tương tự như một gói của thông tin Giao thức UDP làm việc tương tự như TCP, nhưng nó bao gồm tổng quan những thứ đã kiểm tra và có lỗi.
Khi tận dụng UDP, gói chỉ gửi đến bên nhận Bên gửi sẽ không chờ đợi để đảm bảo rằng bên nhận đã nhận được các gói tin – nó sẽ tiếp tục gửi các gói tiếp theo Nếu bạn là người nhận và bạn bỏ lỡ một số gói tin UDP vì quá xấu – bạn không thể yêu cầu những gói tin một lần nữa Không có gì để bảo đảm bạn đang nhận được tổng quan các gói và không có cách nào để yêu cầu một gói một lần nữa nếu bạn bỏ lỡ nó, nhưng bù vào đó, các máy tính hoàn toàn có thể giao tiếp một cách nhanh hơn bình thường hơn.
UDP được tận dụng khi tốc độ là nguyện ước và sửa lỗi là không cần thiết Ví dụ, UDP thường được tận dụng cho chương trình phát sóng trực tiếp và trò chơi trực tuyến.
Trước khi kiểm tra xem giao thức UDP hoạt động ra làm sao, chúng ta cần làm quen với một số thuật ngữ Trong phần tiếp sau đây, chúng ta sẽ định nghĩa một số thuật ngữ căn bản có liên quan đến giao thức UDP.
Trong truyền dữ liệu, một packet là một dãy các số nhị phân, biểu diễn dữ liệu và các tín hiệu điều khiển và tinh chỉnh, các gói tin này được chuyển đi và chuyển tới host Trong gói tin, thông tin được sắp xếp theo một khuôn dạng cụ thể.
Một datagram là một gói tin độc lập, tự chứa, mang từ A đến Z dữ liệu để định tuyến từ nguồn tới đích mà không cần thông tin thêm.
MTU là viết tắt của Maximum Transmission Unit MTU là một đặc trưng của tầng mối liên quan mô tả số byte thông số tối đa hoàn toàn có thể truyền trong một gói tin Mặt khác, MTU là gói dữ liệu lớn nhất mà môi trường mạng cho trước rất có thể truyền Ví dụ, Ethernet có MTU cố định là 1500 byte Trong UDP, nếu kích thước của một datagram lớn hơnMTU, IP sẽ thực hiện phân đoạn, chia datagram thành các phần nhỏ hơn(các đoạn), vì vậy mỗi đoạn nhỏ có kích thước nhỏ hơn MTU.
UDP tận dụng các cổng để ánh xạ thông số đến vào một tiến trình cụ thể đang chạy trên một máy tính UDP định đường đi cho packet tại vị trí định hướng với cách dùng số hiệu cổng được định hướng trong header của datagram Các cổng được biểu hiện bởi các số 16-bit, vì thế các cổng nằm trong dải từ 0 đến 65535 Các cổng cũng được xem như là các điểm cuối của các kết nối logic, và được chia thành ba loại sau:
Các cổng phổ biến: Từ 0 đến 1023
Các cổng đã đăng ký: 1024 đến 49151
Các cổng động/dành riêng 49152 đến 65535
Chú ý rằng các cổng UDP có thể nhận nhiều hơn một thông điệp ở một thời điểm Trong một số tình huống, các dịch vụ TCP và UDP rất có thể sử dụng cùng một số hiệu cổng, như 7 (Echo) hoặc trên cổng 23 (Telnet).
Chất lượng TTL cho phép chúng ta setup một hạn hẹp trên của các router mà một datagram hoàn toàn có thể đi qua Giá trị TTL ngăn ngừa các gói tin khỏi bị kẹt trong các vòng lặp định tuyến vô hạn TTL được khởi tạo bởi phía gửi và giá trị được giảm đi bởi mỗi router quản trị datagram Khi TTL bằng 0, datagram bị loại bỏ.
Multicasting là phương pháp dựa trên chuẩn có tính chất mở để phân phối các thông tin giống nhau đến nhiều người tận dụng. Multicasting là một đặc trưng chính của giao thức UDP Multicasting cho phép chúng ta truyền tin theo kiểu một nhiều, ví dụ gửi tin hoặc thư điện tử tới nhiều người nhận, đài phát thanh trên Internet, hoặc các chương trình demo trực tuyến.
3.2.7 Hoạt động của giao thức UDP
Giao thức UDP hoạt động tương tự như TCP, nhưng nó bỏ qua quá trình kiểm tra lỗi Khi một ứng dụng sử dụng giao thức UDP, các gói tinđược gửi cho bên nhận và bên gửi không phải chờ để đảm bảo bên nhận đã nhận được gói tin, do đó nó lại tiếp tục gửi gói tin tiếp theo.
3.3.Các ứng dụng của UDP
UDP là một giao thức lý tưởng cho các ứng dụng mạng mà trong đó độ trễ là một yếu tố tối quan trọng như trong các giao tiếp game, âm thanh và video Nhờ vậy mà các loại giao tiếp này có thể chịu được việc mất dữ liệu miễn là không ảnh hưởng đến chất lượng dữ liệu khi nhận Trong một số trường hợp, các kỹ thuật chuyển tiếp lỗi được sử dụng để cải thiện chất lượng âm thanh và video bất chấp các mất mát dữ liệu xảy ra.
UDP cũng có thể được sử dụng trong các ứng dụng đòi hỏi khả năng bảo toàn dữ liệu trong lúc truyền tin Khi đó, UDP sẽ được sử dụng trong cấu hình ứng dụng nhằm quản lý quá trình truyền lại các gói bị mất và sắp xếp chính xác các gói đã nhận Cách thức này có thể giúp cải thiện tốc độ truyền dữ liệu của các file dung lượng lớn so với TCP.
Trong các giao tiếp của mô hình OSI (Open Systems Interconnection – hệ thống kết nối mở), UDP cũng giống như TCP thuộc layer 4 – lớp truyền tải UDP thường sẽ phối hợp với các giao thức cấp cao hơn để quản lý các dịch vụ truyền dữ liệu bao gồm Giao thức truyền tải tệp nhỏ (TFTP), Giao thức truyền tải theo thời gian thực (RTSP), giao thức mạng đơn giản (SNP) và hệ thống tên miền (DNS).
3.4.Các tính năng của giao thức gói dữ liệu người dùng
Giao thức user datagram có các thuộc tính thích hợp để sử dụng cho các ứng dụng có khả năng chịu được việc mất dữ liệu.
Giao thức cho phép các gói tin có thể được loại bỏ và nhận theo một thứ tự khác biệt so với khi chúng được truyền đi, nhờ vậy giao thức phù hợp với các ứng dụng theo thời gian thực có độ trễ là mối quan tâm hàng đầu.
User datagram cũng có thể được sử dụng cho các giao thức giao dịch, ví dụ như DNS hoặc Network Time Protocol.