Skip site navigation (1)Skip section navigation (2)
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>