Lwip探秘
文章平均质量分 80
xidianjunnan
这个作者很懒,什么都没留下…
展开
-
[TCP][一] Handshake, State-machine and API
本文的写作目的:一是把TCP老生常谈的点拎出来大体上看看,从握手和状态机到码农最常使用的TCP API;二是给后续的系列文章打个头儿,没错,后面会深入到每个API内部一探究竟;三是不求浮光掠影只望雁过留痕;四是最近比较烦,码码字散散心。如果内容有Bug,请一定高调指出来,咱们携手干它。声明:下文中这么好看的图,我画不出来,直接搬来啦。详情请参考图片下方的图片来源。目录 Hand...原创 2018-08-16 18:01:34 · 345 阅读 · 0 评论 -
[TCP][二] lwip_socket(a,b,c)
不深挖旁枝末节,以主脉络为主。先记个流水账,旁枝末节的东西用到的时候再挖!目录 函数原型socket fd <—> socket <—> netconn <—> tcp_pcbnetconntcp_pcb总结 函数原型int lwip_socket(int domain, int type, int protocol)...原创 2018-08-17 14:44:18 · 1944 阅读 · 0 评论 -
[TCP][2.1] mbox, tcpip_thread, mempool
感觉这几个货得先交代一下,我也不知道为什么。目录mbox && tcpip_thread mempool 在系统最开始初始化 Lwip 时,会初始化全局的 mbox 并创建 tcpip_thread。mbox && tcpip_thread mbox 是其他线程与 tcpip_thread 交互的桥梁。TCP 建立、拆除、数据收发等使用到...原创 2018-08-21 11:02:35 · 1085 阅读 · 0 评论 -
[TCP][三] lwip_bind(a,b,c)
我们知道一个 TCP 连接由 C/S 两端的 (IP_Addr, Port_num) 唯一标识。lwip_bind(a,b,c) 用来将之前创建的 socket 和本地的 IP_Addr / Port_num 绑定在一起。在 [TCP][一] API 一节中,我们列出 C/S 两端常用的接口,其中 Client 并没有 lwip_bind(),而 server 却有。是不是说 Client...原创 2018-08-21 15:40:26 · 1911 阅读 · 0 评论 -
[TCP][四] lwip_listen(a,b)
说到 Server 端的 listen 操作,就有意思了。☄☺目录函数原型函数解析总结listen 是 Server 才有的动作,主要用来监听 Client 发起的连接请求,并为该连接新建 socket。为什么还要为每个连接都新建一个 socket 呢?原来,Server 端使用一个 socket 专门用来监听,每监听到一个 Client 连接,就用新建的 socket 与 C...原创 2018-08-30 15:39:19 · 1939 阅读 · 0 评论