tcp处理
2015-09-27 02:21
603 查看
进入包的处理(net/ipv4/tcp_input.c):
接收的段都由tcp_v4_do_rcv处理,该函数根据不同的状态交由不同的函数处理。LISTEN状态且已建立半连接的处理函数为tcp_v4_hnd_req,其他状态为tcp_rcv_state_process
tcp_rcv_established处理从一个建立的连接进入的tcp包,是处理tcp包的唯一入口点。Linux有两种方法处理tcp包:快速路径和慢速路径。
tcp_ack 处理ack或带ack的数据包
tcp_event_data_recv 处理tcp包。在接收到顺序数据段时处理。
tcp_data_queue() 处理数据段中的数据。套接字缓冲耗尽或者乱序,在这里面处理。此外还要处理重复数据段、窗口外数据段以及重传。
降窗函数tcp_cwnd_down
tcp_cong_void处理拥塞避免。实现了慢速启动和快速重传的拥塞控制算法。完全的拥塞控制机制在tcp_fastretrans_alert中实现。在tcp_ack中会调用tcp_fastretrans_alert函数
tcp_select_window计算通告窗口
tcp_push 发送数据
tcp_congestion_ops结构提纲了支持多种拥塞控制的机制。需要实现tcp_congestion_ops中的接口,必须实现ssthresh、cong_svoid。
必须将拥塞控制算法的名称添加到/proc/sys/net/ipv4/tcp_congestion_control中才能使用。比如要使用Bic和veno算法:
echo "bic veno">/proc/sys/net/ipv4/tcp_congestion_control
tcp_register_congestion_control将一个新的拥塞控制算法注册到tcp_congestion_ops中。除了reno,其他的拥塞控制算法都是作为模块在module_init中注册的。如bictcp_register、cubic_register。
选取某种拥塞控制算法tcp_set_congestion_control
进入包的处理(net/ipv4/tcp_input.c):
接收的段都由tcp_v4_do_rcv处理,该函数根据不同的状态交由不同的函数处理。LISTEN状态且已建立半连接的处理函数为tcp_v4_hnd_req,其他状态为tcp_rcv_state_process
tcp_rcv_established处理从一个建立的连接进入的tcp包,是处理tcp包的唯一入口点。Linux有两种方法处理tcp包:快速路径和慢速路径。
tcp_ack 处理ack或带ack的数据包
tcp_event_data_recv 处理tcp包。在接收到顺序数据段时处理。
tcp_data_queue() 处理数据段中的数据。套接字缓冲耗尽或者乱序,在这里面处理。此外还要处理重复数据段、窗口外数据段以及重传。
降窗函数tcp_cwnd_down
tcp_cong_void处理拥塞避免。实现了慢速启动和快速重传的拥塞控制算法。完全的拥塞控制机制在tcp_fastretrans_alert中实现。在tcp_ack中会调用tcp_fastretrans_alert函数
tcp_select_window计算通告窗口
tcp_push 发送数据
tcp_congestion_ops结构提纲了支持多种拥塞控制的机制。需要实现tcp_congestion_ops中的接口,必须实现ssthresh、cong_svoid。
必须将拥塞控制算法的名称添加到/proc/sys/net/ipv4/tcp_congestion_control中才能使用。比如要使用Bic和veno算法:
echo "bic veno">/proc/sys/net/ipv4/tcp_congestion_control
tcp_register_congestion_control将一个新的拥塞控制算法注册到tcp_congestion_ops中。除了reno,其他的拥塞控制算法都是作为模块在module_init中注册的。如bictcp_register、cubic_register。
选取某种拥塞控制算法tcp_set_congestion_control
相关文章推荐
- 校招笔试面试计算机网络部分的常考点
- Tengine TCP 负载均衡
- 计算机网络之网络安全
- 计算机网络之网络安全
- 计算机网络缩略语
- 网络文件系统
- 40. HTTP 协议(1)
- android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类). 用xUtils会出现问题
- SNMP简单网络管理协议
- Postman用法简介-Http请求模拟工具
- 线段树 2015上海网络赛 An easy probleam
- TCP建立与终止
- TCP保活定时器
- TCP坚持定时器
- 计算机网络 之 常见网络协议相关总结
- TCP超时重传
- 2015 上海网络赛 ACM/ICPC Asia Regional Shanghai Online
- HTTP Status 500 -(struts2整合进spring2.5和hibernate3.3)
- 端 口 详 解
- 计算机网络