02.07.2013 Views

Inside Linux TCP stack: Overview

Inside Linux TCP stack: Overview

Inside Linux TCP stack: Overview

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Create new connections<br />

tcp_v4_do_rcv()<br />

tcp_rcv_state_process()<br />

tcp_rcv_synsent_state_process()<br />

Client: SYN-ACK / ACK<br />

如果是 SYN_SENT 状态,就继续处理<br />

如果处理失败返回 tcp_v4_do_rcv() ,从而导致发送RST<br />

解析 <strong>TCP</strong> options<br />

如果ACK标志置位 {<br />

检查 ACK 的序号与 snd_nxt 是否相同<br />

timestamp 检查<br />

RST?<br />

有没有 SYN?<br />

更新 window /scaling factor / timestamp<br />

初始化 <strong>TCP</strong> MTUP/MSS/rcv MSS/<br />

设置 ESTABLISHED 状态<br />

拥塞避免处理初始化<br />

发送 ACK<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!