/* linux-5.10.x\net\ipv4\tcp_input.c
* 根据已复制的字节数和时间差动态调整TCP接收窗口大小,适度调整接收缓冲区大小。
* 具体逻辑包括
判断时间差和RTT的关系、计算已复制字节数、判断是否进行窗口调整、计算窗口大小和增长量、调整接收窗口大小、计算接收缓冲区大小、
更新接收缓冲区大小和窗口限制、更新接收队列空间大小和时间戳。
通过此函数可以优化TCP性能,并根据网络条件调整接收缓冲区大小。 */
void tcp_rcv_space_adjust(struct sock *sk)//用于调整TCP接收缓冲区的大小
{
struct tcp_sock *tp = tcp_sk(sk); //将传入的sock结构体指针转换为tcp_sock结构体指针,方便访问TCP特定的字段和函数
u32 copied; //用于保存已复制的字节数和时间
int time;
trace_tcp_rcv_space_adjust(sk); //记录TCP接收窗口调整的跟踪信息
tcp_mstamp_refresh(tp); //刷新TCP时间戳,将当前时间戳保存到tcp_sock结构体的tcp_mstamp字段
time = tcp_stamp_us_delta(tp->tcp_mstamp, tp->rcvq_space.time); //计算当前时间与上次接收队列空间更新时间之间的时间差time(以微秒为单位)
if (time < (tp->rcv_rtt_est.rtt_us