Mỗi sự kiện trong NS là một cấu trúc bản ghi, gồm bốn thành phần như: sự kiện tiếp theo (next_), đối tượng điều khiển sự kiện (handler_), thời
gian sẵn sàng thực hiện sự kiện (time_) và định danh riêng của sự kiện (uid_), được biểu diễn bởi một phần tử trong danh sách các sự kiện.
Hình 3.4 mô tả hoạt động của đối tượng mạng sử dụng bộ lập lịch sự kiện. Khi một đối tượng mạng phát ra một sự kiện, ngay lập tức sự kiện được chèn vào đúng vị trí trong hàng đợi các sự kiện dựa vào thời gian, và sẽ được xử lý tại thời gian đã được lập lịch. Cần lưu ý rằng, đường dữ liệu (data path) giữa các đối tượng mạng khác với đường sự kiện (event path). Thực tế, các gói tin được xử lý từ một đối tượng mạng tới một đối tượng mạng khác bằng cách sử dụng phương thức send(Packet* p) {target_->recv(p)} ở đối tượng gửi, và phương thức nhận recv(Packet*,Handler* h = 0) ở đối tượng nhận.
Phương thức nhận recv sẽ được gọi bởi bên gửi khi gửi dữ liệu.
Hoạt động của các bộ lập lịch sự kiện là chọn một sự kiện tiếp theo sớm nhất để thực hiện, trong quá trình thực hiện một sự kiện có thể tạo ra một hay nhiều sự kiện khác sẽ được thực hiện sau đó, bằng cách đưa chúng vào danh sách các sự kiện. Sau đó quay trở lại chờ thực kiện sự kiện tiếp theo.
3.3.2 Nút mạng (node)
Nút mạng là một đối tượng phức hợp , được hợp thành bởi các đối tượng node entry (đầu vào của nút) và các bộ phân loại C lassifier. Có hai loại nút trong NS là nút đơn hướng (unicast) và nút đa hướng (multicast). Nút đơn hướng chỉ có mô ̣t đối tượng phân loa ̣i đi ̣a chỉ thực hiê ̣n đi ̣nh tuyến đơn hướng (unicast routing) và một đối tượng phân loại cổng (port classifier). Nút đa hướng, ngoài hai đối tượng phân loại địa chỉ và phân loại cổng như trong nút đơn hướng, còn có thêm một đối tượng phân loại gói đa hướng và một đối tượng phân loa ̣i thực hiê ̣n đi ̣nh tuyến multicast. Hình sau minh họa cấu trúc của hai loại node mạng trong NS.