Re: ipv4 connection problems

看板DFBSD_bugs作者時間21年前 (2005/03/14 15:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/22 (看更多)
This post is not directly related to Peter Avalos's bug. > Here's a tcpdump output of a 'telnet 0 80': There are two patterns of TCP options in this trace as following. 1st seg: <mss 16344,nop,wscale 0,nop,nop,sackOK,nop,nop,timestamp 251468000 0> 2nd seg: <mss 16344,nop,wscale 0,nop,nop,sackOK,nop,nop,timestamp 251468000 0> 3rd seg: <mss 16344,nop,wscale 0,nop,nop,sackOK,nop,nop,timestamp 251468000 0> 4th seg: <mss 16344,nop,nop,sackOK> 5th seg: <mss 16344,nop,nop,sackOK> 6th seg: <mss 16344,nop,nop,sackOK> 7th seg: <mss 16344,nop,nop,sackOK> 8th seg: <mss 16344,nop,nop,sackOK> 9th seg: <mss 16344,nop,nop,sackOK> I think the TCP Window Scale option and the TCP Timestamps options are switched off by the following code fragment. By considering its purpose written in the comment, I think the TCP SACK-PERMITTED option should also be disabled. The easiest way would be to add (tp->t_rxtshift < 3) to the if-condition at line 497 of tcp_input.c rev 1.25. Another way would be to add the TF_REQ_SACK_PERMITTED flag around (three places + one declaration ?). ========================================================================= Line 490 - 498 of tcp_timer.c rev 1.13 /* * Disable rfc1323 and rfc1644 if we havn't got any response to * our third SYN to work-around some broken terminal servers * (most of which have hopefully been retired) that have bad VJ * header compression code which trashes TCP segments containing * unknown-to-them TCP options. */ if ((tp->t_state == TCPS_SYN_SENT) && (tp->t_rxtshift == 3)) tp->t_flags &= ~(TF_REQ_SCALE|TF_REQ_TSTMP|TF_REQ_CC); ========================================================================= Regards, Noritoshi Demizu
文章代碼(AID): #12DJQm00 (DFBSD_bugs)
討論串 (同標題文章)
文章代碼(AID): #12DJQm00 (DFBSD_bugs)