tcp_sock,inet_sock和inet_connection_sock的关系

struct tcp_sock {
struct inet_connection_sock inet_conn; //inet_connection_sock has to be the first member of tcp_sock
...
};


inet_connection_sock - INET connection oriented sock
struct inet_connection_sock {
struct inet_sock icsk_inet;
//inet_sock has to be the first member!

...
};


struct inet_sock - representation of INET sockets
struct inet_sock {
struct sock sk; //
sk and pinet6 has to be the first two members of inet_sock ...
};

inet_sock这是INET域专用的一个socket表示,它是在struct sock的基础上进行的扩展,

在基本socket的属性已具备的基础上,struct inet_sock提供了INET域专有的一些属性,比如TTL,组播列表,IP地址,端口

 

inet_connection_sock也就是所有面向连接的协议的socket的相关信息.它的第一个域是inet_sock,因此我们可以很方便的进行转换.

 

strcut tcp_sock是TCP协议专用的一个socket表示,它是在struct inet_connection_sock基础进行扩展,主要是增加了滑动窗口协议,避免拥塞算法等一些TCP专有属性

 

你可能感兴趣的:(tcpip)