From owner-freebsd-net Wed Sep 11 10:50:17 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ACE3637B400 for ; Wed, 11 Sep 2002 10:50:13 -0700 (PDT) Received: from wall.polstra.com (wall-gw.polstra.com [206.213.73.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id A48FF43E72 for ; Wed, 11 Sep 2002 10:50:12 -0700 (PDT) (envelope-from jdp@polstra.com) Received: from vashon.polstra.com (vashon.polstra.com [206.213.73.13]) by wall.polstra.com (8.11.3/8.11.3) with ESMTP id g8BHoBf61383; Wed, 11 Sep 2002 10:50:11 -0700 (PDT) (envelope-from jdp@vashon.polstra.com) Received: (from jdp@localhost) by vashon.polstra.com (8.12.5/8.12.5/Submit) id g8BHoBZf032104; Wed, 11 Sep 2002 10:50:11 -0700 (PDT) (envelope-from jdp) Date: Wed, 11 Sep 2002 10:50:11 -0700 (PDT) Message-Id: <200209111750.g8BHoBZf032104@vashon.polstra.com> To: net@freebsd.org From: John Polstra Cc: soheil_h_y@hotmail.com Subject: Re: computing the Ack Seq. No. In-Reply-To: References: Organization: Polstra & Co., Seattle, WA Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org In article , soheil h 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