标签:pkt 4.3 Agent 计时器 路由 olsr 数据包 protoname Routing
protoname/protoname.h
我们定义了一个叫做agent的新类,包含帮助协议完成其工作所需的属性和函数。
为了说明计时器的使用,我们假设质子体是一个主动的路由协议,需要定期发送一些控制数据包。
具体看代码
4.1 TCl 钩子
第 3 节中看到了如何将我们自己的数据包绑定到 Tcl 上。
现在我们将对agent代理类做同样的操作。其目的是让olsr从 Tcl 中实例化
为此,我们必须从下一个代码中描述的类 TclClass 中继承
protoname/protoname.cc
4.2计时器 p277
每指定一个任务,该任务就可能要计时器来结束或者进行别的事情
4.3Agent
4.3.1构造结构
4.3.2命令 p105
//打印rtable的一个实例:
//它假设 ns_包含一个模拟器的实例,而 node_是一个由 ns_创建的节点。我们将 255 作为参数传递,因为这是路由代理附加到的端口数。
//simulation.tcl
//1: $ns_ at 15.0 "[$node_agent255] print_rtable"
4.3.3 recv() p508
只要收到数据包,这个函数就会被调用。它识别接收到的数据包的类型并相应地处理它。
4.3.4 recv_protoname_pkt()
让我们假设路由代理已经收到了一个olsr数据包,从而使得要调用 recv_olsr_pkt()
这个函数的实现将根据具体的协议而有很大的不同
!!!黑洞节点在这里设置
4.3.5 send_protoname_pkt()
数据包是事件,因此需要安排它们。事实上,发送一个数据包相当于在某个时间安排它
4.3.6 reset _protoname_pkt_timer()
我们的数据包发送计时器执行另一个回调(第 4.2 节)来重新安排自己。它是在恢复^质子^pk^计时
器()的功能中完成的。我们将在下一个例子中展示,其中 pkt_timer_被重新安排到五秒后过期。
olsr中没有
4.3.7 forward_data()
//到目前为止,我们主要关注olsr数据包,但现在是时候处理数据包了。
//forward_data()函数决定是否必须将数据包传递到上层代理或转发到其他节点
标签:pkt,4.3,Agent,计时器,路由,olsr,数据包,protoname,Routing 来源: https://www.cnblogs.com/libxing/p/16642425.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。