`

NS by Example 笔记(4)Network Components

阅读更多

Network Components 网络组件

 

Figure 6 显示了NS中部分OTcl类的等级结构。

 



 

Figure 6. Class Hierarchy (Partial)

 

层级的根节点是TclObject 类, 它是所有OTcl 库对象(scheduler, network components, timers and the other objects including NAM related ones)的超类superclass。NsObject类是所有基础网络组件对象的超类,它负责处理数据包,也可以用于构成复合的网络对象(compound network object)例如节点和连接。根据可能输出的data path的数量,基础网络组件可进一步地分成2类Connector 和 Classifier 。如果只有一个输出的data path则是Connector 类, 如果可能有多个输出的data path则是 Classifier 类。

 

 

 

节点与路由 Node and Routing

 

节点是一个由节点登记对象和分类器构成的复合对象(见Figure 7)。NS中有2种类型的节点unicast 和multicast。unicast 节点有一个做单播路由的地址分类器去和一个端口分类器。 multicast节点则多具有一个分类器去分类多播数据包和单播数据包, 并且执行多播路由。 



 

Figure 7. Node (Unicast and Multicast)

 

NS中默认的节点的是Unicast 节点。要创建 Multicast 节点的话,需要在OTcl脚本中建立scheduler 对象后马上显示的声明。 指定了节点类型后,还可以指定路由协议type 如果不想使用默认的。

  • Unicast
    - $ns rtproto type
    - type: Static, Session, DV, cost, multi-path
     
  • Multicast
    - $ns multicast (right after set $ns [new Scheduler])
    - $ns mrtproto type
    - type: CtrMcast, DM, ST, BST

更多关于路由的信息可以参考NS 手册 http://www.isi.edu/nsnam/ns/ns-documentation.html

 

 

 

连接Link

 

连接是NS中另一个主要的复合对象。 当用成员函数 duplex-link 建立一个模拟对象的连接时,在双向上的2个单工的连接被建立。见Figure 8。



 
Figure 8. Link

 

节点的输出队列实际上是作为单工连接对象的一个部件被实现的。数据包从队列传到 Delay 对象,这步模拟了连接延迟。 丢弃了的数据包被发送到一个 Null 代理并释放。 最后, TTL 对象为每个收到的包计算存活时间(Time To Live)参数并更新数据包的 TTL 项。

 

  • 追踪 Tracing

    NS中, 网络活动一般在单工连接上被追踪。如果模拟直接追踪网络活动(使用 $ns trace-all file or $ns namtrace-all file), 则在命令建立连接后像Figure 9中那样插入追踪对象trace objects。也可以明确地建立类型为type 的追踪对象在给出的节点 src dst 之间,通过使用 create-trace {type file src dst} 命令。



 


Figure 9. Inserting Trace Objects

    当每个追踪对象(i.e. EnqT, DeqT, DrpT and RecvT)收到一个包, 它写入到指定的 trace 文件而且不消耗任何模拟时间, 然后传递包到下一个网络对象。 追踪信息的格式在以后介绍(Analysis Example 节中)。

     

  • 队列监听 Queue Monitor

    追踪对象用于记录数据包抵达时间。 尽管可以从追踪信息中得到足够的信息,然而用户更关注明且的输出队列的内部运行情况。例如,用户想要知道 RED 对列的行为,就可以通过测量一个 RED 队列的平均队列大小的动态变化和当前队列大小(i.e. 需要对队列进行监听). 队列监听可以通过使用 queue monitor 对象和 snoop queue 对象来实现,见Figure 10。

     

    Figure 10. Monitoring Queue

    当收到一个包, snoop(窥探)队列对象把这个事件通知给queue monitor对象。 queue monitor 使用这个信息监听队列。 RED 队列监听示例将在RED Queue Monitor Example 小节中介绍。另外snoop queue objects 可以并行的和追踪对象使用。

     

     

数据包传输流示例 Packet Flow Example

 

Figure 11 演示了网络的建立和数据包传输流。 网络中有2个节点(n0 和 n1),它们的网络地址分别为 0 和 1。 一个 TCP 代理附加到 n0 使用 port 0 与附加在n1端口0上的TCP sink 通信。 最终, 一个 FTP 应用(or traffic source)附加到 TCP 代理上, 并请求发送一定量的数据。 




 
Figure 11. Packet Flow Example

上图并没有表现在TCP上准确的FTP行为。它只体现了网络的建立和数据包传输流的内部细节。

  • 大小: 4.9 KB
  • 大小: 6 KB
  • 大小: 1.9 KB
  • 大小: 2.2 KB
  • 大小: 3 KB
  • 大小: 203.9 KB
  • 大小: 3.4 KB
分享到:
评论

相关推荐

    NS by Example 笔记(12)Add New Queue

    在本篇“NS by Example 笔记(12)Add New Queue”中,我们将探讨如何在计算机网络模拟软件NS-2(Network Simulator 2)中添加新的队列管理器。NS-2是一款广泛用于研究和教学的开源网络模拟工具,它允许用户模拟各种...

    NS by Example 笔记(11)Add New Application and Agent

    标题 "NS by Example 笔记(11)Add New Application and Agent" 提及的是网络模拟器 NS-2(Network Simulator 2)中的一个教程或笔记,重点在于如何添加新的应用程序和代理。在这个过程中,我们将深入理解NS-2的...

    ns_by_example.rar_ns_ns by example

    《NS by Example》是针对网络仿真工具NS(Network Simulator)的一份详细教程,旨在帮助初学者快速掌握NS的使用方法和技巧。NS是一款强大的开源软件,广泛用于研究计算机网络、移动通信网络以及无线网络的性能分析和...

    NS by Example

    《NS by Example》是一本专为初学者设计的IT技术图书,主要聚焦于"NS"相关的编程概念和技术。"NS"通常指的是Objective-C中的“Foundation框架”中的“NS”(Namespace)前缀,它代表“Next Step”,是Apple macOS和...

    ns_by_example.rar_ns2_ns2 by example_ns2 tcl_ns_by_example_tcl

    《NS2 by Example》是NS2(网络模拟器2)学习者的重要参考资料,尤其适合初学者。这本书通过实例教学的方式,让读者深入理解和掌握NS2的使用,即使对于英语不太熟练的学习者,也能通过实例的详细讲解和分析,逐步...

    ns by example

    further information about network components in simulator codes, how to create new network components, etc., mainly by giving simple examples and brief explanations based on our experiences. ...

    ns by Example

    《ns by Example》是一个以实例为主的教程,旨在帮助读者深入理解和掌握ns的相关知识。"ns"通常指的是网络模拟器(Network Simulator),它是一个强大的工具,用于模拟和分析网络行为。在这个教程中,我们将通过一系列...

    NS by example

    ### NS2基础知识与实践指南 ...通过上述介绍,我们不仅了解了NS2的基本结构和使用方法,还学会了如何利用《NS by Example》这一宝贵资源来提升自己的NS2技能。希望每位读者都能从中受益,快速成为NS2的专家级用户。

    Ns_by_example.rar_ns2 by example

    《Ns2 by Example》是一本非常适合初学者的网络模拟软件Ns2的学习指南。Ns2(Network Simulator 2)是一款广泛使用的开源网络模拟器,它允许研究人员和学生在虚拟环境中模拟和分析各种网络协议和拓扑结构。这本书...

    ns_by_example.rar_There There_ns2_ns_by_example

    "There There_ns2_ns_by_example"这个压缩包,正如其名,提供了通过实例学习NS2的方法,旨在帮助新手快速上手。 NS2的核心在于它的事件驱动模型,这种模型使得模拟网络中的各种事件(如数据包发送、接收、路由等)...

    ns2 by example 经典的ns2学习资料

    ns2 by example 经典的ns2学习资料

    ns-by-example

    总体而言,“ns-by-example”项目不仅是一份详尽的NS使用指南,更是一个宝贵的学习资源库,它通过实例教学的方式降低了NS的入门难度,使更多研究人员和学生能够迅速掌握这款强大的网络模拟工具,开展深入的网络科学...

    NS2资料大全(network simulator)

    在“Introduction to Network Simulator NS2 0387717595.pdf”这类入门资料中,通常会从NS2的历史和重要性说起,进而详细介绍NS2的基本架构和工作原理。对于初学者来说,这部分内容至关重要,因为它是构建NS2知识...

    Computer.Network.Simulation.Using.NS2.epub

    Computer Network Simulations Using NS2 provides a solid foundation of computer networking knowledge and skills, covering everything from simple operating system commands to the analysis of complex ...

    NS2学习笔记

    NS2(Network Simulator version 2)是一种开源的网络模拟软件,常用于学术研究和教育领域,为网络技术的研究与开发提供了一个免费且功能丰富的平台。它模拟网络环境,帮助研究人员设计和评估网络协议和架构。NS2...

Global site tag (gtag.js) - Google Analytics