仿真工具Ns2
基于NS2的网络仿真

课设(三):基于NS2的网络仿真一、课程设计目的1、理解NS2的基本概念;2、熟悉安装NS2的实验环境和基本操作;3、仿真分析UDP通信协议;4、学会生成NS2的Tcl脚本及仿真结果分析;二、课程设计原理1、UDP协议(1)协议概述UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。
(2)协议功能描述UDP在IP数据报的头部仅仅加入了复用和数据校验(字段),UDP首部字段由4个部分组成,其中两个是可选的。
各16位的源端口和目的端口用来标记发送和接受的应用进程,因为UDP不需要应答,所以源端口是可选的,如果源端口不用,那么置为零。
在目的端口后面是长度固定的以字节为单位的长度字段,用来指定UDP数据报包括数据部分的长度。
由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。
由于UDP协议缺乏拥塞避免和控制机制,需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。
UDP协议只在IP的数据报服务之上增加了很少的功能,这就是端口的功能(有了端口,运输层就能进行复用和分用)和差错检测的功能。
另外,UDP协议应用程序可以是客户机,也可以是服务器程序,不必向TCP协议应用程序那样必须分别建立客户机程序和服务器程序。
在远程控制软件中,如果在局域网内部传输屏幕信息,则使用UDP协议比较容易实现。
但UDP协议不提供可靠性,它的可靠性是交给其他网络设备来解决。
同时用UDP协议来传输的数据一般较小,它需要IP协议来为它对数据进行分段。
2、NS2概述NS2(Network Simulator version2,网络仿真软件第二版)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
NS2网络仿真软件应用于教学中的研究共7页文档

NS2网络仿真软件应用于教学中的研究0 引言随着网络技术的飞速发展,传统的计算机网络教学受到较大的冲击,在教学中引入网络模拟显出了十分的必要性与重要性。
计算机网络教学一般可分为理论教学和实验教学两个部分,传统的教学模式存在很突出的问题。
首先,计算机网络课程从设计到许多复杂的概念和原理,教学中通常使用幻灯片来教学,无法简单灵活地来展示动态过程。
学生在学习中感到枯燥乏味,难以理解,导致渐渐失去兴趣。
其次,实验器材比较昂贵,实验室内配备的实验器材数量有限,很难达到较高标准的实验环境,并且实验的时间也是有限的,学生无法充分地理解并且掌握通信技术以及网络工程应用能力,久而久之更加感到无趣。
解决这一难题的有效方法是,在教学中引入网络模拟技术,使用NAM 工具,可以清晰地向学生展示网络协议的动态运行过程,提高学生的学习效率,改善教学效果。
1 NS2仿真软件简介NS2是一款开放源代码的网络模拟原件,由美国加州大学伯克利分校(UC Berkeley)的MASH研究组开发。
NS2能够仿真多种网络上的众多协议,这些协议涉及到网络的各个层次[1]。
NS2的本质是一个面向对象的离散事件模拟器[2],所有的仿真都是由离散事件驱动的。
NS2采用C++和OTcl两种开发语言进行开发,底层仿真引擎主要用C++编写,OTcl作为仿真时的命令和配置语言。
C++是强制类型的程序设计语言,程序模块运行速度非常快,易实现精确复杂的算法。
Otcl是无强制类型的脚本程序编写语言,具有简单、容易实现和修改的特性,可以在不必重新编译的情况下修改仿真参数和仿真过程,两种语言的结合使NS2的仿真效率特别高。
NS2为基于Unix平台的开源免费软件,可以在其官方网站下载。
同时也可以在Windows下使用,鉴于多媒体教室以及实验室条件,可以采用Windows+Cygwin+NS2的安装方式。
2 NS2模拟仿真实验管理器为了方便管理编写后的NAM文件,开发了NS2模拟仿真实验管理器(图1)。
NS2网络仿真实验

NS2网络仿真实验实验目的:通过修改NS2的TCP协议代码,来简单的观察窗口阈值的不同算法对网络资源利用率的影响。
实验步骤:1. 实验环境搭建(1)系统环境:虚拟机:virtrulbox;操作系统:linux/ubuntu 10.04工作目录:/home/wangtao/workspace/(2)NS2安装与使用:下载NS2软件包到工作目录,地址/sourceforge/nsnam/ns-allinone-2.33.tar.gz解压(注:以下斜体字为命令行命令)tar -zxf ns-allinone-2.33.tar.gzcd ns-allinone-2.33./install(中间的两个bug已经修改,此处忽略)耐心等待安装完毕后将出现如下画面说明安装正常:接下来是系统环境配置,重新进入终端cd ~vim .bashrc(如果没有安装vim最好安装一下,sudo apt-get install vim)在打开的.bashrc的末尾加上以下内容:PATH="$PATH:/home/wangtao/worksapce/ns-allinone-2.33/bin:/home/wangtao/worksapce/ns-a llinone-2.33/tcl8.4.18/unix"exportLD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib"exportTCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library"保存并退出,重新进入终端安装xgraphsudo apt-get install xgraph运行一个简单的例子,以证明环境安装完成:ns /home/wangtao/workspace/ ns-allinone-2.33/tcl/ex/simple.tcl出现如下图说明成功:2.修改代码vim /home/wangtao/workspace/ns-allinone-2.33/tcp/(将窗口阈值一半变为的窗口阈值1/3——wt_)第一处:……if (cwnd_ < ssthresh_)slowstart = 1;if (precision_reduce_) {//halfwin = windowd() / 2; //wangtaohalfwin = windowd() / 3;第二处:……} else {int temp;//temp = (int)(window() / 2);//wangtaotemp = (int)(window() / 3);halfwin = (double) temp;……第三处:……switch (how) {case 0:/* timeouts *///ssthresh_ = int( window() / 2 );//wangtaossthresh_ = int( window() / 3 );if (ssthresh_ < 2)ssthresh_ = 2;cwnd_ = int(wnd_restart_);break;case 1:……第四处……case 4:/* Tahoe dup acks *///ssthresh_ = int( window() / 2 );//wangtaossthresh_ = int( window() / 3 );if (ssthresh_ < 2)ssthresh_ = 2;cwnd_ = 1;break;default:abort();……3.编写tcl代码,实现一个简单的3节点,2条链路的网络网络如下图,具体代码见附件中的源代码。
基于NS2的TCP拥塞控制仿真

基于NS2的TCP建模与仿真摘要:TCP/IP协议是计算机之间常用的组网形式,是互联网事实上的工业标准,由IETF负责制定,其具体内容通过RFC文档公开发布。
本文利用NS2网络仿真器对TCP/IP中的拥塞控制与拥塞窗口,快速重传与快速恢复算法进行了仿真,使对协议中的几种机制和算法有了形象的理解。
关键字:TCP/IP协议,NS2仿真,拥塞控制,快速重传,快速恢复一、引言TCP/IP协议是计算机之间常用的组网形式,是互联网事实上的工业标准,由IETF负责制定,其具体内容通过RFC文档公开发布。
例如,TCP协议在RFC793中正式定义;RFC1122对如何检测错误和不一致性以及解决方法进行了说明;RFC1323给出了对TCP的一些扩展功能;RFC2518中重点阐述了TCP的拥塞控制机制描述了更新后避免过度拥塞的算法;RFC3168描述了对显示拥塞的报告等。
据统计,当前在所有因特网的数据包中,大约有95%包的传送使用了TCP 协议,因此针对TCP协议相关机制的研究很有实际意义。
在TCP协议的研究中,仿真是一种有效又经济的研究方法,而且可以给人以更加形象的认识。
目前的网络仿真工具主要包括两类:一是基于大型网络开发的网络仿真工具,如OPNET、GloMoSim等;二是基于小型网络开发的网络仿真工具,如NS2、COMNET III等。
大多数网络仿真工具的价格昂贵,而本文采用的NS2是一种应用广泛、影响力较大和源代码公开的免费网络模拟软件。
二、网络仿真器NS2NS是Network Simulator的英文缩写,又称网络仿真器。
它是一款开放源代码的网络模拟软件,最初由加州大学伯克利分校(UC Berkeley)开发。
NS-2支持Windows、Linux、Unix、Mac以及其他支持POSIX标准的操作系统,它主要支持的操作系统是Linux系统,目前几乎支持所有主流的Linux发行版本,本文使用的是Windows+Cygwin平台。
NS2仿真平台在无线网络教学中的应用

当代教育实践与教学研究NS2仿真平台在无线网络教学中的应用武汉城市职业学院电子信息工程学院 刘中正摘 要:网络仿真通过权威的网络仿真软件系统,利用普通微机平台,可针对各类无线网络进行多个项目的试验, 不再受经费、场地、设备等的影响。
学生还可通过仿真软件提供的动画演示功能,直观形象地了解各种无 线网路协议的原理和功能,改善学习效果。
本文介绍了网络仿真软件NS2的工作原理和特点,探讨了NS2 在网络教学中的应用,并给出了应用实例。
关键词:网络仿真 NS2 无线网络 教学文章编号:ISSN2095-6711/Z01-2016-07-0204随着网络技术的发展,无线网络越来越贴近我们的生活和工作,越来越多的终端设备无须线缆即可连接网络。
无线网络技术,从单一的无线局域网扩展到无线城域网、无线广域网、无线自组织网络、无线传感网络等。
目前已经在各高校单独开设了无线网络技术课程。
对大学生而言,过于理论和抽象的专业内容知识难以掌握,最好能用简洁、直观的发放予以表达。
但由于无线网络类型的多元化,实验环节的教学安排普遍较困难。
多数高校由于经费问题,实验环节的教学形式单一、效果一般。
网络仿真通过权威的网络仿真软件系统,利用普通微机平台,可针对各类无线网络进行多个项目的试验,不再受经费、场地、设备等的影响。
更进一步,学生还可通过仿真软件提供的动画演示功能,直观形象地了解各种无线网路协议的原理和功能,改善学习效果。
一、网络仿真技术的顺序网络仿真主要使用的是统计分析和数学建模的方法,使用计算机软件来模拟网络技术的行为。
通过建立网络设备和网络链路的统计模型,模拟网络流量的传输,从而获得协议设计、网络优化等需要的网络性能数据。
网络仿真不再单纯依赖数字计算,而基于统计模型。
统计复用的随机性能得到准确再现。
二、网络仿真技术具有以下特点1.在高度复杂的网络环境下能得到更高的可信度值2.其他传统方式无法超越它的预测功能3.使用比较广泛,可用于任何网络的优化和编程。
基于NS2的泛洪路由协议的实现与仿真

目录摘要 (3)第1章绪论 (4)1.1 论文背景 (4)1.2 论文研究内容 (4)1.3 论文组织结构 (4)第2章 Ad Hoc网络的介绍及应用 (5)2.1 Ad Hoc网络的概念及特点 (5)2.2 Ad Hoc网络的结构 (6)2.3 Ad Hoc网络的应用领域 (7)第3章 NS2体系结构和功能模块 (8)3.1 NS2网络仿真概述 (8)3.2 NS2的使用和安装 (8)3.3 NS2的相关工具介绍 (9)3.4 NS2现有的仿真元素 (10)3.5 NS2仿真的一般步骤 (10)第 4 章泛洪路由协议的设计实现 (12)4.1 MFlood议类 (12)4.2 添加协议类 (12)4.3 添加包头类型 (14)4.4 编译代码 (15)第5章泛洪路由协议的仿真测试 (16)5.1 初步测试 (16)5.2 场景测试 (19)5.3 trace分析 (21)第6章心得体会 (26)参考文献...... . (27)基于NS2的泛洪路由协议的实现与仿真摘要:网络操作要求的不断变化刺激了新协议和新算法的产生和发展。
网络模拟仿真是研究新协议、分析新算法的一种重要方法。
络仿真平台NS2正是这样一种针对网络技术的源代码公开的、免费的软件模拟平台,其协议代码与真实网络应用代码很相似,仿真结果具有较高的可靠性。
NS2(Network Simulator,version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
由UC Berkeley开发而成。
它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。
本文详细讨论了基于NS2仿真工具对无线通信协议MFlood泛洪路由协议进行仿真的过程。
通过在NS2中添加泛洪路由协议,进行了NS2的扩展性研究与实现,最后通过使用相关工具对输出结果进行处理,为日后进行网络研究奠定基础。
关键词:NS2 泛洪路由协议、分组头、扩展第1章绪论1.1论文背景网络模拟是进行网络技术研究的一种基本手段。
NS2仿真实验分析报告
NS2仿真实验分析报告一引言1 NS2简介NS2是一款开放源代码的网络模拟软件,最初由UC Berkeley开发。
它是一种向象的网络模拟器,它本质上是一个离散事件模拟器,其本身有一个模拟时钟,所有的模拟都由离散事件驱动。
其采用了分裂对象模型的开发机制,采用C++和OTcl两种语言进行开发。
它们之间采用Tclcl 进行自动连接和映射。
考虑效率和操作便利等因素,NS2将数据通道和控制通道的实现相分离。
为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++编写,这些对象通过Tclcl映射对OTcl解释器可见。
目前NS2可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、CBR、We b和VBR;路由队列管理机制,如DropTail、RED和CBQ;路由算法;以及无线网络WLAN、移动IP和卫星通信网络等模块,也为进行局域网的模拟实现了多播协议以及一些MAC子层协议。
2 基本概念(1)RED:随机早期探测(Random Early Detect,RED)。
RED属于主动队列管(Active Queue Management, AQW),是目前常见的TCP上防止拥塞的手段。
它通过以一定概率丢失或标记报文来通知端系统网络的拥塞情况。
RED使用平均队列长度度量网络的拥塞程度,然后以线性方式将拥塞信息反馈给端系统。
RED使用最小阈值,最大阈值和最大概率等几个参数。
RED的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使它们在队列溢出导致丢包之前减少拥塞窗口,降低发送数据速度,缓解网络拥塞。
RED配置在路由器监视网络流量以便避免拥塞,当拥塞即将发生时,它随机丢弃进来的分组,而不是等到队列缓冲区满是才开始丢弃所有进来的分组,这样可以最少化全局同步的发生。
NS2在通信仿真中的应用
西安邮电学院通信与信息工程学院科研训练题目: NS2在通信仿真中的应用院(系):通信与信息工程学院专业:通信工程班级:通工0714班学生姓名:陈彭辉指导教师:陈彭辉起止时刻:2010年6月21日至2010年7月2日目录摘要 ................................................................ 错误!未定义书签。
ABSTRACT ............................................................ 错误!未定义书签。
引言 ................................................................ 错误!未定义书签。
1 科研训练和软件工具简介............................................ 错误!未定义书签。
科研训练进程简介 .................................................. 错误!未定义书签。
软件工具简介...................................................... 错误!未定义书签。
NS2简介........................................................ 错误!未定义书签。
NSbeach简介.............................................. 错误!未定义书签。
NSG2简介....................................................... 错误!未定义书签。
2NS进行网络仿真的方式和一样进程................................... 错误!未定义书签。
网络仿真与NS-2简介2
OPNET的特性(续)
混合建模机制:把基于包的分析方法和基于统计的 混合建模机制 数学建模方法结合起来,既可得到非常细节的模拟 结果,也大大提高了仿真效率。 丰富的统计量收集和分析功能:它可以直接收集常 丰富的统计量收集和分析功能 用的各个网络层次的性能统计参数,能够方便地编 制和输出仿真报告。 网管系统、流量监测系统的接口:能够方便的利用 网管系统、流量监测系统的接口 现有的拓扑和流量数据建立仿真模型,同时还可对 仿真结果进行验证。
网络仿真软件的基本要求
Easy network topology setup Protocols and application implementation
TCP,UDP,… FTP, Telnet, Web, CBR, VBR,… Routing protocols Queue management protocols
/nsnam/index.php/Main_Page
NS-2的历史
NEST (Network Simulation Testbed) REAL (Realistic and Large) NS-1 NS-2 1989: REAL network simulator 1995: DARPA VINT project (Virtual InterNetwork Testbed) at LBL, Xerox PARC, UCB, and USC/ISI Present: DARPA SAMAN(Simulation Augmented by Measurement and Analysis for Network) project and NSF CONSER(Collaborative Simulation for Education and Research) project.
基于免费软件ns2的网络仿真
" 仿真数据处理
利 用 仿 真 过 程 中 记 录 的 数 据 和 @-&(A1 软 件 , 我 们 可 以 对 这 些 数 据 进 行 图 形 化 的 分 析 。在 此 例 中 我 们 可 峰 以 显 示 节 点 ."、 .#、 .! 分 别 到 .L 的 信 息 流 量 图 , 值 速 率 分 别 为 我 们 所 设 定 的 值 。我 们 也 可 以 利 用 仿 真 形成的数据文件, 根据需要对其进行进一步的处理。 从上面的整个仿真过程来看, .4 ! 免 费 网 络 系 统 仿真软件具有功能完整, 使用较方便, 支持较多网络 协议的特点, 但利用脚本来构建网络模型稍显烦琐。 参考文献
置 网 络 信 息 流 量 的 产 生 和 接 收 以 及 收 集 统 计 信 息 。软 件配有仿真过程动态观察器,可以在仿真运行结束 后, 动态查看仿真的运行过程, 观 察 跟 踪 数 据 。软 件 还 有图形显示器, 显示从仿真中得到的结果数据, 直观 而清晰。 目 前 48 ! 主 要 基 于 Q-)P 平 台 , 需 要 95B R F G " G S 、 9= R F G " G S 、 ;95B R # G " 1 % 、 95B5B R # G " N F 和 48 R ! G # N T 的 支 持 。 如 果 基 于 U?42;:8 EF 平 台 , 还 需 要 ,3<B ( ,<159?51B ,;<98 ;X .V9<159?;4 142 L3W;<9 *14OA1O3 ) 以 及 0DO:?4 (
*+, 协 议 并 把 这 个 协 议 附 加 到 节 点 上 , 之 后 创 建 一 个 开 关 时 间 满 足 指 数 分 布 的 J. 9 JBB 随 机 信 源 , 设置信源
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安装配置说明: http://www.360doc.com/content/10/0611/12/235142_32494529.shtml http://ala.isti.cnr.it/wnlab/tdmadama这个应该可以用来仿真satellite network 改改代码·· http://www.sciencenet.cn/m/user_content.aspx?id=309834 http://www.sciencenet.cn/m/user_content.aspx?id=309834 http://d.wanfangdata.com.cn/Periodical_wxdtxjs200404001.aspx
FTP实验总结 1.FTP客户端 a. FTP配置文件格式(参考init文件) 要登陆的主机的IP地址 用户名 密码 要获取的文件的路径名(绝对路经) 文件存入当前Ftp目录下的文件名 b. 日志文件格式(参考last.log文件) 总共收到的字节数 总共所用时间 传输速率(bytes/second) c. 函数说明 /*ftp_var.h中声明了Systems 结构,封装了配置文件结构*o ns = "urn:schemas-microsoft-com:office:office" /> typedef strUCt{ char* ipadd; char* user; char* pwd; char* filename; //输入文件名 char* outfilename;//输出文件名 }Systems; extern Systems* sysptr;
/*Main.c中定义了sys_next 函数*/ Long sys_next(Systems*sysptr) 根据空白符从文件中读取配置信息到sysptr全局变量中
/*Main.c中定义了cmdscannerHelper函数*/ void cmdscannerHelper () 根据配置文件的设定信息,形成FTP命令,发到服务器。
/*Main.c中定义了cmdsBye函数*/ void cmdsBye () 发送FTP命令BYE,到服务器,结束传送。
/*ftp.c中login函数中自动登陆*/ int login(char * host) 根据配置文件的设定信息,形成FTP命令,发到服务器。 如: strcpy(user,sysptr->user); strcpy(pass,sysptr->pwd); n = command("USER %s", user); if (n == CONTINUE) { n = command("PASS %s", pass); } if (n == CONTINUE) { aflag++; acct = getpass("Account:"); n = command("ACCT %s", acct); } d. FTP客户端,根据init文件的设定,到服务器下载文件到当前的目录中。文件名的前面以P打头,加上进程号,在加上init文件中设定的文件名。(如Process27310-1.tar.gz) e. 注意在init文件中IP 目的地址要设定成服务器的真实地址对应的虚地址。
2.仿真器的配置
a. 仿真器的工作脚本 set ns [new Simulator] $ns use-scheduler RealTime
set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]
$ns map 10.88.88.81 10.88.88.99 $n2 $ns map 10.88.88.81 10.88.88.99 $n3 $ns map 10.88.88.74 21 10.88.88.98 $n1
$ns duplex-link $n2 $n1 10Mb 10ms DropTail $ns duplex-link $n3 $n1 10Mb 10ms DropTail
set myfilter [new InThread]; # Create the bpf set dev [$myfilter open readonly eth0] $myfilter filter "dst host 10.88.88.98 or dst host 10.88.88.99"
set ipnet2 [new Agent/OutThread]; # Create a Network agent $ipnet2 open writeonly $ns attach-agent $n2 $ipnet2; # Attach agent to the node. $n2 attach $ipnet2 8000
set ipnet3 [new Agent/OutThread]; # Create a Network agent $ipnet3 open writeonly $ns attach-agent $n3 $ipnet3; # Attach agent to the node. $n2 attach $ipnet3 8000
set ipnet1 [new Agent/OutThread]; # Create a Network agent $ipnet1 open writeonly $ns attach-agent $n1 $ipnet1; # Attach agent to the node. $n1 attach $ipnet1 8000
$ns at 432000.0 "finish"
proc finish {} { exit 0 }
$ns run b. 路由的添加 在FTP客户端所在的主机添加路由route add -host 10.88.88.98 gw 10.88.88.86 在FTP server所在的主机添加路由 route add -host 10.88.88.99 gw 10.88.88.86 c. 真实的网络拓扑环境在仿真器中的模拟 FTP客户端 真实IP 10.88.88.81 虚IP 10.88.88.99 其它客户端…(目前实验只支持两个客户端,两个客户端可以在同一台主机上,也可以在不同的主机上) FTP server 真实IP 10.88.88.81 虚IP 10.88.88.98 NS仿真器 真实IP 10.88.88.86
3.仿真器中FTP协议的修改
a. 修改FTP应用层数据 //对应用层进行处理,因为有实用数据时 char *app_header = (char *)tcpheader; app_header += tcpheader->doff*4; char *ptr = app_header; char buff[255]={0},tempbuf[255]={0}; char *servip = (char *)buff;
strncpy(buff,ptr,4); if(!strcmp(buff,"PORT")) { strncpy(buff,ptr+5,91-71); for(int ii=0;ii<4;) { if((*servip)==',') { ii++; *servip='.'; } if(ii==4) break; servip++; } *servip =0; servip=buff; strncpy(tempbuf,ptr+strlen(buff)+5,91-71-strlen(buff)); //printf("tempbuf is %s\n",tempbuf);
int count=0; for(int jj=0;true;jj++) { if(tempbuf[jj]==13) { count = jj; break; } }
//htable__->printall(); tmpBucket = htable__->lookupr_IP(servip); //获取服务器地址
int diff = strlen(tmpBucket->virhost_ip) - strlen(servip);
strcpy(buff,tmpBucket->virhost_ip); //printf("buf is %s\n",buff); servip =(char *)buff; for(int ii=0;*servip;) { if((*servip)=='.') { ii++; *servip=','; } servip++; } //直接拷贝内存到所要到的区域上 memmove(ptr + 5, buff , strlen(buff)); memmove(ptr + 5 + strlen(buff) ,tempbuf,count); ptr[5 + strlen(buff) + count] = 13; ptr[5 + strlen(buff) + count+1] = 10;
ch->size() = cc + diff; //修改包长度,以及假包长度 ipheader->ip_len = ipheader->ip_len + diff;
}