1. Tcpudp
TCPUDPOSITCPUDP
TCPUDP
TCPUDP
TCPUDP
TCP;UDP
TCP20;UDP8
TCPUDP
UDPqqqq
TCP
2. Tcp34TIME_WAITTIME_WAIT2MSLCLOSE_WAITTIME_WAIT
SYN 1,sequence NumberxSYN_SENT
SYNSYNAcknowledgmentNumber x+1(Sequence Number+1)SYNSYN1, Sequence NumberySYN+ACKSYN_RCVD
SYN_ACKAcknowledgment Numbery+1ACK
ESTABLISHEDTCP
(FIN=1seq=x)
1seq=x2FIN1FIN_WAIT_112
(ACK=1ACKnum=x+1)
21FIN1ACKAcknum=x+11FIN_WAIT_22CLOSE_WAIT21
(FIN=1seq=y)
21FIN2LAST_ACK
(ACK=1ACKnum=y+1)
12FIN2ACK1TIME_WAIT21ACK12MSLServer1 CLOSED
1 2MSL2 Maximum Segment Lifetime ACK CLOSED
clientserverserverclientclientserverclientserverserverserverclientserverclientserverserverclient
ACK SYNSYNSYN
https://www.jianshu.com/p/cf1bed23f7fb
34
FIN
FINACKFIN TCP
ACKFINServerClientSYNSYN+ACKACKSYN
TIME_WAIT
CLOSEACKTIME_WAITACKACK
TIME_WAIT2MSL
MSLMaximum Segment LifetimeTime_wait FIN ACK TIME-WAIT ACK FIN 2MSL
2MSLACK ACK Fin FIN ACK 2 MSL + FIN
TIME_WAIT2MSL
TCPACK
TCP2MSLTCPTIME_WAITTIME_WAIT2MSLTCP
CLOSE_WAIT
CLOSE_WAITFINFINCLOSE_WAITacksokcetBugFINsocketNettyBugBugI/OI/OTaskI/O
CLOSE_WAIT502CLOSE_WAITRecv_Q0DOSRecv_Q5
TIME_WAIT
TIME_WAIT TCP socket TIME_WAIT Linux TIME_WAIT = 60
TIME_WAIT
/etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 SYN CookiesSYNcookiesSYN0
net.ipv4.tcp_tw_reuse = 1 TIME-WAIT socketsTCP0
net.ipv4.tcp_tw_recycle = 1TCPTIME-WAIT sockets0
net.ipv4.tcp_fin_timeout = 30 TIMEOUT
/sbin/sysctl -p
CLOSE_WAITTIME_WAIT
AHttpClientBapacheAATIME_WAITBBAAHttpClientCLOSE_WAIT
CLOSE_WAIT
3. Tcp
TCP
16 TCP
+: TCP
TCPIPIPTCPTCP
TCPACKACK
TCP
ACK
a
bACK
ACKACK
500ms0.5500ms2*500ms4*500msTCP
TCPTCPTCP
:
TCP
TCP16ACKACKACK0
TCP
TCP
TCPACK
TCP TCP
congestion window
TCP **(cwnd) **
cwnd
cwnd
cwnd
;cwnd1 ACKcwnd
>= ssthresh
ssthresh cwnd ssthresh ==cwnd/2cwnd=1
3 ACK cwnd ssthresh cwnd=cwnd/2ssthresh=cwnd
cwnd=ssthresh+33 3 ;
ACK cwnd 1
ACK cwnd ssthresh ACK duplicated ACK
https://www.jianshu.com/p/cf1bed23f7fb
1
https://blog.csdn.net/cbjcry/article/details/84925028
+
4. Tcp
TCPTCPTCPTCP
TCP204nnTCP20
TCP
2
Sequence number402^32 - 12^32 2^32-1 0TCPTCP301100301400401401;
Acknowledge number4BA501200BA700BA701BA701
4TCPTCP
60
URGURGentURG=1
ACKACKnowledgmentACK=1TCPACK1
PSHPuSH PSH=1
RSTReSeTRST=1TCP
SYNSYNchronizationSYN=1ACK=0SYN=1ACK=1
FINFINisFIN=1
2
2
2
TCPip
5. TCPTCP /
x
TCPTCP
6. TCP
1TCP +
2
3
4 CRCIP
+ + + 0 + 16
IPIPTCPTCPTCP
160
5
16
1600
1IPTCPUDP
2IPUDPTCPTCP
3UDPTCP
https://blog.csdn.net/insistgogo/article/details/10296167