TR069协议简单理解
最后一首情歌
TR069协议简单理解
tr069 协议代码逻辑整理总结:
屁股的屁组词1.协议初始化
1) log相关的初始化⼯作;
2) 读取配置⽂件,包括协议相关参数的初始化、是否第⼀次运⾏(为之后第⼀次inform做准备)、是否包含上次运⾏未完成任务(如:重启、恢复出⼚设置等,需要在第⼀次inform中做相应的informrespon)
3) 判断是否需要ssl并做ssl的初始化⼯作
写通知4) 初始化数据模型信息
5) 如果是tr069-Amendment,则需要对tr111协议进⾏初始化
6) 配置第⼀次inform的信息,并进⾏⾸次的inform,如果出于灵活性考虑,此步可以放到初始化完成后任何时机处理
7) 如果需要tr111,则需要在⾸次inform之后启动tr111,⼀般tr111的链接参数应该是在⾸次inform中从ACS反馈给CWMP
8) 进⼊httprver,开始监听从ACS发送过来的命令,此httprver只在没有tr111的情况下⽣效,如果有tr111则命令通过tr111的udp命令发送并在带有6 CONNECTION REQUEST的inform消息的informrespon中传递命令过年放假有工资吗
2.会话开始
1) 会话最好在单独的线程中处理,因为可能涉及到耗时的操作,如:下载、上传等
2) 会话分为本地发起和ACS发起,实质都是在CWMP中⾸先发起inform。ACS发起是指ACS通过httprver或者tr111发起链接请求,然后CWMP发起infrom,之后ACS在infromrespon中传递命令;本地发起只是在启动时主动发起带有0 BOOTSTRAP或者1 BOOT的inform,其中可能还包含上次未完成的inform,如:重启、恢复出⼚设置等,此时还需要包含指令完成信息,如:M Reboot、7 TRANSFER COMPLETE等。
3) 每次的会话都是全新的⽹络连接,会话开始时需要先发起对ACS的链接(TCP),并发送空的信息到ACS验证链接,之后根据不同的eventcode创建inform消息,创建成功后发送inform到ACS,并等待inf高中数学论文
romrespon,收到infromrespon后发送空消息到ACS,等待ACS的指令。如果没有新的指令,则会话结束,否则根据指令信息再次发送inform直⾄没有新指令为⽌。
<111协议
豆豉炒苦瓜1) tr111协议主要是在cwmp处于内⽹环境时,⽆法通过httprver直接链接到CWMP以实现对CWMP的控制,所以通过NET打洞的⽅式(及STUN协议)实现对CWMP的控制,tr111协议是对STUN协议的简单应⽤,抛弃了STUN协议的部分特性,协议报⽂完全遵循STUN协议报⽂格式。分为三部分:保活、bind、命令接收。过冬
幸福三十六计
2) 保活顾名思义主要是为了保持对ACS的链接,周期性发送,发送内容为bindingrequest,ACS会返回bindingrespon以确定链接没有断开
3) bind主要是在启动时发送到ACS以实现NAT打洞,之后会收到ACS发送的打洞IP,及内部外⽹IP,之后ACS发起的链接主要通过该IP。之后CWMP需要发送带有4 VALUE CHANGE的inform已确定打洞成功。并且需要在每次CWMP地址发⽣变化时发起bind。
4) 命令接收主要是ACS通过内部外⽹IP发起链接请求,在CWMP收到链接请求之后发起带有6 CONNECTION REQUEST的
infrom,ACS通过之后的informrespon发送指令到CWMP以实现对CWMP的控制