- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NS2中TCP源代码分析
NS2中TCP源代码分析
1:NS2简介
NS2是一个开放源码的多协议网络模拟软件,来源于1989年的Real Network Simulator项目,经过多年的发展,于1995年得到施乐公司(Xerox)的支持,加入VINT项目。NS2一直以来都在吸收世界各地研究者的成果,包括UCB、CMU等大学和SUN等公司的无线网络方面的代码,因此NS2一直都在不断的被更新和完善。NS2是一个面向对象的、离散事件驱动的网络环境模拟工具,可以完整地模拟整个网络环境。
NS2使用一整套C++类库实现了绝大多数常见的网络协议以及链路层的模型,如:有线网络或无线网络的TCP、UDP、路由、多播等多种协议模型,利用这些类库的实例就可以搭建起整个网络的模型,而且包括详尽的细节实现。NS2使用了两种编程语言,OTcl(具有面向对象特性的Tcl脚本程序设计语言)和C++,NS2采用这两种语言是因为仿真工具有两方面的事情要做:一方面,具体协议的模拟和实现,这需要一种能高效率的处理字节、报头等信息的程序设计语言,即对运行速度非常重要,而运行模拟环境的时间、寻找和修复Bug的时间,以及重新编译和运行的时间不是很重要,在这种情况下,C++语言是非常合适的;另一方面,许多网络中的实验或研究工作主要是围绕着网络组件和环境的具体参数的设置和改变而进行的,需要在短时间内快速的开发或模拟出所需要的网络环境,并且方便的修改和发现,在这种情况下,网络环境设置的时间就显得重要了,而脚本语言在这方面有很大的优势,具有面向对象特性的Tcl脚本语言可以充分的满足此需求。C++和OTcl两种语言的对象和变量是通过TclCL关联起来的,C++的类和对象为编译类和编译对象,相反地OTcl的类和对象为解释类和解释对象,TclCL是在OTcl基础上的封装。通过下面的NS2架构图来理解几者之间的关系。对NS2使用者来说,OTcl脚本语言用于实现网络拓扑部分,OTcl是架构在Tcl之上的面向对象后的延伸,事件调度器和网络组件这两部分主要用C++编写。
C++在最底层则是表示NS2的核心主要就是C++。TclCL是连接OTcl和C++的桥梁,最后搭配用户接口就构成了NS2。
2:NS2中TCP源码分析
在源码包中,TCP源码放置在ns-allinone-2.29\tcp文件夹里。打开tcp.cc
#include stdlib.h
#include math.h
#include sys/types.h
#include ip.h
#include tcp.h
#include flags.h
#include random.h
#include basetrace.h
#include hdr_qs.h
int hdr_tcp::offset_;
static class TCPHeaderClass : public PacketHeaderClass {
public:
TCPHeaderClass() : PacketHeaderClass(PacketHeader/TCP,
sizeof(hdr_tcp)) {
bind_offset(hdr_tcp::offset_);
}
} class_tcphdr;
static class TcpClass : public TclClass {
public:
//存储类名Agent/TCP至 classname_
TcpClass() : TclClass(Agent/TCP) {}
TclObject* create(int , const char*const*) {
return (new TcpAgent());
}
} class_tcp;
TcpAgent::TcpAgent()
: Agent(PT_TCP),
t_seqno_(0), t_rtt_(0), t_srtt_(0), t_rttvar_(0),
t_backoff_(0), ts_peer_(0), ts_echo_(0),
tss(NULL), tss_size_(100),
rtx_timer_(this), delsnd_timer_(this), burstsnd_timer_(this),
dupacks_(0), curseq_(0), highest_ack_(0), cwnd_(0), ssthresh_(0),
maxseq_(0), count_(0), rtt_active_(0), rtt_seq_(-1), rtt_ts_(0.0),
lastreset_(0.0), closed_(0), first_decreas
您可能关注的文档
- 输煤检修专业经济责任制细则.doc
- 班主任要树立威信.doc
- 生物评课稿.doc
- 开泰路年度安全工作总结.doc
- 结构力学(I)-结构静力分析篇2-2.ppt
- 局长动员会讲话1.doc
- 第六章营销沟通.ppt
- Attribute clause 定语从句.ppt
- 玛法达看星座.pdf
- 顺义区2012年春季会考模拟练习数学试题.doc
- 2024年部编版语文一年级下册动物儿歌教案3篇 .pdf
- 2024年驻村工作总结优秀例文7篇 .pdf
- 2024年高考历史一轮复习考点通关卷(新高考真题)专题突破卷-村落、城镇.pdf
- 2024暑假安全教育学习心得体会精选17篇 .pdf
- 人教版高中物理必修二第六章《万有引力与航天》知识点总结及习题和答案完整版722732395.pdf
- 人教版五年级上册数学期中测试卷附完整答案【易错题】.doc
- 人教版八年级下册语文词语选择、文言题等专项复习自带答案 .pdf
- 人教版八年级物理下册 全册 同步练习题含答案解析 .pdf
- 人教版五年级上册数学期中测试卷word版.doc
- 人教版八年级语文下册第六单元测试卷及答案 .pdf
最近下载
- 核安全文化知识考试参考题库及答案.pdf
- 工程完工验收施工管理工作报告.doc VIP
- 企业征信报告.PDF
- 省级优秀课件第三单元课题一第1课时分子和原子-人教版九年级上册.pptx VIP
- 【山东卷】.山东省潍坊市2024-2025学年2025届高三上学期阶段性监测暨期中考试(11.25-11.27)政治试卷含答案及解析.pdf
- 河北省1:5万地质灾害风险调查评价技术要求.doc VIP
- 六年级【科学(教科版)】电能和磁能-5学习单.docx VIP
- 城市轨道交通一站两区间电话闭塞法.pptx VIP
- 川菜文化论文(精选范文6篇),文化论文.docx
- 平凡之路-钢琴谱 高清正版完整版五线谱.pdf
文档评论(0)