现在的位置: 首页 > 综合 > 正文

uIP TCP协议状态机

2014年01月15日 ⁄ 综合 ⁄ 共 341字 ⁄ 字号 评论关闭

uIP是Adam Dunkels写的专为8位/16位平台上的TCP/IP协议栈。

如果你和我一样,看过一些TCP/IP方面的理论书,但苦于没有一个简单易懂的TCP/IP代码实现,感觉总是有一层面纱笼罩着神秘的TCP/IP,恭喜你,这次有福了。

uIP总共7千余行代码,核心代码2千不到,少的可以说“干瘪”,但是他却实现了很多基本的东西如arp,icmp,ip分片,TCP。

看完这个再去看linux的TCP/IP实现,应该会简单的多。

以下是我根据函数uip_process整理出的TCP状态机。

红色虚线是服务端的迁移过程,蓝色虚线是客户端的迁移过程,黑色虚线是共同的过程。

说明:若发出的包(非纯ACK)迟迟没有收到确认包,重发一定次数后,状态机均回到UIP_CLOSE,上图为简化没有画出。

抱歉!评论已关闭.