[freeBSD-6.1RELEASE] wonderings about function tcp_input()
- From: Blue <Susan.Lan@xxxxxxxxxxxx>
- Date: Mon, 19 Jun 2006 09:58:40 +0800
Hi, all:
I have a question about line 1765 to 1776 in tcp_input():
/*
* If the ACK bit is off: if in SYN-RECEIVED state or SENDSYN
* flag is on (half-synchronized state), then queue data for
* later processing; else drop segment and return.
*/
if ((thflags & TH_ACK) == 0) {
if (tp->t_state == TCPS_SYN_RECEIVED ||
(tp->t_flags & TF_NEEDSYN))
goto step6;
else
goto drop;
}
My question is: if we are currently in TCPS_SYN_RECEIVED state, why does a segment without ACK bother? Why we need to store the segment and process it? Without considering T/TCP, the code should be:
if ((thflags & TH_ACK) == 0) {
goto drop;
}
Best regards,
blue
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: [freeBSD-6.1RELEASE] wonderings about function tcp_input()
- From: Andre Oppermann
- Re: [freeBSD-6.1RELEASE] wonderings about function tcp_input()
- Prev by Date: Re: Simple LAN IP accounting
- Next by Date: Re: Simple LAN IP accounting
- Previous by thread: Libalias modules and ipfw nat for HEAD
- Next by thread: Re: [freeBSD-6.1RELEASE] wonderings about function tcp_input()
- Index(es):
Relevant Pages
|
|