最在在研读老衲五木写的那本《嵌入式网络那些事儿:LWIP深度剖析与实战》书的时候,由于项目的需要,操作LWIP协议中TCP层的tcp_seg结构指针。遇到了问题:
对
如上图所示,其tcp_seg中的dataptr指针和payload指针全都指向了TCP数据部分。而在老衲五木的那个博客文档中确写成如下:
对应的图为:
上下存在一些出入。因此我查阅了一下tcp_enqueen()函数(在tcp_out.c中)。其源代码如下:
重点在上图红箭头部分那个pbuf_header(seg->p,TCP_HLEN)那个函数,其部分代码如下:
对p->payload指针进行了移动。而且是前移,指向tcphdr部分。
因此。个人认为老衲五木的《嵌入式网络那些事儿:LWIP深度剖析与实战》中的插图有误。而其博客中是正确的。
在此非常感谢老衲五木的指导,他的书给我的帮助是非常巨大的。
特别说明 此博客引用了老衲五木的书和博客中的插图。非常感谢!
时间: 2024-12-07 22:28:14