在BSD的TCP/IP代码中的一个基本概念是存储器缓存,成为mbuf,在整个实现中用于存储各种信息。(在linux中使用
的是skbuff,UNUX和LINUX在TCP/IP实现上有不同。)
下图是BSD TCP/IP代码的大概组织。
1.输出处理
1.1.包含socket地址结构的mbuf
下图是一个包含socket地址结构的mbuf。
mbuf的前20个字节是首部,它包含关于这个mbuf的一些信息。mbuf总长是128个字节。
mbuf使用成员m_next和m_nextpkt链接起来。
成员m_data指向mbuf中的数据,成员m_len指示它的长度,成员m_type指示包含在mbuf中的数数据类型。上图是MT_SONAME。

本文是《TCP/IP详解卷2:实现》笔记,主要探讨了在BSD TCP/IP实现中mbuf的使用,以及UDP的输出和输入处理流程。输出涉及socket地址结构的mbuf、数据mbuf、IP和UDP首部的添加;输入处理包括以太网输入、IP输入和UDP输入,描述了从以太网设备到进程接收数据的路径。
&spm=1001.2101.3001.5002&articleId=23855427&d=1&t=3&u=ab9249eb112740eeb4bd076fec5eb613)
1350

被折叠的 条评论
为什么被折叠?



