怎么判断tcp连接是哪一方有关问题导致断开

如何判断tcp连接是哪一方问题导致断开?
与其他厂家对接,tcp连接异常断开,但是不知道是哪方的问题。问题是如何确定是哪方原因造成主动断开的呢?
1)在windows用netstat查看连接信息,如果A机器上状态是ESTABLISH而B机器显示没有连接信息,是不是可以确定是B机器上的问题呢?
2)连接应该是异常断开,用wireshark抓包,只有A机器到B机器的FIN,但是后来发现是B方的问题。抓包数据没保存,突然想起来的。用的是window下的完成端口。

场景有点模糊了~~
------解决方案--------------------
1)不能确认,有可能B机器发送了fin报文,但是A机器没有收到,过一段时间,B机器就将连接重置了,网络不好的情况下可能出现这种现象。
2) 第二个我有些不太明白。
------解决方案--------------------
需要抓包分析

比如a向b发数据,b收到数据解析,认为不合法,于是断开连接。那么是谁的问题?

b虽然主动断开了,但是a先发了错误的数据,不好定论。

因此,抓包,看谁先断开的(FIN或RST),然后从包的内容看为什么断开。
------解决方案--------------------
引用:
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!

http://bbs.csdn.net/topics/380167545
怎么判断tcp连接是哪一方有关问题导致断开