Erlang套接字:提前发回FIN / RST?

时间:2012-07-09 21:05:30

标签: tcp erlang wireshark otp

tl; dr :Wireshark说gen_tcp正在发送FINRST标志,然后我才能完成接收所有我的数据。

我通过gen_tcp从活动套接字接收数据。它来自(未加密的)OpenSSL套接字,通过BIO_write()(参见http://linux.die.net/man/3/bio_write),gen_tcp正在监听以下选项:

[binary,{packet,0},{active,true},{reuseaddr,false},{recbuf,256000}]

我正在使用Erlang / OTP的Win32发行版运行它,并期望接收一些非常大的数据,因此大的recbuf。这在过去对我有用。

我只从发送出的每个 total 数据包中获得前1516个字节,然后gen_tcp发送回FIN,我无法弄清楚为什么会这样。< / p>

以下是我的Wireshark dump

的快照

enter image description here

* 37.184是Erlang接收器,* 35.125是OpenSSL发送器。

蓝线是“标头”数据包,通过协议版本发送。数据长度为“Len = 1460”的块是第一个大数据blob。然后是ACK @#3,和带有FIN @#4

的Erlang barfs

黄线是成功发送的最后一块数据。

有什么想法吗?

0 个答案:

没有答案