lwIP不遵循严格的分层
前面提到过TCP/IP的标准实现一般使用严格的分层,这对lwIP的设计与实现提供了指导意义。每个协议作为一个单独地模块,提供一些API作为协议的入口点。尽管这些协议都单独地实现,但是一些层(协议之间)违背了严格的分层标准,这样做是为了提高处理的速度和内存的占用。比如:在TCP分片的报文中,为了计算TCP校验和,我们需要知道IP协议层的源IP地址和目的IP地址,一般我们会构造一个伪的IP头(包含IP地址信息等),而常规的做法是通过IP协议层提供的API去获得这些IP地址,但是lwIP是拿到数据报文的IP头,从中解析得到IP地址。