02.07.2013 Views

Inside Linux TCP stack: Overview

Inside Linux TCP stack: Overview

Inside Linux TCP stack: Overview

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Create new connections<br />

tcp_v4_do_rcv()<br />

tcp_rcv_state_process()<br />

tcp_v4_conn_request()<br />

基本检查: SEG 长度,校验和<br />

如果处于 LISTEN 状态,继续处理<br />

如果是 LISTEN 状态,就检查输入 SEG 是否设置 ACK/RST 位,<br />

如果有就丢包<br />

如果有 SYN ,就继续处理,否则,就丢包<br />

拒绝广播/组播SEG<br />

检查 request ,或者处于半连接状态( accepting )的连接是否太多。<br />

创建一个新的 request 结构,解析输入 SEG 的 <strong>TCP</strong> options<br />

将连接的基本信息记入 request 结构<br />

根据是否使用 SYN cookie ,计算 ISN<br />

发送 SYN/ACK<br />

将 request 加入到 request queue 中<br />

SYN_RECV?<br />

Server: SYN / SYN-ACK

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

Saved successfully!

Ooh no, something went wrong!