最近在写网络编程方面的一些东西,然后遇到了关于传输上的小问题。由于之前有简单的看过一些TCP/IP详解的一些东西,所以索性就找了本《追踪LinuxTCP/IP代码运行》的书看了一上午,结果发现初次接触这些内核方面的东西,收获甚微。于是又在网上找相关类的大神博客,拿来拜读,虽然依然看的不是太明白,吸收的也不够好,但是我想以博客的形式把它记录下来,也希望能为我以后学这些东西开个好头吧
1.linux的网络协议栈的主要结构
(1)socket层
这层主要处理socket相关的东西,例如其各种结构的初始化等。每个socket在内核中以socket结构体的形式存在,它的结构体定义如下
socket结构体
struct socket
{
socket_stat state; //socket的状态
unsigned long flags; //socket的标志位
const struct proto_ops *pos //socket的函数操作表
struct fasync_struct *fasync_list //socket的异步唤醒队列