SIP协议栈简介
SIP协议栈流程
-
数据链路层:当SIP消息从网络中传输到达TCP/IP协议栈时,首先被接收到的是数据链路层的数据帧。数据链路层会对数据帧进行解封装,得到网络层的IP数据报。
-
网络层:网络层会对IP数据报进行解析,包括源IP地址、目的IP地址和协议类型等信息。如果协议类型是TCP或UDP,IP数据报会被传递到传输层。
-
传输层:传输层会根据协议类型(TCP或UDP)对IP数据报进行解析。如果协议类型是TCP,数据报会被传递到TCP协议栈。如果协议类型是UDP,数据报会被传递到UDP协议栈。
-
TCP协议栈:如果SIP消息是通过TCP传输的,TCP协议栈会对TCP数据流进行解析。TCP协议栈会将TCP数据流分割成一个个TCP报文段,然后进行重组和排序,以得到完整的SIP消息。
-
UDP协议栈:如果SIP消息是通过UDP传输的,UDP协议栈会对UDP数据报进行解析。UDP协议栈会将UDP数据报中的SIP消息提取出来,并进行解析和处理
-
SIP协议栈:最后,SIP协议栈会对解析出来的SIP消息进行处理和转发。进入到sip应用层以后,按照sip协议规范rfc3261对SIP协议栈会对SIP消息进行验证、解析、路由和转发等操作,以实现SIP会话的建立、维护和终止。
TCP/UDP协议栈解析获取到完整的SIP信息=>SIP协议栈处理和转发(编解码-传输层-事务层)=>应用层
开源SIP协议栈
osip
exosip