drop-tail队列管理分析
- 格式:doc
- 大小:16.00 KB
- 文档页数:3
NP架构-汇聚层路由器的完美选择1 汇聚层路由器的需要按照经典IP网络结构划分,一个网络往往包括核心骨干层、边缘汇聚层和接入层,各个层面的设备都会有明显不同的技术要求。
图一:IP网络层次示意图用户对核心层设备的要求是大容量、线速性能、高可靠性安全性和具有实效的QOS技术;汇聚层设备则需要高性能、多业务支持能力;接入层设备关键是提供丰富的接口类型和完善的协议转换机制以及用户区分技术。
对于汇聚层路由器来说,高性能应该是至少2个GE端口的线速转发能力(一个上行一个下行),而多业务是指能支持MPLS、NAT、QOS甚至是Ipv6等各种协议应用,尤其是要能快速支持新的网络协议和应用。
汇聚层路由器从诞生到现在经历了近20年时间,经历了几个重要的发展阶段:∙单CPU内核,集中式转发;∙分布式CPU,分布式转发;∙CPU+ASIC,分布式转发;∙NP+CPU+ASIC,分布式转发。
那么,路由器核心器件不断更新的动力是什么呢?技术的发展最终动力来自业务的需求,路由器的发展无疑也是符合这一原则的。
这里的业务不仅是狭义的数据、语音、视频的应用,而是广义上的各种网络应用,例如QOS、VPN、ACL、NAT、IPv6等等。
每一种新的网络技术或者协议其实都代表着一种新的业务,而每一种新的硬件架构的出现其实代表着整个网络业务在发生巨大变化。
协议的更新与业务的关系和硬件架构的更新与业务的关系异曲同工。
业务类型的丰富导致了分布式转发架构的出现,业务流量的激增开辟了ASIC的广泛市场,而高速业务的类型不断增多、多业务的融合最终促使NP的应用。
分布式CPU模式虽然分担了不同流向的数据包,但是性能无法保障;ASIC芯片保障了性能,但是它2-3年的更新周期无法适应日新月异的业务变化,所以需要一种面向数据分组处理的、具有体系结构特征和/或特定电路的、软件可编程器件,这就是NP,网络处理器。
在汇聚路由器发展的过程中,NP的出现无疑是最引人注目的,也是目前汇聚层路由器硬件设计首选的核心芯片。
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配置在路由器监视网络流量以便避免拥塞,当拥塞即将发生时,它随机丢弃进来的分组,而不是等到队列缓冲区满是才开始丢弃所有进来的分组,这样可以最少化全局同步的发生。
网络仿真是使用计算机技术构造网络拓扑、实现网络协议的模拟网络行为。
它能获取特定的网络特性参数,进而可对网络性能进行研究和分析,达到改善网络运行状况的目的。
它包括网络拓扑仿真、协议仿真和通信量仿真,模拟网络流量在实际网络中传输、交换等的过程。
目前,知名的网络仿真软件主要有Seawind,OPNET和免费软件NS等。
在本课题的研究中,我主要选用NS2网络仿真软件做有关网络QoS的模拟实验。
1 NS简介NS是Network Simulator(网络模拟器)的简写,它是一个离散事件模拟器,是美国DARPA支持的VINT项目的核心部分,由UC Berkeley,USC/ISI,LBL和Xerox PARC等大学和实验室联合开发。
NS是一个面向对象的仿真工具,既能进行现有网络元素的仿真分析,又是一个开发新协议、新方案的强大工具,而且还具有进行各种网络性能仿真的能力。
模拟平台采用C++语言编写,并使用OTcl语言编写命令和配置接口,NS软件是一个软件包,包括Tcl/Tk,Otcl,NS,Tclc1。
其中Tcl是一个开放脚本语言,用来对NS进行编程;Tk是Tcl的图形界面开发工具,可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次结构;NS为本软件包的核心,是面向对象的仿真器,用C++编写,以OTcl解释器作为前端;Tclcl则提供NS和OTcl的接口,使对象和变量出现在两种语言中。
为了直观地观察和分析仿真结果,NS提供了可选件Xgraph(显示静态的图形曲线)、可选件Nam(动态观察仿真的进行过程)。
NS在Unix下开发,除了可用于各种Unix系统、Linux 系统外,也可用于Windows系统,后者需要添加两个可选件:Cywin(针对Windows操作系统的通用图形开发工具)和Perl。
目前,NS提供了大量仿真环境的元素,如仿真器、节点和分组转发、链路和延迟、队列管理与分组调度、代理、时钟、分组头及其格式、错误模型、局域网、地址结构(平面型和层次型)、移动网络、卫星网络、无线传播模型、能量模型等;提供了丰富的数学支持,如随机数产生、积分等;提供方便的追踪和监视方法等;提供完整的路由支持,如单播/多播路由、动态/静态路由、层次路由等。
网络互联技术重复地址检测的MIPv6网络切换方法代红(1 辽宁科技大学软件学院,鞍山,114051,辽宁)摘要:针对MIPv6网络重复地址检测操作延时严重影响网络切换性能的问题,提出一种减少DAD操作时延的方法。
该方法通过将协议无关组播和组播侦听者发现协议与快速层次型移动IPv6相结合,提出了基于组播改进的FHMIPv6切换技术。
利用仿真软件NS-2进行实验。
仿真结果表明,改进的方法减少了重复地址检测时延,降低了丢包率,提高了移动网络切换性能。
关键词:重复地址检测;切换延迟;快速层次型移动IPv6;组播侦听者发现;协议无关组播中图法分类号:TP393.03文献标识码: AMobile IPv6 network handover method of duplicate address detectionDAI Hong(1 School of Software, Liaoning University of Science and Technology, Anshan,114051,LiaoNing)Abstract: To solve the problem that mobile IPv6 network duplicate address detection operational delay badly impacts on network handover performance, a method is proposed to reduce DAD operational delay. By combining PIM and MLD protocol with FHMIPv6, the improved FHMIPv6 handover technology is proposed based on Multicast. The experiment makes use of simulation software NS-2.The simulation results shows the improved method decreases DAD delay,reduces the packet lost rate and improves handover performance of mobile network.Key words:duplicate address detection(DAD); handover delay; fast hierarchical mobile IPv6(FHMIPv6);multicast listener discovery(MLD); protocol independent multicast (PIM)0引言标准移动IPv6(Mobile IPv6,MIPv6)切换时延较长,容易造成链接中断和数据包丢失,无法满足网络电话等实时应用和对数据丢失敏感应用的要求。
PN8601 & PN8603 xPON OLT产品规格说明书鼎点视讯科技有限公司文档版本:R03P01产品简介鼎点视讯PN8600系列机框式OLT可提供GPON、EPON、10G EPON、和10GE接入功能,支持包括FTTH、FTTB、FTTC 以及分布式架构DOCSIS在内的多种建网模式,满足家庭接入、企业接入、移动承载和WiFi热点回传等各种业务场景需求,实现一张光纤网全业务。
PN8600系列机框式OLT支持2种规格的业务框。
各种规格的业务框只有业务槽位数不同,功能与网络位置没有区别。
PN8601为13U高机框,支持16个业务槽位;PN8603为5U高机框,支持6个业务槽位;主控板、业务板和软件都能够兼容使用。
PN8600系列机框式OLT配合ONU/MDU/ CMC提供完整的FTTx接入方案,和园区交换机的统一汇聚,可以简化网络结构,提高网络的可靠性。
应用场景产品特性系统能力●最大支持4.8 Tbps背板容量、1.92 Tbps的交换容量,和256K的MAC地址。
.●做为多业务接入设备,支持MDU,ONT,EPON,10G-EPON,CMC统一平台接入,支持基于SNMP的网络管理图形界面,方便今后维护。
高可靠性●提供高度可靠的网络功能,OLT双主控热备份和双电源冗余备份。
.●提供全面的服务质量(QoS)功能,支持流量分类管理、优先级控制和带宽控制。
●基于SLA和优先级的双重管理模式和灵活的宽带管理能力。
多场景应用●支持各种电信业务,如MAC地址绑定和过滤、带宽控制、VLAN、流量控制等管理功能。
●支持虚拟局域网(VLAN)的内部交通交换,满足企业和社区网络的应用需求。
●支持IPTV用户的非收敛接入,单台设备支持2000个组播组。
平滑演进●支持EPON和10G-EPON共平台,实现平滑演进,超高宽带接入。
●支持IPv4/IPv6双协议栈和IPv6组播,实现IPv4向IPv6的平滑演进。
NS2仿真软件在TCP协议教学中的应用[摘要]网络仿真工具ns2应用于tcp协议的教学活动中,不仅可以向学生动态的显示tcp 数据流的流向、数据包丢弃等状态,而且可以静态的分析tcp协议的序号--确认的机制、窗口与流量控制和动态拥塞控制等方面的内容,从而使课堂教学活动变得生动、形象、直观,学生更好的理解和掌握tcl协议的本质和内涵。
[关键词]tcl协议 ns2 仿真教学一、引言tcp,即传输控制协议,是目前网络上使用最多的一种传输协议,它与ip协议相结合,组成了因特网协议的核心。
tcp协议采用各种机制(如采用序列号、确认、滑动窗口、流量控制和拥塞控制等)来保证端到端结点之间的可靠数据传输。
在传统的教学模式中,一般只能从理论上分析tcp协议的各种机制,无法使用试验手段让学生获得感性认识,原因是构建一个试验的网络环境是非常困难的,即使真实的网络环境可以获得, 然而这种非理想的场景中影响因素众多, 学生难以了解到各种因素带来的真正效果[1]。
因此,大多数学生感觉这些内容比较抽象空洞,难以理解和掌握,如此教学使得学生索然无味, 失去学习兴趣[2]。
目前,网络仿真技术广泛的应用在科学研究上。
网络仿真是使用计算机技术构造网络拓扑、实现网络协议的模拟网络行为,它包括网络拓扑仿真、协议仿真和通信量仿真, 模拟网络流量在实际网络中传输、交换等的过程[1]。
它能获取特定的网络特性参数, 进而可对网络性能进行研究和分析[3、4、5]。
目前应用最为广泛的网络仿真软件是ns2[6]。
它是一款源代码开放且免费的模拟软件,任何人都可以获得、使用和修改其源代码,因此使用ns2来构建特殊的网络仿真实验教学环境变得既灵活又方便迅速[7]。
因此,将网络仿真软件ns2应用到tcp协议的教学活动中,通过nam工具的动画演示可以清晰地向学生演示网络协议的运行过程,这有利于帮助学生掌握知识难点,提高学生的学习兴趣[8]。
同时,通过对比演示和仿真结果的追踪分析,可以使学生理解各种环境或因素对tcp协议及各种机制的影响,以及各种策略的优缺点,从而能切身体会和理解网络基础理论的实质,将抽象的网络概念形象化,把枯燥的网络原理具体化。
1.引言随着IP 网络的迅速发展而不断提出更多新的协议和算法,以及研究如何利用和整合现有的网络资源使网络达到最高效能,对于网络技术和网络性能的研究成了目前网络研究的热点领域。
进行网络技术研究的方法主要有理论分析、试验测试和网络仿真等,其中网络仿真以其灵活性、高效性和低费用等优点而成为网络技术研究的重要手段。
本文要介绍的是目前应用较为广泛的网络仿真软件NS-2[1](Netwo rk Sim ulator Version 2),它是在美国DARPA 的项目VINT (Virtual InterNet Testbed)支持下,由伯克利大学开发而成的源代码开放的免费软件。
NS-2有C ++和OT cl 两种语言编写而成,可以运行在装有C++编译器的通用操作系统(如Unix 、Linux 或Wind ows 等)。
它是一种易扩展、易配置、基于离散事件驱动、面向对象的网络仿真软件,既能进行现有网络元素的仿真分析,又能开发新协议、新方案以及真实网络的故障诊断。
它支持大型、多协议、多种类型数据流的网络仿真,支持多种IP 网络类型的仿真,实现了对许多网络协议(如T CP 、UDP 等)及数据源(如FT P 、WWW 、Telnet 、Web 和C BR 等)的仿真,也实现了M ulticast 和一些应用于局域网仿真的在M AC 层的协议,仿真了路由队列的缓冲管理机制,如Drop T ail,RED 和CBQ 等,实现了Dijkstra 和其它的路由算法。
NS-2中许多协议代码都和实际网络中的应用代码十分相似,能近乎真实的仿真IP 网络的多种情况和行为。
2.NS -2的结构与仿真原理2.1.NS-2构成NS-2软件是由许多模块构成的一个软件包。
包括Tcl/T k,OTcl,NS,T clCL 等五个必选模块,TclDebug,Nam,Xg raph,GT -ITM ,SGM,CWEB,Z lib 等七个可选模块。
Tail Drop队列管理算法分析
赵俊安 09053119
1.Tail Drop 算法概要
传统的 Internet 路由器用 Tail Drop 策略来进行队列管理,如果输出端缓存产生溢出,则丢弃到达的包。
Tail Drop 不需要选择丢弃的包,只是在系统没有空闲缓存时丢弃到达的包。
也不需要保留任何与用户流相关的状态信息。
从拥塞控制的角度看,它仅仅是一种拥塞恢复机制。
虽然在 Internet 上工作了许多年,但始终存在三个严重缺陷:持续满队列、业务流全局同步、业务流对缓存死锁。
随后又出现了“首丢弃”及“随机丢弃”策略, 但始终没有解决持续满队列问题。
2.Tail Drop 实现原理
当路由器队列长度达到最大值时,通过丢包来指示拥塞,先到达路由器的分组首先被传输。
由于路由器缓存有限,如果包到达时缓存已满,那么路由器就丢弃该分组。
一旦发生丢包,发送端立即被告知网络拥塞,从而调整发送速率。
3.对ns中drop tail相关源码分析
ns中关于drop tail的实现代码是ns-版本号目录下queue子目录的drop-tail.h和 。
drop-tail.h头文件定义DropTail类,实现该类的功能。
在drop-tail.h :
class DropTail : public Queue {
public:
DropTail() {
q_ = new PacketQueue;
pq_ = q_;
bind_bool("drop_front_", &drop_front_);
bind_bool("summarystats_", &summarystats);
bind_bool("queue_in_bytes_", &qib_); // boolean: q in bytes?
bind("mean_pktsize_", &mean_pktsize_);
// _RENAMED("drop-front_", "drop_front_");
}
~DropTail() {
delete q_;
}
protected:
void reset(); //重置队列
int command(int argc, const char*const* argv);
void enque(Packet*); //进入队列
Packet* deque(); //出队列
void shrink_queue(); // To shrink queue and drop excessive packets. 缩小队列和丢弃过多的数据包
PacketQueue *q_; /* underlying FIFO queue */
int drop_front_; /* drop-from-front (rather than from tail) */从队列前项丢包标志
int summarystats; //队列概要状态信息标志,用于判断是
否打印队列概要状态信息
void print_summarystats();//打印队列概要状态信息
int qib_; /* bool: queue measured in bytes? */ //以字节计算队列标志
int mean_pktsize_; /* configured mean packet size in bytes */ //平均包的大小用于计算队列的大小
};
对drop tail队列操作有
1.void enque(Packet*); 进队列操作
该操作为先根据summarystats判断是否更新队列的信息。
然后计算队列限制大小qlimbytes,判断是否满队列,是,根据drop—front
变量标记选择从队列还是从队尾丢弃包。
否,将包进入缓冲队列中。
2.Packet* deque(); 出队列操作
该操作为按照队列先进先出顺序将数据包出队列。
(主要为进队列调用)
3.void shrink_queue(); 缩小队列和丢弃过多的数据包
该操作为计算现在队列的限制大小qlimBytes,通过丢弃队列的包,将队列大小缩减为qlimBytes一般大。
丢弃包可选择为队列前面丢弃和后面丢弃。
4.int command(int argc, const char*const* argv);执行队列管理命令。
通过该函数可以对队列调用
printstats,shrinkqueue,packetqueue-attach命令来管理队列。
Printstats 是打印队列状态概要信息。
shrink-queue是调用shrinkqueue函数来缩减队列到限制大小。
Packetqueue-attach 将队列与tcl命令相关联。
总结:
Drop Tail仍是目前Internet使用最为广泛的分组排队、丢弃的方式。
这种方式将拥塞控制的责任都推给网络边缘。
所以TCP假定网络中的路由器对拥塞控制不起任何作用,而独自承担检测和响应拥塞的全部责任。
本文主要是通过drop tail源码解读该队列管理机制是怎么实现的。
Drop tail虽然不是最优的队列管理算法,但是使用范围最大的,了解它的实现,是很有必要的。