📄 tcprexmt.c,v
字号:
head 1.2;access;symbols;locks dls:1.2; strict;comment @ * @;1.2date 97.09.21.19.29.52; author dls; state Dist;branches;next 1.1;1.1date 94.01.14.03.51.20; author dls; state v2e1;branches;next ;desc@@1.2log@pre-3e code@text@/* tcprexmt.c - tcprexmt */#include <conf.h>#include <kernel.h>#include <network.h>/*------------------------------------------------------------------------ * tcprexmt - handle TCP output events while we are retransmitting *------------------------------------------------------------------------ */inttcprexmt(tcbnum, event)int tcbnum, event;{ struct tcb *ptcb = &tcbtab[tcbnum]; if (event != RETRANSMIT) return OK; /* ignore others while retransmitting */ if (++ptcb->tcb_rexmtcount > TCP_MAXRETRIES) { tcpabort(ptcb, TCPE_TIMEDOUT); return OK; } tcpsend(tcbnum, TSF_REXMT); tmset(tcps_oport, TCPQLEN, MKEVENT(RETRANSMIT, tcbnum), min(ptcb->tcb_rexmt<<ptcb->tcb_rexmtcount, TCP_MAXRXT)); if (ptcb->tcb_ostate != TCPO_REXMT) ptcb->tcb_ssthresh = ptcb->tcb_cwnd; /* first drop */ ptcb->tcb_ssthresh = min(ptcb->tcb_swindow,ptcb->tcb_ssthresh)/2; if (ptcb->tcb_ssthresh < ptcb->tcb_smss) ptcb->tcb_ssthresh = ptcb->tcb_smss; ptcb->tcb_cwnd = ptcb->tcb_smss; return OK;}@1.1log@Initial revision@text@d11 3a13 1int tcprexmt(tcbnum, event)@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -