TCP的状态检测tcp_conntracks的问题

zhouhuahai 2010-09-21 11:37:03
static const enum tcp_conntrack tcp_conntracks[2][6][TCP_CONNTRACK_MAX] = {
{
...........
/* sNO, sSS, sSR, sES, sFW, sCW, sLA, sTW, sCL, sLI */
/*ack*/ { sES, sIV, sES, sES, sCW, sCW, sTW, sTW, sCL, sIV },
.........

我的问题是:
当old_state为sNO,index为ack时,为何new_state会为sES(established)?这个状态对于TCP的一般情况来说难以理解,一般来说要先:发一个syn->收到syn ack->发ack,这样三次握手后连接才能建立。为何这里在sNO的情况下可以直接发ack却认为established?
...全文
259 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
九个太阳2023 2010-09-25
  • 打赏
  • 举报
回复
学习下··
zhouhuahai 2010-09-25
  • 打赏
  • 举报
回复
自己顶一下。通过RFC793的状态变迁图也看不出其原因所在,RFC793上面不存在这样的状态变化。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧