下载此文档

ResipRocate协议栈looking.doc


文档分类:通信/电子 | 页数:约54页 举报非法文档有奖
1/54
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/54 下载此文档
文档列表 文档介绍
协议栈的层次
SIP为应用层(Application-Layer)的协议,所以不需要改变操作系统便可以支持。SIP 已经获得3GPP (Third GenerationPartnership Project)、3GPP2 (Third Generation Partnership ProjectNumber 2)等机构认证,成为未来第三代行动通讯(3G) 的标准。
事务用户层(Transaction User)
事务层(Transaction )
传输层(Transport)
语法与编码层(Syntax and Encoding)
下面是SIP的分层图示,IETF坚持分层,不同模块功能相对独立,各层之间松散耦合。
关于Resiprocate设计

首先祭出这面大旗,”类是对概念的描述,面向接口编程;封装变化的概念。”---这不是我讲的,是大师们的口水。
Resiprocate中大部分类就是对RFC3261各种SIP元素、组件的封装,并且也体现了RFC协议设计的层次。
在面向对象的设计中我们首先就要厘清问题域的所在;SIP Stack的设计就是要充分考虑完整展现RFC定义的各种元素和概念以及让这些独立而又关联的元素互动起来成为一个活的系统。
可以这样来考虑,比如我们知道RFC定义了一个SIP MESSAGE的概念;下面是从
RFC文档拷贝的内容:
SIP 消息= 起始行
*消息头部
CRLF(空行)
[消息体]
因此SIP Message这个概念元素还包括了更多的元素和概念;SIP Message中我们能抽
象出更通用的概念我们暂且叫它Message; 起始行的概念E文RequestLine以及Sattus Line又包括了很多消息头(这是包容的关系),SIPURL也包括消息头,等等,还有什么参数什么的元素呢;当我们在考虑和提炼这些概念和元素的时候,我们思考怎么抽象他们呢,它们又有什么基本的元素及其共性呢?他们之间的关系如何组织呢?esiprocate的源码告诉了我们如何去设计和封装这些概念的上佳实现。在Resiprocate中一些RFC3261中定义元素的对应:
建议:利用CRC卡片的方式去记录理解Resiprocate中的大量的类及其关系。CRC:类、职责、协作。
部分设计的理解:
OBSERVER/MAND/ITERATOR模式,工厂模式(大量容器的使用也是一种变体如:DialogSet),代理类句柄类(界面实现分离,隐藏实现…),……
大量的界面类(如AppXXX系列)是遵循大师BS“界面和实现分离”的原则吧;而句柄方式对对象的间接管理是老外的惯用伎俩啦,关于句柄设计从大师BS的著作到<<Effective C++>>的Handle_Body论和<<C++沉思录>>的大段描述再到<<C++ Model Design>>都有发挥和外延,感兴趣可以观之。
插播:
源码中的大量Clone函数是模仿大师BS的虚拟构造函数一说也是原型模式的体现;源码中对同步的封装值得借鉴,其中有“资源开始即初始化”理论的体现;在DUM部分回调机制所遵循的著名“好莱坞原则”;句柄和代理的一个特点就是重载了operator->、operator*等;源码中也非常注重效率如Sip Core部分中大量Hash表的建立。
T* operator->()
{
return get();
}
const T* operator->() const
{
return get();
}
T& operator-> ()
{
return *get();
}
const T& operator*() const
{
return *get();
}

Handled::Handled(HandleManager& ham) :
mHam(ham),
mId(Handled::npos)
{
mId = (this);
}
Handled::Id
HandleManager::create(Handled* handled)
{
mHandleMap[++mLastId] = handled;// typedef HashMap<Handled::Id, Handled*> HandleMap;
//HandleMap mHandleMap;
return mLastId;
}
1. SIP Stack分析
Resiprocate SIP Stack系统架构图示
FIFO流的走向图
Sending datagram

ResipRocate协议栈looking 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数54
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhongxinado
  • 文件大小758 KB
  • 时间2018-08-18