`

NS by Example 笔记(16)Web Server Example

阅读更多

Web Server Example

(Obsolete: work with ns-2.1b4a)

 

Web Server模拟脚本和网络拓扑。 脚本文件"ex-web.tcl"和"dumbbell.tcl" (This example is from the 5th VINT/NS Simulator Tutorial/Workshop). Note that you should change the path for "http-mod.tcl" at the begining of the script to an appropriate one to make it run on your machine.

 




 
Figure 34. Web server simulation network topology

 

ex-web.tcl

# Initial setup
source ~/ns-allinone-2.1b4a/ns-2/tcl/http/http-mod.tcl
source dumbbell.tcl
global num_node n

set ns [new Simulator]
$ns set-address 7 24     ;# set-address <bits for node address> <bits for port>

# set up colors for nam 
for {set i 1} {$i <= 30} {incr i} {
    set color [expr $i % 6]
    if {$color == 0} {
	$ns color $i blue
    } elseif {$color == 1} {
	$ns color $i red
    } elseif {$color == 2} {
	$ns color $i green
    } elseif {$color == 3} {
	$ns color $i yellow
    } elseif {$color == 4} {
	$ns color $i brown
    } elseif {$color == 5} {
	$ns color $i black
    }
}

# Create nam trace and generic packet trace
$ns namtrace-all [open out.nam w]
# trace-all is the generic trace we've been using
$ns trace-all [open out.tr w]

create_topology

########################### Modify From Here #####################
## Number of Pages per Session
set numPage 10
set httpSession1 [new HttpSession $ns $numPage [$ns picksrc]]
set httpSession2 [new HttpSession $ns $numPage [$ns picksrc]]

## Inter-Page Interval
## Number of Objects per Page
## Inter-Object Interval
## Number of Packets per Object
## have to set page specific attributes before createPage
## have to set object specific attributes after createPage
$httpSession1 setDistribution interPage_ Exponential 1 ;#in sec
$httpSession1 setDistribution pageSize_ Constant 1 ;# number of objects/page
$httpSession1 createPage
$httpSession1 setDistribution interObject_ Exponential 0.01 ;# in sec
$httpSession1 setDistribution objectSize_ ParetoII 10 1.2 ;# number of packets

# uses default 
$httpSession2 createPage

$ns at 0.1 "$httpSession1 start" ;# in sec as well
$ns at 0.2 "$httpSession2 start"

$ns at 30.0 "finish"

proc finish {} {
	global ns
	$ns flush-trace
	puts "running nam..."
    # exec to run unix command
	exec nam out.nam &
	exit 0
}

# Start the simualtion
$ns run

 

dumbbell.tcl

# Created by Polly Huang
# Simple 4-node star topology
#        8    7       2    3
#           \ |       | / 
#        9 -- 1 ----- 0 -- 4
#           / |       | \
#        10   11      6    5   

proc create_topology {} {
global ns n num_node
set num_node 12

for {set i 0} {$i < $num_node} {incr i} {
	set n($i) [$ns node]
}

$ns set src_ [list 2 3 4 5 6]
$ns set dst_ [list 7 8 9 10 11]

# EDGES (from-node to-node length a b):
$ns duplex-link $n(0) $n(1) 1.5Mb 40ms DropTail
$ns duplex-link $n(0) $n(2) 10Mb 20ms DropTail
$ns duplex-link $n(0) $n(3) 10Mb 20ms DropTail
$ns duplex-link $n(0) $n(4) 10Mb 20ms DropTail
$ns duplex-link $n(0) $n(5) 10Mb 20ms DropTail
$ns duplex-link $n(0) $n(6) 10Mb 20ms DropTail
$ns duplex-link $n(1) $n(7) 10Mb 20ms DropTail
$ns duplex-link $n(1) $n(8) 10Mb 20ms DropTail
$ns duplex-link $n(1) $n(9) 10Mb 20ms DropTail
$ns duplex-link $n(1) $n(10) 10Mb 20ms DropTail
$ns duplex-link $n(1) $n(11) 10Mb 20ms DropTail

$ns duplex-link-op $n(0) $n(1) orient left
$ns duplex-link-op $n(0) $n(2) orient up
$ns duplex-link-op $n(0) $n(3) orient right-up
$ns duplex-link-op $n(0) $n(4) orient right
$ns duplex-link-op $n(0) $n(5) orient right-down
$ns duplex-link-op $n(0) $n(6) orient down
$ns duplex-link-op $n(1) $n(7) orient up
$ns duplex-link-op $n(1) $n(8) orient left-up
$ns duplex-link-op $n(1) $n(9) orient left 
$ns duplex-link-op $n(1) $n(10) orient left-down
$ns duplex-link-op $n(1) $n(11) orient down
}
# end of create_topology

  

 

 

  • 大小: 4.3 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的...

    Cygwin2.416+NS2.28安装笔记

    【Cygwin2.416+NS2.28安装笔记】 Cygwin是一款在Windows平台上模拟Linux环境的开源工具,它使得用户能够在Windows系统上运行许多原本只能在Linux或Unix环境下运行的软件和开发工具。在这个安装笔记中,我们将详细...

    spring+hibernate+struts2 +mybatis整合笔记

    本篇笔记主要介绍如何将Spring、Hibernate、Struts2与MyBatis进行整合,形成一个完整的Web应用开发框架。 #### 二、环境搭建与准备工作 1. **安装JDK**:确保系统中已经安装了JDK,并配置好环境变量。 2. **下载所...

    LPC2xxx SPI master code example

    ### LPC2xxx SPI Master Code Example解析 #### 概述 本技术笔记提供了如何使用Philips Semiconductors LPC2000系列微控制器家族中的SPI接口(主模式和中断驱动)的一个示例代码。该文档由Paul Seerden编写于2006年...

    赖家材Struts 传智播客笔记下载

    ### 赖家材Struts 传智播客笔记知识点概览 #### 一、Struts 入门 ##### 1. Struts 入门简介 - **为什么使用 Struts**: - 建立在 MVC(Model-View-Controller)模式的基础上,Struts 主要在控制器(Controller)...

    xml笔记与例子.rar

    4. **命名空间(Namespace)**:在处理多个XML文档或元素可能有相同名称的情况下,命名空间允许定义独特的标识前缀,如 `xmlns:ns="http://example.com/ns"`。 5. **DTD(Document Type Definition)或XSD(XML ...

    xml笔记2

    1. **有前缀的名称空间声明**:使用`xmlns:名域前缀="名称空间的 URI"`的形式,例如`xmlns:ns="http://example.com/ns"`。这里的`ns`是自定义的前缀,`http://example.com/ns`是URI,它是唯一的。前缀在文档中用来...

    XML 学习笔记,课件,实例

    通过定义前缀和URL,可以将元素绑定到特定的命名空间,如`xmlns:ns="http://example.com/ns"`。 4. **DTD(Document Type Definition)或XML Schema**:这两个都是XML文档的验证工具,用来定义元素和属性的结构及...

    网络工程备考笔记.txt

    4. **NS记录(Name Server Record)**: - 作用:指定域名的权威DNS服务器。 - 应用场景:确保域名解析的准确性。 5. **TXT记录(Text Record)**: - 作用:存储任意文本信息。 - 应用场景:认证域名所有权、...

    XML入门笔记

    通过前缀和URL组合来唯一标识一个命名空间,如`xmlns:ns="http://example.com"`。 4. **DTD(Document Type Definition)或XML Schema**:这两个是XML文档的验证工具,用于定义元素和属性的结构及限制。DTD是XML...

    JPA的学习笔记(java注解,事物)

    &lt;property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/example"/&gt; ``` #### 测试配置 - 在Spring Boot中,可以通过`@SpringBootTest`注解来启动整个应用并进行集成测试...

    直接数值模拟/大涡模拟软件Nek5000简要使用手册

    尽管如此,Nek5000也有一些不足,如缺乏稳态NS(Navier-Stokes)模型和雷诺应力模型,以及网格绘制的困难。 在使用Nek5000时,用户需要熟悉一系列文件类型和步骤。例如,`example.exo`文件通常用于存储前处理软件...

    fulcro-rad-semantic-ui:RAD的语义UI渲染插件

    Fulcro RAD语义UI渲染插件 Fulcro RAD的呈现插件,可以呈现Web UI的表单,报表和容器。... (ns com.example.main (:require [com.fulcrologic.rad.application :as rad-app])) (defonce app (-&gt; (r

    rhel6.0-dns-configuration.rar_rhel6

    2. **区域文件**:DNS区域文件包含特定域的DNS记录,如A记录(IP地址映射),MX记录(邮件服务器),CNAME记录(别名),NS记录(名称服务器)等。这些文件通常位于`/var/named`目录下,并以`.zone`为扩展名。例如,...

    XML学习资料

    命名空间通过`xmlns`属性定义,如`xmlns:ns="http://example.com/ns"`。 四、XML Schema和DTD 为了确保XML文档的结构和数据类型的一致性,可以使用XML Schema(XSD)或Document Type Definition(DTD)。它们定义了...

    可扩展标记语言(XML)

    - **使用方法**: 使用`xmlns`属性指定命名空间的URI,例如:`&lt;root xmlns="http://www.example.com/ns"&gt;` #### 7. DTD、架构和XML间的关系 - **DTD**: Document Type Definition,文档类型定义,用于定义XML文档的...

    深度学习之Tensorflow工程化项目实战 读书笔记(03.18)

    在处理图像数据时,`PIL.Image.fromarray(example, 'RGB')`是Python的Pillow库(PIL的更新版)中用于将numpy数组转换为RGB图像的方法,这样可以将处理后的数据转换回可以显示或保存的图像格式。 在实例4.9中,`tf....

Global site tag (gtag.js) - Google Analytics