1 / 65

VoIP 协议介绍

VoIP 协议介绍. 北京大唐高鸿数据网络技术有限公司. 由 NordriDesign 提供 www.nordridesign.com. 目录. VoIP 概述 H.323 协议简介 SIP 协议简介 抓包和协议分析 PSTN 接口简介. VoIP 概述. 什么是 VoIP. VoIP Voice over Internet Protocol 在 IP 网络或者包交换网络中传输语音 模拟声音讯号 (Voice) 数字化,以数据封包 (Data Packet) 的型式在 IP 数据网络 (IP Network) 上做实时传递

thina
Download Presentation

VoIP 协议介绍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VoIP协议介绍 北京大唐高鸿数据网络技术有限公司 由NordriDesign提供 www.nordridesign.com

  2. 目录 VoIP概述 H.323协议简介 SIP协议简介 抓包和协议分析 PSTN接口简介

  3. VoIP概述

  4. 什么是VoIP • VoIP • Voice over Internet Protocol • 在IP网络或者包交换网络中传输语音 • 模拟声音讯号(Voice)数字化,以数据封包(Data Packet)的型式在 IP 数据网络 (IP Network)上做实时传递 • 将模拟的声音信号经过压缩与封包之后,以数据封包的形式在IP 网络的环境进行语音讯号的传输,通俗来说也就是互联网电话、网络电话或者简称IP电话的意思。

  5. VoIP常用协议 • H323 • ITU-T标准 ,在无QoS保证的包交换网络上进行多媒体通信 • 1996年推出第一版 • SIP • IETF标准,用于和一个或多个参与者创建、修改和终止会话 • 1999年形成RFC2543 • 目前最新是RFC3261 • MGCP • IETF标准,用于软交换和媒体网关之间的协议 • 1999年10月形成IETF RFC2705 • Megaco/H.248 • ITU-T与IETF合作推出,功能类似于MGCP • 2000年6月推出

  6. H.323协议简介

  7. 什么是H.323 • 由ITU-T制定的一种支持在无QoS保证的分组交换网上实现实时多媒体通信的协议 • 支持多点功能,组播和带宽管理 • 支持语音,视频和数据的传输

  8. H.323协议组件

  9. H.323协议组件 多点控制单元 MCU 网守 Gatekeeper PSTN IP网络 网关 GW 终端 Terminal

  10. H.323协议组件-终端 • 终端是分组网络中能提供实时、双向通信的节点设备,也是一种终端用户设备,可以和网关、多点接入控制单元通信 视频I/O 设备 TCP/IP 编码/压缩 A/D转换 音频I/O 设备 数据应用 T.120 System Control H.245 Control 系统控制 用户接口 Call Control H.225.0 RAS Control H.225.0

  11. PSTN/ISDN IP H.245 Control Call Control H.225.0 RAS Control H.225.0 H.323协议组件-网关 • 网关提供H.323网络与非H.323网络之间信令和媒体的转换 网关 接口 FXS/FXO E1/T1 Video/ Audio Codec LAN 接口 System Control

  12. H.323协议组件-网守 • 概述 • 管理一个域中的网关、终端和MCU等设备 • 功能 • 地址翻译 • 带宽控制 • 鉴权(终端、网关和MCU) • 区域管理 • 多方会议 • 单个GK和该GK管理的H.323端点构成一个域 • 是H.323系统中的一个可选组件

  13. H.323协议组件-MCU • 多点控制单元(Multipoint Control Unit) • 支持3个或3个以上的端点参加的多点会议 • 一个MCU必须包含一个MC和零或多个MP • MC • 在一个多点会议之中提供控制功能 • MP • 在多点会议中从终端接收音频、视频或数据流,处理之后再把它们回送到各个终端

  14. H.323协议簇

  15. H.323协议簇-呼叫控制信令 • RAS Signaling • H.225.0 Call Signaling • H.245 Call Control

  16. H.323协议簇-RAS • 用于GW和GK,GK和GK之间通信的协议 • 主要的消息 • GRQ/GCF/GRJ • RRQ/RCF/RRJ • ARQ/ACF/ARJ • DRQ/DCF/DRJ • LRQ/LCF/LRJ

  17. H.323协议簇-H.225.0 Call Signaling • 用于端点间的呼叫控制 • 主要的消息 • SETUP • CALLPROCEEDING • ALERTING • CONNECT • RELEASE COMPLETE

  18. H.323协议簇-H.245 Call Control • 用于端点间的多媒体通信控制 • 编解码能力协商(音频视频) • 主从确定 • 打开逻辑通道 • 会议控制 • 主要的消息 • TCS(Terminal Capability Set,能力交换) • MSD(Master-Slave Determination,主从确定) • OLC (Open Logical Channel,打开逻辑通道)

  19. H.323协议簇-快速连接( Fast Connect ) • H.245交互过程较为复杂且费时 • 在H.225.0 call signaling中携带快速连接单元来完成H.245协议的功能 • 可以携带在setup, call proceeding, alerting或者connect中

  20. H.323协议簇-基本交互流程(无GK) 终端 B 终端 A Setup Call Proceeding Alerting Connect 建立H.245会话 交互RTP流 Release Complete

  21. H.323协议簇-基本交互流程(有GK) 终端 A GK 终端 B ARQ ACF Setup Call Proceeding ARQ ACF Alerting Connect 建立H.245会话 交互RTP流 Release Complete DRQ DCF DRQ DCF

  22. SIP协议简介

  23. 什么是SIP( Session Initiation Protocol ) • 用于建立、修改、拆除多媒体会话 • 目前的核心RFC为3261 • 支持多种应应用层的信令协议,可以基于: • 视频、语音、即时消息、在席服务、呼叫控制等 • 被NGN(下一代网络)和3G IMS(IP多媒体子系统)采纳作为呼叫控制信令

  24. SIP特点 • 应用层协议,可以基于TCP和UDP等,独立于底层的传输协议 • 根植于IP网络,可以和其他IETF协议配合使用 • RTP/RTCP、SDP、RTSP、DNS • SDP协议用于编解码协商 • 基于文本的协议(类似于HTML) • 阅读和分析SIP协议变得简单

  25. SIP协议实体 • User Agent • SIP SERVER • Proxy server • registrar • redirect server

  26. SIP协议实体-User Agent • 发送和接收SIP请求的逻辑实体 • UAC发送请求 • UAS接收请求 • 常见形态 • SIP 话机 • 桌面型SIP软件电话 • PSTN网关 1) request 2) response

  27. SIP协议实体-Proxy • Stateful Proxy server • 维持呼叫状态 • Stateless Proxy server • 不维持呼叫状态 1) request 2) request 4) response 3) response

  28. SIP协议实体-Redirect Server • 将请求中的地址映射为零个或多个新的地址,返回给客户端 • 客户端直接向这些新的地址发起请求 • 主要完成路由功能 1) request 3) response 4) response 5) request 6) response

  29. SIP协议实体-Registrar • 注册服务器 • 接受UA的注册 • 通常与Proxy或者Redirect server共存 1) request 3) response

  30. SIP Uniform Resource Indicators (URIs) • 用于标识一个呼叫资源 • 类似于EMAIL地址 user@domin形式 • 包含两种URI方案 • sip:henry@gohigh.com SIP URI • sips:henry@gohigh.com secure SIP URI • 两种类型的SIP URIs • Address of Record(用户标识)sip:henry@gohigh.com 需要服务器解析域名gohigh.com • Contact (设备标识)sip:henry@203.86.84.75 无需服务器解析

  31. SIP消息 • 请求消息(Request) • UAC发给UAS • 使用请求行-Request-Line区分是哪一种请求消息,请求行包括:Method、 Request-URI、 Protocol version • 响应消息(Response) • UAS发给UAC • 状态行-Status-Line记录对请求的响应码

  32. SIP消息- Request • REGISTER • 注册请求,上报用户信息,完成号码绑定 • INVITE • 发起会话请求 • CANCEL • 取消一个尚未完成的请求,特别针对INVITE • ACK • 为INVITE请求提供三次握手 • BYE • 结束会话请求 • OPTION • 查询服务器能力

  33. SIP消息- Response • 1XX • 临时响应,表示请求正在处理中 • 2XX • 成功响应消息 • 3XX • 重定向消息 • 4XX • 客户端错误,错误来源于UAC • 5XX • 服务端错误,错误来源于UAS • 6XX • 全局错误

  34. SIP典型流程-注册 • UA设备开机需要向服务器注册 • 当sip client地址发生变化时也需要重新注册 • 注册信息需要定时刷新 REGISTER(1) UA 401 (2) REGISTER(3) 200 (4)

  35. SIP典型流程-呼叫建立 UA1 UA2 INVITE with SDP 100 Trying 180 Ringing 200 OK with SDP ACK RTP

  36. SIP典型流程-呼叫拆除 UA1 UA2 INVITE with SDP 100 Trying 180 Ringing 200 OK with SDP ACK BYE 200 OK

  37. SIP典型流程-重定向呼叫 UA1 Redirect Server UA2 INVITE 301 Moved Permanant INVITE 180 Ringing 200 OK ACK

  38. SIP典型流程-代理呼叫 UA1 proxy Server UA2 INVITE INVITE 100 Trying 100 Trying 180 Ringing 180 Ringing 200 OK 200 OK ACK ACK RTP

  39. 软交换体系架构

  40. 抓包及协议分析

  41. 抓包工具的使用方法(一) • 可以采用抓取IP报文的方式来定位问题 • 可以定位注册服务器失败,呼叫失败,语音单通等多种故障 • 目前常用的软件为WIRESHARK • 免费软件 • 可以对VoIP协议进行分析 • 使用方便简单 • 抓包方法 • 将wireshark安装在PC上 • 将需要抓包的设备(如IP话机)和PC接在同一个HUB下 • 打开wireshark软件开始抓取IP包 • 等待问题现象出现抓到所需报文后停止抓包

  42. 抓包工具的使用方法(二) • 点击左上角图标列出所有PC上的以太网口 • 选择要抓包的网口,点击Start即开始抓包

  43. 抓包工具的使用方法(三) • 可以在“Filter”栏中输入过滤条件看指定协议的报文 • 对于IP话机的常见问题都可以使用sip这个条件来过滤

  44. 请求消息INVITE分析(1/8) • 起始行(Start Line) • Method: INVITESIP URI • Request-URI: sip:1000@1.1.1.1 • Sip Version: SIP/2.0 INVITE sip:1000@1.1.1.1 SIP/2.0 v: SIP/2.0/UDP 192.168.1.126:5060 t: <sip:1000@1.1.1.1;user=phone> f: “Flood"<sip:2000@1.1.1.1;user=phone>;tag=7c3c1168-01d6-01c2-13d0-00e0bb1ad1da i: 7c3c1168-01d6-01c2-13d1-00e0bb1ad1da@192.168.1.126 CSeq: 5001 INVITE m: <sip:2000@192.168.1.126:5060> User-Agent: "3Com-SIP-Phone/V7.0.14.15" c: application/sdp P-Asserted-Identity: “Flood" <sip:2000@192.168.1.126> l: 210

  45. 请求消息INVITE分析(2/8) INVITE sip:1000@1.1.1.1 SIP/2.0 v: SIP/2.0/UDP 192.168.1.126:5060 t: <sip:1000@1.1.1.1;user=phone> f: “Flood"<sip:2000@1.1.1.1;user=phone>;tag=7c3c1168-01d6-01c2-13d0-00e0bb1ad1da i: 7c3c1168-01d6-01c2-13d1-00e0bb1ad1da@192.168.1.126 CSeq: 5001 INVITE m: <sip:2000@192.168.1.126:5060> User-Agent: "3Com-SIP-Phone/V7.0.14.15" c: application/sdp P-Asserted-Identity: “Flood" <sip:2000@192.168.1.126> l: 210 • Via header • 包含此请求消息对应的响应消息需要回复的地址,示例中标识了发起请求的UA地址 • 同一个消息中可以包含多个Via header域,每个域中又可以包含多个entity地址

  46. 请求消息INVITE分析(3/8) INVITE sip:1000@1.1.1.1 SIP/2.0 v: SIP/2.0/UDP 192.168.1.126:5060 t: <sip:1000@1.1.1.1;user=phone> f: “Flood"<sip:2000@1.1.1.1;user=phone>;tag=7c3c1168-01d6-01c2-13d0-00e0bb1ad1da i: 7c3c1168-01d6-01c2-13d1-00e0bb1ad1da@192.168.1.126 CSeq: 5001 INVITE m: <sip:2000@192.168.1.126:5060> User-Agent: "3Com-SIP-Phone/V7.0.14.15" c: application/sdp P-Asserted-Identity: “Flood" <sip:2000@192.168.1.126> l: 210 • To、From和Call-ID 唯一标志SIP会话中的对话(dialog) • To header包含接收请求消息的目标URI地址 • From header包含发送请求消息的display name(Flood)和起始URI地址,这两个值确定请求消息的发送源 • Tag parameter以及Call-ID是由发送源UA产生,包括随机的字符串、UA主机名称或者UA地址等。

  47. 请求消息INVITE分析(4/8) • Command Sequence包含一个整数和method名称 • 整数代表CSeq number,同一个对话中的请求消息序列号按照发送时间的顺序依次递增“1” • Contact包含到达消息源的直接路由URI INVITE sip:1000@1.1.1.1 SIP/2.0 v: SIP/2.0/UDP 192.168.1.126:5060 t: <sip:1000@1.1.1.1;user=phone> f: “Flood"<sip:2000@1.1.1.1;user=phone>;tag=7c3c1168-01d6-01c2-13d0-00e0bb1ad1da i: 7c3c1168-01d6-01c2-13d1-00e0bb1ad1da@192.168.1.126 CSeq: 5001 INVITE m: <sip:2000@192.168.1.126:5060> User-Agent: "3Com-SIP-Phone/V7.0.14.15" c: application/sdp P-Asserted-Identity: “Flood" <sip:2000@192.168.1.126> l: 210

  48. 请求消息INVITE分析(5/8) • User-Agent是可选域,包含发送消息的UA信息 • Content-Type代表消息体所包含的媒体类型 • P-Asserted-Identity是可选域,用于标识可信任实体 • Content-Length表示消息体的内容长度 INVITE sip:1000@1.1.1.1 SIP/2.0 v: SIP/2.0/UDP 192.168.1.126:5060 t: <sip:1000@1.1.1.1;user=phone> f: “Flood"<sip:2000@1.1.1.1;user=phone>;tag=7c3c1168-01d6-01c2-13d0-00e0bb1ad1da i: 7c3c1168-01d6-01c2-13d1-00e0bb1ad1da@192.168.1.126 CSeq: 5001 INVITE m: <sip:2000@192.168.1.126:5060> User-Agent: "3Com-SIP-Phone/V7.0.14.15" c: application/sdp P-Asserted-Identity: “Flood" <sip:2000@192.168.1.126> l: 210

  49. 请求消息INVITE分析(6/8) • “v=“表示SDP协议的版本 • “o=“由<username> <session id> <version> <network type> <address type> <address> 组成 • “s=“表示会话名称 • “c=“包含连接数据 v=0 o=- 3687453239 0 IN IP4 192.168.1.126 s=652001 c=IN IP4 192.168.1.126 t=0 0 m=audio 8008 RTP/AVP 18 0 96 a=rtpmap:18 G729/8000 a=rtpmap:0 PCMU/8000 a=fmtp:96 0-15 a=rtpmap:96 telephone-event/8000

  50. 请求消息INVITE分析(7/8) • “t=“表示会议会话的开始和截止时间 • “m=“包含媒体描述符 • “a=“表示能力集描述符表示会话名称 v=0 o=- 3687453239 0 IN IP4 192.168.1.126 s=652001 c=IN IP4 192.168.1.126 t=0 0 m=audio 8008 RTP/AVP 18 0 96 a=rtpmap:18 G729/8000 a=rtpmap:0 PCMU/8000 a=fmtp:96 0-15 a=rtpmap:96 telephone-event/8000

More Related