LWIP的认识

1.主要学习LWIP进行TCP连接:
可以适应多种操作系统(封装层)

建立一个TCP服务器需要经过:

创建一个TCP链接
(当pcb块初始化之后,则调用tcp_bind函数,将传进来的IP地址与端口号与刚创建的pcb块绑定。)
绑定端口号
监听
接收连接请求

TCP 协议实现的本质就是对 TCP 控制块中各个字段的操作
TCP 编程的本质上也是对 TCP 控制块的操作。
这一节将看到 TCP 的几个基础编程函数,
这些函数无论是在客户机程序还是在服务器程序的编写中都具有很重要的作用。
另一方面,它们也是实现上层 API 函数的基础。
通过对这些函数的学习,可以加深读者对 TCP 状态转换图和 TCP 控制块的理解。

1、控制块新建
2、控制块绑定
3、控制块监听
进入 LISTEN 状态后,服务器就等待客户端发送来的 SYN 报文进行连接,
当内核收到一个 SYN握手报文后,会遍历 tcp_listen_pcbs 链表,
以找到和报文中目的 IP 地址、目的端口号匹配的控制块。
若找到匹配的 LISTEN 状态控制块,则内核会新建一个 tcp_pcb 结构,
并将 tcp_pcb_listen 结构中各个字段拷贝至其中,
同时填写结构中的源端口号、源 IP 地址等字段,
最后在 tcp_active_pcbs 链表中添加这个新 tcp_pcb 结构。
这样,新 TCP 控制块就处在 tcp_active_pcbs 中了,
此时这个 tcp_pcb 结构的 state 字段应该设置为 SYN_RCVD。
连接建立成功后,发送报文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值