自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

redwingz的博客

Linux内核网络、虚拟化

原创 TCP-Westwood拥塞算法

TCP-Westwood在TCP-Reno的基础上增强了窗口控制和退避处理,例如,TCPW发送端监控ACK报文的接收速率,进而估算当前连接可达到的数据发送速率(可用带宽)。当发送端检测到丢包时(超时或者3个重复ACK),发送端根据估算的发送速率设置拥塞窗口大小(cwnd)和慢启动阈值(ssthre...

2020-06-30 22:08:37 282 0

原创 TCP-Hybla拥塞算法

TCP Hybla算法的改进是对于RTT较长的连接(例如卫星和无线网络)可获得与参考TCP连接(如,有线网络)相同的瞬时发送速率B(t)。TCP的发送速率计算如下(W(t)表示t时刻的发送窗口值): B(t)=W(t)/RTT(1) \tag{1} B(t)=W(t)/RTT B(t)=W(t)/...

2020-06-20 21:49:40 264 0

原创 TCP-Reno拥塞算法

经典的Reno算法实现了三个拥塞函数,如下所示: struct tcp_congestion_ops tcp_reno = { .flags = TCP_CONG_NON_RESTRICTED, .name = "reno", .o...

2020-06-16 22:30:12 991 0

原创 H-TCP拥塞算法

根据对AIMD拥塞算法的观察,对于传统网络,增加值α应当足够小,以便于同传统TCP拥塞算法(Reno/NewReno)相兼容;而对于高速和长距离(high-speed and long distance)网络,可增大α的值,以便获取额外的带宽。基于以上判断,H-TCP通过动态的调整α和β的值,来达...

2020-06-15 22:04:01 186 0

原创 TCP客户端端口号选择

如下函数inet_hash_connect,如果没有指定绑定的接口,在发起连接的时候,由函数inet_sk_port_offset先选择一个端口偏移量(port_offset),函数__inet_hash_connect负责绑定端口。 int inet_hash_connect(struct in...

2020-06-10 22:03:37 601 0

原创 TCP监听端口选择

内核提供了两个PROC文件可以控制套接口使用的端口号范围,其中文件ipv4_local_port_range定义了可使用的端口范围;文件ip_local_reserved_ports定义了保留的端口范围。 static struct ctl_table ipv4_net_table[] = { ...

2020-06-09 23:32:47 593 0

原创 传统TCP(Reno)拥塞响应函数

TCP拥塞响应函数指吞吐与丢包率之间的一个关系,传统Reno-TCP执行以下两个操作:1)将丢包视为网络发生了拥塞,将拥塞窗口降低一半;2)在拥塞避免阶段,每个RTT周期,拥塞窗口增加1。以上两者决定了在丢包率和平均吞吐之间形成了一个简单的关系,这里的丢包率和吞吐都是指的一个稳定的状态值,不考虑丢...

2020-06-06 23:45:24 207 0

原创 TCP套接口选择

在TCP接收函数tcp_v4_rcv中,由__inet_lookup_skb执行报文所属套接口的查找任务。 int tcp_v4_rcv(struct sk_buff *skb) { int sdif = inet_sdif(skb); th = (const struct tc...

2020-06-02 21:25:00 116 0

提示
确定要删除当前文章?
取消 删除