当前位置:网站首页>TCP Congestion Identification

TCP Congestion Identification

2022-06-22 09:50:00 dog250

First look at the following article :
TCP Timestamps are wonderful
Optimize with timestamp TCP practice

In this paper, the “ Algorithm ” It's too simple to call it an algorithm , So I put quotation marks .

But the attitude is clear .

Inject a new message , Congestion judgment will certainly be more accurate , There is absolutely no doubt about it . The doubter is not against me , It's ClaudeShannon .

I can exclude ACK Half way jitter effect , Now only consider Data half . Observe T = ACK.tsvar - ACK.tsecr The variance of Var.

Almost certainly , When the following conditions are met , It must be random packet loss rather than congestion :

V a r < δ And T e n d − T s t a r t < α And ( T m i d − T s t a r t ) − ( T e n d − T m i d ) < β Var < \delta And T_{end}-T_{start} < \alpha And (T_{mid}-T_{start}) -(T_{end}-T_{mid} )<\beta Var<δ And TendTstart<α And (TmidTstart)(TendTmid)<β

among T m i d T_{mid} Tmid Sampling at random intervals is sufficient . This is just an example , Don't count .

The jitter of the timestamp difference is more important than the absolute value , It's more real . In the current network environment, it is impossible to have an equal difference sequence delay , If the difference jitter continues to be 0, Almost certainly there is no congestion .

Although it is impossible to accurately identify the true congestion , But it can eliminate false congestion , Assist this means , When CUBIC When packet loss is detected , There is no need to lower the window in case of false congestion .

AQM Very complicated , It cannot be judged that congestion has occurred by observing the monotonic increase of queuing time , But the following data can be trained :

int main(int argc, char **argv)
{
    
	static int iter = 0;
	int loop = atoi(argv[1]), i;
	static unsigned long d1_var = 0;
	static unsigned long d1_last = 0;
	long delta1 = 0;
	int a = rand() % 10;

	for (i = 0; i < loop; i += a) {
    
		a = rand() % 10;
		if (d1_last == 0)
			d1_last = i;
		if (i > d1_last)
			delta1 = i - d1_last;
		else
			delta1 = d1_last - i;
		d1_last = i;
		d1_var = (d1_var*1000*4/10 + delta1*1000*6/10)/1000;

		printf("%d %d delta:%d\n", d1_var, i, delta1);
	}
}

I don't mean to say that this is an algorithm or how powerful this algorithm is , Well, I mean , This can help CUBIC Determine congestion more accurately , Thus influencing the decision .

There is a phenomenon , Look for someone at three o'clock on Wednesday afternoon , No response , The man replied on Saturday “ sorry , I'm busy from Wednesday to Friday , It's empty now , What's the matter, please ”… I X , You're free , I'm on vacation … Derivative of derivative , Variance of variance , Manager's leather shoes , The manager's concern .

Zhejiang Wenzhou leather shoes wet , It's not fat when it's raining .

原网站

版权声明
本文为[dog250]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206220932550265.html