全部博文(82)
分类: 嵌入式
2011-04-23 18:26:24
摘要:本应用笔记介绍了NISTnet软件及其安装,指导用户如何将网络接口卡配置为路由器,以及TDMoP产品在NISTnet下的配置。本文还示范了如何在NISTnet下使用带或不带内部SCT的TDMoP芯片。
概述
NISTnet是一款Linux®下的网络模拟软件,它能让Linux服务器像路由器一样模拟各种网络条件,如拥塞丢失,包重排序,或者非对称等情况。NISTnet有一个基于X的用户接口,它也是Linux的核心模块扩展。作为一种工具,在NISTnet上可以进行可控的,可重复的实验,这些实验可以是网络特性敏感/自适应的应用,也可以通过简单的实验室环境设定控制协议。NISTnet工作在IP层时能模拟被不同环境影响后的端到端的临界性能特性。NISTnet也支持用户对系统附加的自定义分组管理。图1所示是NISTnet的典型配置。
图1. 典型的NISTnet示例
本文提供下列使用说明:
表1所示的TDMoP传输器件适用于这些信息。
表1. 适用于NISTnet的TDMoP器件
TDMoP Chips with Integrated SCTs |
TDMoP Chips without Integrated SCTs |
DS34T108 |
DS34S108 |
DS34T104 |
DS34S104 |
DS34T102 |
DS34S102 |
DS34T101 |
DS34S101 |
硬件要求
NISTnet的版本基于Red Hat® Linux。本安装所用的硬件必须与Red Hat Linux 3.0企业版或者更高版本兼容。为了成功安装、配置和运行NISTnet,硬件必须满足以下最低要求。
NISTnet安装
Linux内核和软件开发包都是要求必须安装的。若要安装NISTnet,用户必须有一个"root"访问入口,而且安装过程中将要求修补Linux内核。
首先,下载压缩文件到目录(例如/usr/local/src/)。然后用以下命令解压文件:
tar –zxvf nistnet-2.4.1.rad_patches.tar.gz
源文件已被解压缩到压缩文件目录下的NISTnet目录中(例如/usr/local/src/nistnet)。
在Linux源目录下运行以下命令:
安装过程中所有问题都回答"NO"即可。至此NISTnet已安装完毕。
配置网络接口卡
若要把这两个NIC卡配置为路由器,则必须遵循下面的步骤。
配置TDMoP
图5所示为一个典型的自适应时钟恢复电路的示例。当10.10.10.1/24设备从源设备恢复TDM服务时钟时,该电路把NISTnet用作WAN模拟器。
图5. 把NISTnet用作WAN模拟器的典型时钟恢复设置
下面是TDMoP主设备在T1模式下采用CESoP仿真的典型配置。该TDMoP主设备工作在环回模式。
TOP (T1)
Main Menu>General Configuration
1. Source Mac address ... (0020D224D33C)
2. Source IP 1 ... (10.10.10.1)
3. Source IP 2 ... (10.10.10.1)
4. IP Mask ... (255.255.255.0)
5. Default Gateway ... (10.10.10.99)
6. Max HDLC Frame Size[1 - 1800] ... (1800)
7. ARP wrong IP (CPU)
8. Wrong IP (Discard)
9. Not Eth Type (CPU)
10. ARP my IP (CPU)
11. Not UDP type (CPU)
12. Not TDMoIP type (CPU)
13. Bundle number does not exist (Discard)
14. OAM packet (CPU)
15. Auto Negotiation (YES)
16. Rate & Duplex > (100M_FDX)
17. Default
-------------------------------------------------------------
Main Menu>Interface Configuration>T1 Screen Configuration
Link Number[1 - 8] ... (1)
1. Frame Type > (SF)
2. RX Config Gain Limit (SHORT Haul)
3. OOS Code type (OOS Code)
4. Data TX/RX OOS[0 - ff] ... (7E)
5. Idle Code[0 - ff] ... (7E)
6. TX/RX Signal Mark code[0 - 3] ... (F)
7. TX/RX Signal Space code[0 - 3] ... (1)
8. TX/RX OOS Signal MASK > (Space)
9. Clock Source > (LoopBack)
10. DSU / CSU (DSU)
11. DSU Mask > (0-133 feet)
12. Link Sync (62411)
13. Connect/Disconnect (Connect)
14. Recovery Clk Mode > (Auto)
15. Master's Side Clock Source > (Stratum 1)
16. Network type > (Router based)
-------------------------------------------------------------
Main Menu>Bundle Configuration>CES Bundle Configuration
Bundle ID[0 - 4095] ... (1)
1. Tx Bundle Destination > ()
2. Rx Bundle Destination > ()
3. Tx UDP Bundle[0 - 8191] ... (2)
4. Rx UDP Bundle[0 - 8191] ... (2)
5. Source IP addr > (IP 1)
6. Destination Main Mac addr ... (000000000000)
7. Destination IP address ... (10.10.11.1)
8. Next Hop ... (0.0.0.0)
9. Number Of VLAN Tags[0 - 2] ... (0)
10. IP Tos[0 - 255] ... (0)
11. IP TTL[0 - 255] ... (128)
12. PSN Type > (IP)
13. Far End Interface Type > (T1 D4)
14. Payload Type > (Data)
15. Switches Sanity check (Discard)
16. Clock Recovery (Disable)
17. Differential Time [Usec][1 - 512000] ... (5000)
18. Max Buffer Size [Usec][0 - 512000] ... (0)
19. Number Of Frames[1 - 1500] ... (80)
20. Reordering (YES)
21. L Bit & OOS > (OOS Mode Conditioning)
22. Redundant (Disable)
23. RTP Mode (Disable)
24. Connect/Disconnect (Connect)
25. Next Hop Type (IP)
26. Enable JB Reset > (On N Times)
27. Window Size[2 - 127] ... (10)
-------------------------------------------------------------
Main Menu>Bundle Assignment
1. Link Number [1 - 8] ... (1)
2. Bundle ID[0 - 4095] ... (1)
3. TS Route Type > (Coupled)
4. Timeslot Assignment [1-24] ... (1)
5. TS width > (8 Bits)
下面是TDMoP从设备在T1成帧模式下采用CESoP仿真的典型配置。该TDMoP从设备完成时钟恢复功能。
TOP (T1)
Main Menu>General Configuration
1. Source Mac address ... (0020D224A346)
2. Source IP 1 ... (10.10.11.1)
3. Source IP 2 ... (10.10.11.1)
4. IP Mask ... (255.255.255.0)
5. Default Gateway ... (10.10.11.99)
6. Max HDLC Frame Size[1 - 1800] ... (1800)
7. ARP wrong IP (CPU)
8. Wrong IP (Discard)
9. Not Eth Type (CPU)
10. ARP my IP (CPU)
11. Not UDP type (CPU)
12. Not TDMoIP type (CPU)
13. Bundle number does not exist (Discard)
14. OAM packet (CPU)
15. Auto Negotiation (YES)
16. Rate & Duplex > (100M_FDX)
17. Default
-------------------------------------------------------------
Main Menu>Interface Configuration>T1 Screen Configuration
Link Number[1 - 8] ... (1)
1. Frame Type > (SF)
2. RX Config Gain Limit (SHORT Haul)
3. OOS Code type (OOS Code)
4. Data TX/RX OOS[0 - ff] ... (7E)
5. Idle Code[0 - ff] ... (7E)
6. TX/RX Signal Mark code[0 - 3] ... (F)
7. TX/RX Signal Space code[0 - 3] ... (1)
8. TX/RX OOS Signal MASK > (Space)
9. Clock Source > (Recovery)
10. DSU / CSU (DSU)
11. DSU Mask > (0-133 feet)
12. Link Sync (62411)
13. Connect/Disconnect (Connect)
14. Recovery Clk Mode > (Auto)
15. Master's Side Clock Source > (Stratum 1)
16. Network type > (Router based)
-------------------------------------------------------------
Main Menu>Bundle Configuration>CES Bundle Configuration
Bundle ID[0 - 4095] ... (1)
1. Tx Bundle Destination > (Ethernet)
2. Rx Bundle Destination > (PCM)
3. Tx UDP Bundle[0 - 8191] ... (2)
4. Rx UDP Bundle[0 - 8191] ... (2)
5. Source IP addr > (IP 1)
6. Destination Main Mac addr ... (000000000000)
7. Destination IP address ... (10.10.10.1)
8. Next Hop ... (0.0.0.0)
9. Number Of VLAN Tags[0 - 2] ... (0)
10. IP Tos[0 - 255] ... (0)
11. IP TTL[0 - 255] ... (128)
12. PSN Type > (IP)
13. Far End Interface Type > (T1 D4)
14. Payload Type > (Data)
15. Switches Sanity check (Discard)
16. Clock Recovery (Enable)
17. Differential Time [Usec][1 - 512000] ... (5000)
18. Max Buffer Size [Usec][0 - 512000] ... (0)
19. Number Of Frames[1 - 1500] ... (80)
20. Reordering (YES)
21. L Bit & OOS > (OOS Mode Conditioning)
22. Redundant (Disable)
23. RTP Mode (Disable)
24. Connect/Disconnect (Connect)
25. Next Hop Type (IP)
26. Enable JB Reset > (On N Times)
27. Window Size[2 - 127] ... (10)
-------------------------------------------------------------
Main Menu>Bundle Assignment
1. Link Number [1 - 8] ... (1)
2. Bundle ID[0 - 4095] ... (1)
3. TS Route Type > (Coupled)
4. Timeslot Assignment [1-24] ... (1)
5. TS width > (8 Bits)
使用NISTnet
运行NISTnet之前,在计算机启动时执行以下命令:
modprobe nistnet
这条命令可以是登录脚本的一部分,或者用户可以自行创建一个可执行文件。图6所示为一个名为"statnist"的可执行文件的示例脚本。
图6. 名为"statnist"的可执行文件的示例脚本
如果用户创建了一个名为"statnist"的可执行文件,NISTnet的GUI命令行就变为:
startnist
NISTnet的界面命令行是:
xnistnet
NISTnet的非界面命令行变是:
cnistnet
图7所示为NISTnet的GUI界面。
图7. NISTnet的GUI界面
在GUI界面用户可以输入源地址、目的地址和网络损耗,例如以ms为单位的平均延时和延时差值、丢包率以及包重复率。输入值后,用户就可以更新内容。更新完毕后,点击"Emulator is Off"按钮使其变为"Emulator is On",此时打开了模拟器。图8所示为打开模拟器后的GUI图。
图8. 模拟器打开后的NISTnet的GUI界面
结论
通过NISTnet可以将单台的Linux PC机设置成为路由器,可以模拟各种网络环境。NISTnet的更多信息请访问NISTnet网站:。