Các thành phần cấu thành của một mô phỏng bao gồm: Thực thể (Entity)
Thực thể là các đối tượng tương tác với các đối tượng khác trong một chương trình mô phỏng để gây ra những thay đổi về tình trạng của hệ thống. Trong ngữ cảnh mạng máy tính, thực thể có thể là các nút mạng, các gói tin, các luồng gói tin hoặc các đối tượng phi vật lý chẳng hạn như đồng hồ mô phỏng. Để
phân biệt các thực thể khác nhau, người ta sử dụng các thuộc tính định danh duy nhất thực thể chẳng hạn như độ dài gói tin, số thứ tự, độ ưu tiên và phần header.
Tài nguyên
Tài nguyên là một phần của một hệ thống phức tạp. Thông thường, các thực thể chia sẻ nhau một số lượng tài nguyên có hạn. Ví dụ trong mạng máy tính các tài nguyên có thể là băng thông, thời gian truyền, số lượng máy chủ.
Hoạt động và Sự kiện
Theo thời gian, các thực thể sẽ tiến hành các hoạt động của mình. Hoạt động của các thực thể sẽ tạo ra các sự kiện và kích hoạt sự thay đổi trạng thái của hệ thống. Ví dụ điển hình của hoạt động là đợi và xếp hàng. Khi một máy tính cần gửi một gói tin nhưng môi trường truyền đang bận, nó sẽ đợi cho đến khi môi trường truyền rỗi, khi đó thực thể gói tin đang tiến hành hoạt động đợi.
Bộ lập lịch
Một bộ lập lịch bao gồm một danh sách các sự kiện và thời gian thực hiện chúng. Trong quá trình mô phỏng, các sự kiện trong bộ lập lịch sẽ được kích hoạt chạy bởi đồng hồ hệ thống mô phỏng.
Biến toàn cục
Trong mô phỏng, một biến toàn cục (public/global) có thể được truy cập bởi bất kỳ một hàm hoặc một thực thể nào trong hệ thống và về cơ bản nó thường lưu trữ các giá trị chung dùng trong mô phỏng. Ví dụ như đối với mạng máy tính, biến toàn cục có thể biểu diễn độ dài của hàng đợi gói tin trong một mạng có một máy chủ, có thể biểu diễn thời gian đợi tổng của không dây hoặc có thể biểu diễn số gói tin đã được truyền.
Bộ sinh số ngẫu nhiên
Một mô hình mô phỏng yêu cầu một bộ sinh số ngẫu nhiên (RNG) để sinh ra các số ngẫu nhiên trong hệ thống. Các số ngẫu nhiên được sinh ra bằng cách lấy liên tiếp các số từ một dãy xác định các số ngẫu nhiên giả cho đến khi số được lấy ra từ dãy được xem như là số ngẫu nhiên. Trong hầu hết mọi trường hợp, dãy số ngẫu nhiên giả được xác định trước và được sử dụng bởi mọi bộ sinh số ngẫu nhiên.
Trong những tình huống yêu cầu nhiều kết quả thống kê, một bộ RNG cần bắt đầu lấy số từ một vị trí khác (hạt giống – seed) trong cùng một dãy số ngẫu nhiên giả. Nói cách khác rất có thể kết quả của mọi lần chạy sẽ là giống nhau. Khi triển khai trong thực tế, một bộ RNG sẽ khởi tạo một hạt giống. Một hạt giống sẽ xác định vị trí bắt đầu trong dãy số ngẫu nhiên giả mà trong đó bộ RNG sẽ bắt đầu lấy số. Các mô phỏng khác nhau sẽ khởi tạo các giá trị hạt giống khác nhau do đó kết quả sinh ra sẽ khác nhau.
Bộ thu thập thống kê
Nhiệm vụ chính của một bộ thu thập thống kê là thu thập dữ liệu sinh ra từ một mô phỏng để suy ra ý nghĩa của dữ liệu thu thập được