自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 会话初始化 section123

概述当一个UAC期望发起一个会话,它会制定一个INVITE请求。请求会被proxy转投,最终到达可以接受请求的UAS。UAS需要查询用户来判断是否接受请求,然后UAS可以通过回2响应接受请求。如果不接受,回3,4**,5或6响应。在返回最终响应前,UAS也可以发送1临时响应来告知UAC正在连接被叫用户。UAC需要给收到的每个final响应回ACK。300-699的final response由事务层处理(遵循seciotn17的规则),2的由UAC核心生成。对一个INVITE的2响应建立了一个会话,同

2021-11-14 21:31:02 202

原创 SIP协议对话(dialog)

对话表示两个用户代理间持续一段时间的端到端的SIP关系。对话在每个UA通过dialog ID鉴别,dialog ID由callid,本地tag和远端tag组成。消息的dialog ID取决于SIP要素是UAC还是UAS。对UAC,dialog的id是callid,remote tag是to tag,local tag是from tag。UAS的remote tag和to tag正好相反。对话包含一些后续消息传送需要的状态(state)。状态由dialog ID、local sequence numbe

2021-10-30 15:55:38 1578

原创 SIP注册与路由机制

由一个典型呼叫场景引出用户alice与另一个用户bob新建一个会话,请求消息经过abc.com域的代理服务器到达xyz.com域的代理服务器后,该代理服务器如何找到目标用户的主机呢?通过接收到请求的代理服务器(proxy server)或重定向服务器(redirect server),基于用户的位置信息(location of the user),然后把消息转发过去查询用户位置涉及到一个抽象服务叫位置服务(location service)(1) 位置服务(location service)对特

2021-10-18 17:39:47 636

原创 SIP鉴权简介

介绍SIP提供了一个无状态、基于挑战的鉴权机制,该机制基于HTTP的鉴权。任何时候一个UA或代理服务器收到一个请求(除CANCEL和ACK),都可以挑战请求的发起者要求其提供身份的保证。一旦发起者判定了身份,接受者需要确认这个用户是否授权发起这个请求很。本章描述的“摘要”鉴权机制提供了消息鉴权和重发保护,没有消息的完整性和保密性校验。框架SIP协议中,UAS使用401(Unauthorized)响应来挑战UAC的身份。除此以外登录服务器和重定向服务器也可以利用401响应鉴权。但是代理服务器要用4

2021-10-17 21:57:06 1341

原创 SIP协议简介

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-16 16:53:31 5262

转载 彩色空间(Color Space)

背景学习openCV-Python Tutorial,在Image Processing in OpenCV这一节里有提到彩色空间的转换,结合其他的一些资料对彩色空间(Color Space),彩色模型(Color model)这些概念做一些总结。定义彩色空间可以理解为彩色的集合,为了有效地表达彩色信息,需要建立和选择合适的彩色表达模型。通常一种彩色可以用3或4个基本量表示,所以彩色模型是彩...

2018-12-05 22:13:02 8264

转载 宏定义中的"#"与“##”

定义“#”是将宏字符串化(Stringification),“##”是将##左右两边的标签拼接在一起(## is called token concatenation, used to concatenate two tokens in a macro invocation)例子看一段代码#include<stdio.h>#define f(a,b) a##b#defin...

2018-11-18 18:35:46 3860

转载 计数排序(counting sort)

计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序使用一个额外的数组 C ,其中第i个元素是待排序数组A中值等于 i的元素的个数。然后根据数组 C 来将 A中的元素排到正确的位置。计数排序特征当输入的元素是n个 0 到k 之间的整数时,它的运行时间是Θ\ThetaΘ (n+k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组 C 的长度...

2018-11-11 14:24:40 311

转载 在C与C++中的单引号(')与双引号(")

C和C++中的单引号表明单个字符,而双引号则创造一个字符串常量(string literal)。‘a’是一个字符常量,而"a"是一个字符串常量(由一个’a’和一个\n(null terminator))即长度为2的字符数组组成。c++中字符常量是char类型,但是在C中,字符常量是int类型。Reference[1].https://stackoverflow.com/questions/...

2018-11-03 11:28:35 15392

翻译 Protocol Buffers Encoding

背景项目上用到protoBuffer对模块间通信的消息做序列化/反序列化,对如何将这些做编码的很感兴趣,所以看看官方文档的介绍。一条简单消息(A Simple Message)假如有一条简单消息定义如下message Test1 {optional int32 a = 1;}如果在一个应用里,创建了一个Test1消息,然后将a设为150.那么将消息序列化(serialize)到一...

2018-10-27 15:04:02 186

翻译 MySQL record存储顺序与select查询结果顺序

背景一张表中,同一个键值,有两条相同记录,一条在前,一条在后。利用select语句进行查询并且只取第一条结果时,有时查到的是在前的记录,有时则是在后的记录。record在表中的顺序我们不应该希望决定存储记录的物理顺序,原因如下:1)记录是如何存储的不应该是我们关心的2)我们应该关心的是记录是如何被展现的3)由于这个与性能表现相关,所以这个问题应该交给相关领域的专家。通常比较好的方法是...

2018-10-23 20:43:55 1797 1

翻译 exit(), sys.exit()及return区别

背景写python脚本时当代码抛出异常的时候需要终止脚本的运行。函数介绍及举例exit()Constants added by the site moduleThe site module (which is imported automatically during startup, except if the -S command-line option is given) add...

2018-10-08 20:16:03 7026

转载 【转载】Linux内存管理与相关概念

    在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。Linux内存管理的一个特点是无论物理内存有多大,Linux 都将其充分利用(The reason Linux uses so much memory for disk cache is because the RAM is wasted if it isn’t used)。一、内存相关概...

2018-10-01 18:27:05 268

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除