TLS UDP TCP 在视频通话过程中怎么选择?
2016-10-12 10:44
1336 查看
FreeSWITCH小结:关于sip的UDP、TCP
P2P 通话设置1,FS 需要用passthrough模式,客户端之间完全透传SDP
2,客户端设置对应的turn server,可用coturn 或其他turn server
为啥马赛克比较严重?UDP 不稳定
p2p的 SDP很长超过1500字节,udp 无法传输, TCP 是因为很多国产手机无法自动分片,导致呼叫失败,TLS 应用层分片保证INVITE正常传输
1、关于SIP的UDP与MTU的关系
如果sip消息的大小超过了MTU,则有可能被网络中的某一节点分片,而UDP处理分片会有很大的问题,从而导致sip消息传输失败。要解决该问题的话,两种方案:1)减少sip消息的体积,比如减少codecs、x headers等
2)使用tcp来替代udp传输sip消息
这就是为什么sip终端要同时支持tcp与udp的原因。
2、为什么TCP传输sip不会出现问题?
因为tcp传输sip消息时,不会出现分片,下面是具体原因:为什么TCP不会造成IP分片呢?原因是TCP自身支持分段,在TCP进行三次握手的时候,会协商MSS的大小(一般就是MTU),该MSS值存放在TCP段的选项中。当TCP要传输长度超过MSS(Maxitum Segment Size)的数据时,会先对数据进行分段,因此,TCP一般不会造成IP分片。
而UDP和ICMP就不支持这种分段功能了,UDP和ICMP认为网络层可以传输无限长(实际上有65535的限制)的数据,当这两种协议发送数据时,它们不考虑数据长度,仅在其头部添加UDP或ICMP首部,然后直接交给网络层就万事大吉了。接着网络层IP协议对这种“身长头短”的数据进行分片,不要指望IP能很“智能”地识别传给它的数据上层头部在哪里,载荷又在哪里,它会直接将整个的数据切成N个分片,这样做的结果是,只有第一个分片具有UDP或者ICMP首部,而其它分片则没有。
备注:
最大传输单元(Maximum Transmission Unit)
相关文章推荐
- TIUDPClient使用过程中出了一个问题,请教一下怎么解决
- 孙鑫VC视频教程笔记之第十四课“基于TCP和UDP的Socket编程”
- tcp/udp建立连接并通信的过程
- 为什么视频用udp不用tcp
- 如何改善音视频通话过程中的用户体验?
- TCP,UDP IO模型(一)WSAAsyncSelect 异步选择
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- 详解TCP和UDP数据包以及连接过程
- 剖析tcp与udp及应用场景协议方案选择
- 视频通话过程中的播放模式和缓冲设置
- 怎样选择TCP或者UDP??
- 音视频开发(Anychat如何改善音视频通话过程中的用户体验)
- TCP/TLS/UDP 有什么区别?
- 关于TCP/UDP数据传输过程
- TCP UDP 协议的选择
- TCP/IP 协议传输过程(视频)交换机,路由器,pc 它们都在干什么?
- 人生是一个连续的过程,没什么东西能影响人的一生,怎么选择不是问题。问题是每天都要努力
- 孙鑫VC视频教程笔记之第十四课“基于TCP和UDP的Socket编程”
- 详解TCP和UDP数据包以及连接过程
- 网络通信过程 及TCP/UDP 面向连接?