1

tl;博士:Wireshark 说 gen_tcp 正在发送FIN,RST标志,然后我才能完成接收我的所有数据......

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

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

我正在使用 Erlang/OTP 的 Win32 发行版运行它,并希望收到一些相当大的数据,因此会收到很大的 recbuf。过去,这对我来说效果很好。

我从每个发出的FIN数据包中只得到前 1516 个字节,然后 gen_tcp 发回 a ,我不知道为什么会这样。

这是我的Wireshark 转储的快照:

在此处输入图像描述

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

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

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

有任何想法吗?

4

0 回答 0