嵌入式Linux网络体系结构设计与TCP/IP协议栈
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.1 Socket Buffer与TCP/IP协议栈

协议代表了通信双方的一种约定,使双方能理解彼此要交流的内容。就有如你要发一封信到英国,如果对方不懂中文,你需要用英语写信件;如果你不懂英语,对方也不懂中文,你们双方就需要约定第三种彼此都懂的语言来通信,这样双方才能沟通。TCP/IP协议栈就是在计算机网络上通信双方的约定,TCP/IP协议栈把复杂的网络通信协议分步实现。TCP/IP协议栈与OSI参考模型如图2-1所示。

图2-1 TCP协议栈与OSI参考模型

Socket Buffer与TCP/IP协议栈的关系就如信件与写信的语言一样。网络数据包从应用程序传到内核时是原始数据,协议栈要在原始数据中加入通信约定。由于内核中TCP/IP协议栈是分层实现的,数据包在内核中要经过TCP/IP协议栈的传输层、网络层、数据链路层各层协议的处理,最后由网络设备发送出去,所以各层协议都要对表示网络数据包的数据结构进行操作。

对Socket Buffer数据结构的操作会贯穿在整个TCP/IP协议栈的各层。