协议圣经-谈端口和四元组
Posted qianbo_insist
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了协议圣经-谈端口和四元组相关的知识,希望对你有一定的参考价值。
先聊一些库和开源软件
服务器软件制作的一些库,很多库有如下问题:
1、 坚持使用四元组来做一个会话session
像老牌的rtp lib库 jrtplib是使用这样的元组来标识session的,udp 传入和tcp传入不同,假定使用代理,除了二层协议代理,如果使用四层代理,你得到的源端口和源IP是一样的,这样会产生一个错误,就是即使是rtp协议中的ssrc 不一样,他也缓存为一个ssrc,使用getssrc 函数发生错误,这是他的bug
2、 不识别ssrc
这个和上面的问题是一个,但又不是一个,识别ssrc是一个元组中的多个通道的正常做法,当然可以使用payload来识别不同的源,比如音频和视频,但这不够。比如zlMediaServer,也是不识别的,发现同样元组的数据,ssrc和以前不一样,直接丢弃,这是不对的。
3、做法
不应该把四元组作为铜带,应该把ssrc 和payload 分离出来,比如在做代理的时候。
tcp代理没有问题,session会话变了,端口变了。
udp 代理,若使用同样的IP,同样的端口,很多软件都发生错误。
我的做法是udp 在传输层使用不同的端口,只要分辨出不同的IP来源,就为其分配不同的端口,这样像那些server 还是可以用的。
4 总结
就这么几句话,如果我们能理解,说明我们是个实干家,在实践中懂得了这些理论。后期增加代码来说明。
以上是关于协议圣经-谈端口和四元组的主要内容,如果未能解决你的问题,请参考以下文章