Date: Wed, 11 Sep 2002 10:50:11 -0700 (PDT) From: John Polstra <jdp@polstra.com> To: net@freebsd.org Cc: soheil_h_y@hotmail.com Subject: Re: computing the Ack Seq. No. Message-ID: <200209111750.g8BHoBZf032104@vashon.polstra.com> In-Reply-To: <F6467yRLVbNDN4CxpAO000022f6@hotmail.com> References: <F6467yRLVbNDN4CxpAO000022f6@hotmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <F6467yRLVbNDN4CxpAO000022f6@hotmail.com>, soheil h <soheil_h_y@hotmail.com> wrote: > hi list > I wrote the code below and it doesn't work correctly > please tell me what is wrong > int len, tlen; > tcpiphdr ti, ti_send; > int hlen; > int acklen; > /* > the hlen is ip header hlen > */ > .... > /* the ip->ip_len is ntohs'ed by NTOHS in io_input() */ > len = ti->ti_len; > tlen = ti->ti_off << 2; > acklen = len - hlen - tlen; > ti_send->ti_ack = htonl(ntohl(ti->ti_seq) + acklen ); > /* this field is incorrect and i don't know why */ If the TH_SYN flag is set in the received packet, you must increment the ack by 1. Likewise, if the TH_FIN flag is set, you must increment the ack by 1. In other words, each of those flags counts the same as a byte of data, as far as the ack calculation is concerned. John -- John Polstra John D. Polstra & Co., Inc. Seattle, Washington USA "Disappointment is a good sign of basic intelligence." -- Chögyam Trungpa To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200209111750.g8BHoBZf032104>
