Trong NS2, cấu hình OTcl và giao diện cho LanNode (là một nút đặc biệt để mô phỏng đường truyền chung trong mạng Ethernet) có trong các file
tcl/lan/vlan.tcl, tcl/lan/ns-ll.tclvàtcl/lan/ns-mac.tcl trong thư mục NS chính:
4.1.1.1. Cấu hình Tcl
Trong giao diện cho việc tạo và cấu hình một mạng LAN thì ở mức trên cùng, lớp OTcl “Simulator” đưa ra một phương thức mới gọi là make-lan. Tham số của phương thức này chỉ nhận một danh sách các nút như là một tham số đơn (trong duplex-link thì hai tham số):
Simulator instproc make-lan {nodes bw delay lltype ifqtype mactype chantype} Những tham số tùy chọn trong make-lan xác định kiểu của các đối tượng được tạo ra cho lớp liên kết (LL), giao diện hàng đợi, lớp MAC và lớp vật lý (Channel). Tạo một mạng LAN với lớp liên kết, hàng đợi drop-tail và CSMA/CD MAC như sau:
$ns make-lan “$n1 $n2” $bw $delay LL Queue/DropTail Mac/Csma/Cd
4.1.1.2. Các thành phần của một mạng LAN
LanLink nắm giữ chức năng của ba lớp thấp nhất trong chồng giao thức mạng:
• Lớp điều khiển truy cập đường truyền (MAC) • Lớp vật lý (PHY)
Hình 4.4: Minh họa ngăn xếp mạng dùng cho LAN
Ngăn xếp mạng (network stack) làm cho việc mô phỏng mạng LAN có thể thực hiện được trong NS. Một gói được gửi xuống các luồng ngăn xếp qua các lớp liên kết (Queue và LL), lớp MAC (Mac) và lớp vật lý (Channel tới Classifier/Mac). Sau đó gói đi lên ngăn xếp qua lớp MAC và LL.
Ở phía dưới của ngăn xếp, lớp vật lý bao gồm hai đối tượng mô phỏng: Channel và Classifier/Mac. Đối tượng Channel mô phỏng đường truyền dùng chung và hỗ trợ kỹ thuật truy cập đường truyền của đối tượng MAC ở phía gửi khi truyền thông. Ở phía nhận, Classifier/Mac có nhiệm vụ phân phối và trả lời các gói (nếu cần) cho đối tượng nhận MAC. Tùy thuộc vào kiểu lớp vật lý, lớp MAC cần phải chứa một tập các chức năng như: cảm nhận sóng mang (carrier sense), phát hiện xung đột (collision detection), tránh xung đột (collision avoidance)… Vì những chức năng này ảnh hưởng đến cả hai phía gửi và nhận nên chúng được thực thi trong một đối tượng Mac đơn. Để gửi, đối tượng Mac phải tạo ra một giao thức truy cập đường truyền trước khi truyền một gói lên kênh truyền. Để nhận, lớp MAC có nhiệm vụ phân phối gói về cho lớp liên kết. Ở trên lớp MAC, lớp liên kết có hai thành phần: Queue và LL (link-layer). Đối
tượng Queue, mô phỏng giao diện hàng đợi, phụ thuộc vào lớp Queue, đối tượng LL thực thi một giao thức liên kết dữ liệu.
4.1.1.3. Định tuyến LANs và NS
Khi một mạng LAN được tạo ra bằng cách sử dụng make-lan hay newLan thì một nút LAN ảo (“virtual LAN node”) LanNode được tạo. LanNode giữ tất cả các đối tượng được chia sẻ trên LAN: Channel, Classifier/Mac và LanRouter. Sau đó, với mỗi nút trên LAN thì một đối tượng LanIface sẽ được tạo ra. LanIface gồm tất cả các đối tượng cần thiết cho mỗi nút cơ bản: một Queue, một lớp liên kết (LL), Mac, một ID nhận được từ không gian Node ID. Nếu việc định tuyến kế thừa được sử dụng, LanNode phải được chỉ định một địa chỉ kế thừa giống như những nút khác. Theo cách nhìn của việc định tuyến NS (tĩnh) thì LanNode chỉ là một nút kết nối trực tiếp tới mọi nút trên LAN. Những liên kết kết nối LanNode với các nút trên LAN có thể là liên kết ảo (Vlink). Chi phí định tuyến mặc định của một liên kết là ½ do đó chi phí đi qua hai Vlink (ví dụ n1 -> LAN -> n2) được đếm như chỉ là một trạm.
Hình 4.5: Thực tế kết nối và thể hiện định tuyến trên NS2
Vlink không gây ra bất kỳ sự trễ nào trên các gói và chỉ đáp ứng cho một mục đích là cài đặt giao diện LAN thay vì những liên kết thông thường ở bộ phân loại của các node.