硬汉嵌入式论坛

 找回密码
 立即注册
查看: 499|回复: 3
收起左侧

[LwIP] DHCP续约失败问题

[复制链接]

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2025-2-18 17:09:57 | 显示全部楼层 |阅读模式
在进行TCP双向通信的时候,我发现每隔12H就会断开一次,并且是很精准的,于是打开了LWIP的DEBUG选项,下面是我抓取到断开的时候的LOG:

客户端的LOG:

dhcp_coarse_tmr()
dhcp_coarse_tmr(): t1 timeout
dhcp_t1_timeout()
dhcp_t1_timeout(): must renew
dhcp_renew()
transaction id xid(4bb5f646)
dhcp_renew: RENEWING
dhcp_renew(): set request timeout 2000 msecs
tcp_output: snd_wnd 4800, cwnd 65535, wnd 4800, seg == NULL, ack 271206910
dhcp_recv(pbuf = 0x4d08b8) from DHCP server 192.168.10.1 port 67
pbuf->len = 250
pbuf->tot_len = 250
searching DHCP_OPTION_MESSAGE_TYPE
DHCP_NAK received
dhcp_handle_nak(netif=0x4a11b0) wl0
tcp_pcb_purge
tcp_abandon: sending RST
tcp_rst: seqno 271206910 ackno 27121711.
dhcp_discover()
transaction id xid(5851f42d)
dhcp_discover: making request
dhcp_discover: sendto(DISCOVER, IP_ADDR_BROADCAST, LWIP_IANA_PORT_DHCP_SERVER)
dhcp_discover: deleting()ing
dhcp_discover: SELECTING
dhcp_discover(): set request timeout 2000 msecs
[F4] : [L1] : 0000 12:00:00.019 netconn_close failed with error -11
[F4] : [L1] : 0001 12:00:00.rom DHCP server 192.168.10.1 port Disconnected from the TCP server!
Disconnected from the TCP server!
P server 192.168.10.1 port 67
pbuf->len = 311
pbuf->tot_len = 311
skipping option 252 in options
skipping option 26 in options
searching DHCP_OPTION_MESSAGE_TYPE
DHCP_OFFER received in DHCP_STATE_SELECTING state
dhcp_handle_offer(netif=0x4a11b0) wl0
dhcp_handle_offer(): server 0x010aa8c0
dhcp_handle_offer(): offer for 0x020aa8c0
dhcp_select(netif=0x4a11b0) wl0
transaction id xid(5851f42d)
dhcp_select: REQUESTING
dhcp_select(): set request timeout 2000 msecs

服务器端的LOG:


tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_fasttmr: delayed ACK
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_fasttmr: delayed ACK
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_receive: window update 6000
tcp_receive: pcb->rttest 0 rtseq 27121311 ackno 27121711
tcp_recved: received 400 bytes, wnd 6000 (0).
tcp_fasttmr: delayed ACK
tcp_pcb_purge
[F4] : [L1] : 0107 11:58:03.248 netconn_close failed with error -11
TCP Client disconnected! Please reconnect the TCP Client
===============================================================
Listening for incoming TCP client connection on Port:50007

服务器端没有什么有效信息,主要看客户端的,想知道LWIP中哪个地方会去发送NACK数据包,我看了LWIP的源码没有找到DHCP服务器发送NACK的地方,因为想看看是什么原因导致了发送NACK包导致续约失败
DHCP_NACK.png
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2025-2-18 17:11:27 | 显示全部楼层
LWIP中我将TCP_TMR_INTERVAL从250ms改成了1ms,不知道这对协议栈是否有影响,因为250ms对发送的延迟太大,满足不了需求
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-2-19 06:10:01 | 显示全部楼层
可以电脑端安装个DHCP服务器端测试下,让你的客户端跟电脑通信,看看12H后正常不,正常说明是服务器问题。
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2025-4-8 21:10:59 | 显示全部楼层
确实是DHCP服务器的问题,感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 20:18 , Processed in 0.239645 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表