lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] seq number & ACK issue


From: PHAM ANH THIEN
Subject: [lwip-users] seq number & ACK issue
Date: Tue, 2 Mar 2010 15:54:20 +0700

Dear all,

I write an application which open TCP socket and send a lot of buffer with size 5*1440 bytes for each buffer, in lwipopt.h i set TCP_MSS = 1440 and TCP_SND_BUF = 6*1500.

What i captured in log file as below:

tcp_input: packed for LISTENing connection.
tcp_input: packed for LISTENing connection.
tcp_parseopt: MSS
tcp_parseopt: NOP
tcp_parseopt: other
tcp_parseopt: NOP
tcp_parseopt: NOP
tcp_parseopt: other
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 6511, unacked->seqno 6510:6511
tcp_receive: removing 6510:6511 from pcb->unacked
Sending data...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 9391, unacked->seqno 6511:7951
tcp_receive: removing 6511:7951 from pcb->unacked
tcp_receive: removing 7951:9391 from pcb->unacked
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 12271, unacked->seqno 9391:10831
tcp_receive: removing 9391:10831 from pcb->unacked
tcp_receive: removing 10831:12271 from pcb->unacked
0:.+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 15151, unacked->seqno 12271:13711
tcp_receive: removing 12271:13711 from pcb->unacked
tcp_receive: removing 13711:15151 from pcb->unacked
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 18031, unacked->seqno 15151:16591
tcp_receive: removing 15151:16591 from pcb->unacked
tcp_receive: removing 16591:18031 from pcb->unacked
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 20911, unacked->seqno 18031:19471
tcp_receive: removing 18031:19471 from pcb->unacked
tcp_receive: removing 19471:20911 from pcb->unacked
.+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 23791, unacked->seqno 20911:22351
tcp_receive: removing 20911:22351 from pcb->unacked
tcp_receive: removing 22351:23791 from pcb->unacked
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 26671, unacked->seqno 23791:25231
tcp_receive: removing 23791:25231 from pcb->unacked
tcp_receive: removing 25231:26671 from pcb->unacked
.+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 29551, unacked->seqno 26671:28111
tcp_receive: removing 26671:28111 from pcb->unacked
tcp_receive: removing 28111:29551 from pcb->unacked
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 32431, unacked->seqno 29551:30991
tcp_receive: removing 29551:30991 from pcb->unacked
tcp_receive: removing 30991:32431 from pcb->unacked
.pathien.do_writemore: available: 6120, len: 7200
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 38191, unacked->seqno -1058603008:-1058601567
tcp_receive: removing -1058603008:-1058601567 from pcb->unacked
tcp_receive: removing 33871:35311 from pcb->unacked
tcp_receive: removing 35311:36751 from pcb->unacked
tcp_receive: removing 36751:38191 from pcb->unacked
tcp_input: packet discarded due to failing checksum 0x3ee8
.pathien.do_writemore: available: 4680, len: 7200
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 43951, unacked->seqno -1058603008:-1058601567
tcp_receive: removing -1058603008:-1058601567 from pcb->unacked
tcp_receive: removing 39631:41071 from pcb->unacked
tcp_receive: removing 41071:42511 from pcb->unacked
tcp_receive: removing 42511:43951 from pcb->unacked
.pathien.do_writemore: available: 3240, len: 7200
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags -+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcp_receive: ACK for 48631, unacked->seqno 52591:54031

I have two questions:

1. Why i always receive ACK packets after 2 packets data sending? is there any setting to change it (for example: after 5, 6... packets sending i will receive ACK)?

2. How unacked->seqno is created? and why sometime this value less than 0 as above log?

i spent one month to try understanding it, but still can not. I greatly appreciate any answer.
 
Thanks a lot.
thanks and regards,
Thien

reply via email to

[Prev in Thread] Current Thread [Next in Thread]