针对TCP零窗口的Wireshark RST

时间:2015-09-15 11:56:53

标签: sockets tcp wireshark tcpdump lync

在与Microsoft Lync Client(Mac OS X)共享应用程序期间,带有RST标志的TCP ACK将从我的应用程序端发送到Lync端,以防止TCP Zero Window数据包和呼叫被丢弃。

enter image description here

供参考:

My Application End: 172.16.6.106:55848
Lync End (Remote): 172.16.14.58:18627
Environment: 
My Application End: Centos/Linux
Lync End: Mac OSX
Shared Over Wifi.

修改

Wireshark TCP Dump

Lync BYE消息到我的应用程序:

BYE sip:172.16.6.106:48038;transport=tls;ms-opaque=28c9d310c1;ms-received-cid=BEED00;grid SIP/2.0
ms-user-logon-data: RemoteUser
Via: SIP/2.0/TLS 172.16.6.252:5061;branch=z9hG4bKB5634D63.2E095CFF28141DF6;branched=FALSE;ms-internal-info="agIDti2ZsTK4cWfhAGG1qbj2usseveww7YKemPpN3Jvhv_XAkuuCofIQAA"
Max-Forwards: 67
Via: SIP/2.0/TLS 192.168.2.3:51217;branch=z9hG4bK77E14D58.4A2E43E7B13911D2;branched=FALSE;ms-received-port=51217;ms-received-cid=BEE600
Authentication-Info: NTLM qop="auth", opaque="4207B105", srand="D2C8703A", snum="21", rspauth="010000008bc2daa4dc3b08b864000000", targetname="Lync-FE.LTN2013-Dev.local", realm="SIP Communications Service", version=4
Via: SIP/2.0/TLS 192.168.2.4:50740;branch=z9hG4bKFF62C04C.B8AD61CF28131DF6;branched=FALSE;ms-received-port=50740;ms-received-cid=1117700
Via: SIP/2.0/TLS 172.16.14.58:30689;received=172.16.14.58;ms-received-port=57719;ms-received-cid=BEE400
From: "" <sip:test1@ltn2013-dev.net>;epid=48777ee2e9;tag=dd8ced12ab
To: <sip:ilanaroom@ltn2013-dev.net>;tag=1442263920;epid=14422639
Call-ID: RkdVRZrTUlhKLke0Et9MiVaJTOJd5UMJKljncCC1
CSeq: 1 BYE
User-Agent: UCCAPI/4.0.7323.0 MC/14.0.5093.11 (Microsoft Lync for Mac 2011)
ms-client-diagnostics: 34; reason="Call terminated on a mid-call media failure where both endpoints are remote";MediaDebug="Diag:LastError:time out,time:3651253182890;LastRTP Seq:30662,SeqDelta:1,time:3651253152751;LastRTCP time:3651253151390;Last transport receive error:0x0,time:0;Last transport send error:0x0,time:0;"
Content-Length: 0

1 个答案:

答案 0 :(得分:0)

显示的捕获摘录表明Lync正在向您的Ap Ok发送数据,但由于某种原因,不愿接受来自Ap的任何数据(因为172.16.14.58的广告窗口为0)。

你的Ap的RST的一种可能性:你的Ap有数据发送到Lync但是不能(因为win = 0)并最终放弃。

显然,除了提示Lync端存在问题之外,这并没什么帮助。检查完整捕获可能会提供更多信息。

例如:Ap以前能够发送数据吗? Lync宣传的窗口的历史是什么?等等。

更新

*检查捕获您已发布链接:

看起来很正常(除了最后的零窗口内容)。

从大约91秒开始,Lync服务器停止接受数据(win = 0),将一些短消息发送回客户端,然后客户端在服务器停止接受数据后30秒向服务器发送RST。

所以:捕获中并没有任何信息表明Lync服务器发生了什么。

我注意到,在服务器win = 0之前,服务器通告的窗口小于之前公布的范围。 (注意:我希望实际的窗口大小比看似广告的大,因为窗口尺寸比例因子大于1,所以.Silshark不知道比例因子。原始TCP连接建立握手不是捕获的一部分。