电商网站建设技术,个人网站源码php,建筑公司网站页面图片,wordpress数据多大后慢SIP代理服务器分两种#xff1a; 1#xff09;无状态代理服务器#xff1a;简单的转发功能#xff0c;通过请求信息来选择转发的目的和路由。消息一旦转发立即丢弃。 2#xff09;有状态代理服务器#xff1a;记录到来的请求和发送的请求的信息#xff08;特别是事务状态…SIP代理服务器分两种 1无状态代理服务器简单的转发功能通过请求信息来选择转发的目的和路由。消息一旦转发立即丢弃。 2有状态代理服务器记录到来的请求和发送的请求的信息特别是事务状态并以此来控制以后的消息处理。还具有消息的分支fork功能。
1 有状态代理服务器 有状态代理服务器是一个纯粹的事务处理引擎。 如图1有状态代理服务器包含一个服务器端事务及与其相关的一个或多个客户端事务联系两者的是更高一层的代理处理模块代理内核。 当一个请求到来之时先建立一个服务器端事务来处理该请求然后通过内核来决定请求的路由并选择一个或多个下一跳位置所以再构建多个客户端事务把请求发送出去。 -------------------- | | --- | | | C | | | | T | | | --- ---| Proxy | --- CT ClientTransaction | S | | HigherLayer | | C| | T || | | T | ST ServerTransaction ---| | --- | | --- | | | C | | | | T | | | --- -------------------- Figure 1: Stateful Proxy Model 当一个请求到来之时proxy处理请求必须 1、 验证请求 2、 预处理路由信息 3、 决定请求的目的(targets) 4、 转发请求到每一个目的地 5、 处理所有的应答
2 验证请求 在proxy转发请求之前它必须检查消息的合法性。一个合法的消息必须经过如下的检查 1、 合法的语法 2、 URI scheme 3、 最大转发次数 4、 (可选)循环检测loop detection 5、 proxy-require 6、 proxy-authorization 1合法的语法 请求中的任何与检查相关的部分或者与请求转发节相关的部分都必须语法严格无误。在检查中其他部分的严格与否在检查中都被忽略并且在转发消息过程中保持不变。 3最大转发次数 如果请求包含一个Max-Forwards头域并且这个头域为0那么这个proxy不能转发这个请求。但是如果请求是OPTIONS请求那么proxy可以作为最终响应者来响应这个请求。 5proxy-require 检查 本协议的以后的扩展可能会要求额外的proxy特性。所以终端会在请求中包含一个Proxy-Require头域来表明会使用到那些特性这样proxy就可以根据Proxy-Require判定自己是否能够支持这些特性。 如果请求包含一个Proxy-Require头域(20.29)并且有一个或者多个本proxy不能理解的option-tags。那么这个proxy必须返回一个420BadExtension错误并且这个错误应答必须包括一个Unsupported(20.40)头域列明了那些option-tags这个proxy不能支持。
3 预处理路由信息 proxy必须检查请求中的Request-URI部分。如果Request-URI包含了一个本proxy早先放在Record-Route头域中的值proxy必须用Route头域中的最后一个值来替换Request-URI并且从Route头域中删去这个值。proxy必须接着按照个修改后的请求进行处理。 如果Route头域的第一个值就是这个proxy那么proxy必须从请求中把它移去。
3确定请求的目的 1如果Request-URI的区域并非本proxy负责的区域那么Request-URI必须放在目标集合中并且作为唯一一个目标URI。 2如果proxy是负责Request-URI所指明的区域的proxy可以用任何机制来决定往哪里发送这个请求。proxy可以在请求转发的时候增加目的地。他可以在处理过程中用任何可以获得的信息来决定新的目的地。例如proxy可以选择把一个转发应答3xx所包含的联系地址合并到目的地集合中。