传输控制块

传输控制块是一个分层的填充结构,每一个层次都增加一些字段,来表示一个通用的控制,它们都是结构中的第一个结构,可以直接从头部直接转换成对应的控制块;如:tcp控制块的tcp_sock的使用slab分配,其大小为整个tcp_sock结构的大小,在下层用不到上层tcp相关属性的时候,只取其中的某个部分即可,如 (struct inet_sock *)sk 即可取得inet_sock ipv4传输控制块;

 1  struct tcp_sock { //tcp传输控制块
 2     struct inet_connection_sock { //面向连接的传输控制块
 3         struct inet_sock { //ipv4传输控制块
 4             struct sock { //协议无关的传输控制块
 5                 struct sock_common { //传输控制块公共部分
 6                     //struct sock, struct request_sock, struct inet_timewait_sock的公共部分
 7                 }
 8                 
 9                 //增加了其他非sock_common的公共信息
10             }
11             
12             //增加了ipv4协议专有的一些属性,如TTL,组播列表,ip地址,端口等;
13         }
14         
15         //所有面向连接传输控制块,增加了连接,确认,重传等;
16     }
17     
18     //tcp协议的控制块,增加了滑动窗口,拥塞控制算法等tcp专有属性;
19  }

 

posted @ 2019-10-27 22:05  AlexAlex  阅读(527)  评论(0编辑  收藏  举报