Session Timers主要目的是防止UA因为程序异常或者网络异常,无法发送bye给对端(包括proxy、UA),导致对端单方面的保持一个“僵尸”会话。所以RFC4028介绍了一种会话保活机制来避免这种场景。会话保活另一个应用于NAT保活,防止NAT老化。
Supported头域中携带timer标签表示支持会话保活
Session-Expires头域中包含保活时间和刷新方。
Min-SE头域表示最小保活时间,一般出现在请求和422响应中。请求中携带Min-SE意味着响应中携带的Session-Expires的时间不能小于Min-SE。422中携带Min-SE代表UAC发送的保活时间太短,UAS不能接受小于Min-SE的Session-Expires。
下面表格列出两个头域应用场景,其中amr分别表示add/mod/remove。
+---------------+-----+-----+---+---+---+---+---+---+---+---+---+---+ | Header |where|proxy|ACK|BYE|CAN|INV|OPT|REG|PRA|UPD|SUB|NOT| +---------------+-----+-----+---+---+---+---+---+---+---+---+---+---+ |Session-Expires| R | amr | - | - | - | o | - | - | - | o | - | - | | | | | | | | | | | | | | | |Session-Expires| 2xx | ar | - | - | - | o | - | - |

RFC4028引入了一种会话保活机制,旨在防止因UA异常或网络问题导致的僵尸会话。通过Session-Expires和Min-SE头域管理保活时间和刷新方,确保NAT保活并处理异常情况。UAC和UAS的角色协商及保活时间调整在后续交互中可重协商,当收到特定错误响应时,UAC需采取相应行动。
最低0.47元/天 解锁文章
2796

被折叠的 条评论
为什么被折叠?



