文档详情

TCP拥塞控制算法内核实现剖析.docx

发布:2017-06-17约4.73万字共45页下载文档
文本预览下载声明
TCP拥塞控制算法内核实现剖析(一)分类:?Linux Kernel2011-12-05 17:10?195人阅读?评论(0)?收藏?举报内核版本:2.6.37主要源文件:linux-2.6.37/ net/ ipv4/ Tcp_cong.c?本文主要分析RENO及TCP拥塞控制基础的实现======================================================================================================struct sock *sk 和 struct tcp_sock *tp 的转换[cpp]?view plaincopy在include/?linux/?Tcp.h中,??static?inline?struct?tcp_sock?*tcp_sk(const?struct?sock?*sk)???{??????????return?(struct?tcp_sock?*)sk?;??}????给出struct?sock?*sk,??struct?tcp_sock?*tp?=?tcp_sk(sk)?;???tcp_sock结构[cpp]?view plaincopystruct?tcp_sock??{?????????...???u32?window_clamp?;?/*?Maximal?window?to?advertise?*/???u32?rcv_ssthresh?;?/*?Current?window?clamp?*/???u32?rcv_wnd?;?/*?Current?receiver?window?*/?????????...???/*?snd_wll?记录发送窗口更新时,造成窗口更新的那个数据报的第一个序号。???*?它主要用于在下一次判断是否需要更新发送窗口。???*/???u32?snd_wll?;?/*?Sequence?for?window?update?*/????u32?snd_wnd?;?/*?发送窗口的大小,直接取值于来自对方的数据报的TCP首部?*/???/*?Maximal?window?ever?seen?from?peer?记录来自对方通告的窗口的最大值?*/???/*?First?byte?we?want?an?ack?for?发送窗口的左边沿?*/???u32?max_window?;??u32?snd_una?;???????????...???/*???*?Slow?start?and?congestion?control???*/???u32?snd_ssthresh?;?/*?Slow?start?size?threshold?*/???u32?snd_cwnd?;?/*?Sending?congestion?window?*/???/*表示在当前的拥塞控制窗口中已经发送的数据段的个数*/???u32?snd_cwnd_cnt?;?/*?Linear?increase?counter?*/????u32?snd_cwnd_clamp?;?/*?Do?not?allow?snd_cwnd?to?grow?above?this?*/??????????...???u32?mss_cache?;?/*?cached?effective?mss?,?not?including?SACKS?*/???u32?bytes_acked?;?/*?Appropriate?Byte?Counting?-?RFC3465?*/?????????...??}??拥塞避免算法关键部分[cpp]?view plaincopy/*?In?theory?this?is?tp-snd_cwnd?+=?1?/?tp-snd_cwnd?(?or?alternative?w?)?*/??void?tcp_cong_avoid_ai(struct?tcp_sock?*tp?,?u32?w)??{??????????if?(?tp-snd_cwnd_cnt?=?w)?{?????????????????????if?(?tp-snd_cwnd??tp-snd_cwnd_clamp)??????????????????????????tp-snd_cwnd++?;?????????????????????tp-snd_cwnd_cnt?=?0?;??????????}?else?{?????????????????????tp-snd_cwnd_cnt?++?;??????????}??????????????????}??EXPORT_SYMBOL_GPL(tcp_cong_avoid_ai)?;??慢启动算法[cpp]?view p
显示全部
相似文档