前言
本文介绍代码在lwip的tcp_in.c
文件中,主要介绍TCP协议栈中数据的接收流程。
正文
1、一个正常的TCP数据,首先会传入到
tcp_input(struct pbuf *p, struct netif *inp)
函数,其中指针p
指向传入的数据流。
2、从数据流中获取TCP头部
tcphdr = (struct tcp_hdr *)p->payload;
TCP头部数据结构为:
3、获取TCP头部中重要信息:
tcphdr->src = lwip_ntohs(tcphdr->src);
tcphdr->dest = lwip_ntohs(tcphdr->dest);
seqno = tcphdr->seqno = lwip_ntohl(tcphdr->seqno);
ackno = tcphdr->ackno = lwip_ntohl(tcphdr->ackno