【Feedback】关于TCP协议BUG,回包问题

ShaoPU
Posts: 10
Joined: Mon Aug 24, 2015 3:01 pm

【Feedback】关于TCP协议BUG,回包问题

Postby ShaoPU » Wed Apr 06, 2016 10:37 am

你好,我这边有关于TCP协议栈BUG,回包的问题。
SDK版本:1.5.2
服务器IP:121.41.89.229
ESP8266IP:115.214.236.176
J@D2K05{L(3)@%N%OGE%ZTV.png

见上图,服务器不断发送ACK=82,ESP8266一直不回应82,到最后ESP8266自己RST了。
请问这个是什么原因

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 关于TCP协议BUG,回包问题

Postby ESP_Faye » Wed Apr 06, 2016 1:58 pm

您好,

请问您在 ESP8266 端是否使能了 keep alive 功能?

ShaoPU
Posts: 10
Joined: Mon Aug 24, 2015 3:01 pm

Re: 关于TCP协议BUG,回包问题

Postby ShaoPU » Wed Apr 06, 2016 2:52 pm

Espressif_Faye wrote:您好,

请问您在 ESP8266 端是否使能了 keep alive 功能?



没有使能keep alive功能。
是数据包重发导致keep alive的。
我们服务端和ESP8266都没有用keep alvie这个功能的。

Code: Select all

LOCAL void ICACHE_FLASH_ATTR
gw_connect_cb(void *arg)
{
    struct espconn *pespconn = arg;

    TcpPrint("gw_connect_cb\n");
    os_timer_disarm(&check_timer);
    espconn_regist_recvcb(pespconn, gw_recv_cb);

    espconn_regist_sentcb(pespconn,gw_sent_cb);
   espconn_set_opt(pespconn,0x04);
   espconn_regist_write_finish(pespconn,gw_write_finish);

    init_fddat(fd);

    fd->PacketLen = T16(PACK_SIZE(32));
   fd->CMDID = T16(CMD_TOKEN);
   memcpy(fd->uCmdRsp.tokeninf.Token,Token,MAX_TOKEN);
   set_timestamp(&fd->uCmdRsp.tokeninf.tm);

   espconn_send(pespconn,(uint8*)fd,PACK_SIZE(32));


    os_timer_setfn(&check_timer, (os_timer_func_t *)heart_beat_timer, &gw_conn);
    os_timer_arm(&check_timer, 500, 0);
   //send_data(PACK_SIZE(32),(char *)fd);
}

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 关于TCP协议BUG,回包问题

Postby ESP_Faye » Mon Apr 11, 2016 10:21 am

您好,

您提供的抓包数据,看起来就是网络环境不好,keep alive 超时,因此发 rst 包断开连接。

Who is online

Users browsing this forum: No registered users and 2 guests