i found in tcp_in.c:tcp_process.
  switch (pcb->state) {
  case SYN_SENT:
  ....
      tcp_ack(pcb);

why is tcp_ack, not  tcp_ack_now? syn'ack must send at once, else tcp connect will be unable to complete.i use ethereal capture packets, and only watch SYN,SYN/ACk,no third ack packet,after it send normal data.

in tcp_output.c:tcp_output
/* First, check if we are invoked by the TCP input processing
     code. If so, we do not output anything. Instead, we rely on the
     input processing code to call us when input processing is done
     with. */
  if (tcp_input_pcb == pcb) {
    return ERR_OK;
  }

if tcp_input_pcb return ack, will not through this code.why?and i cannot watch ack without data.

--
It is the tears of the earth that keep here smiles in bloom.
_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to