4用于在Linux中生成初始序列号的USec计时器

时间:2012-09-08 11:02:03

标签: linux

以下几行来自RFC6528. S3

建议的初始序列号生成算法。

TCP应该使用以下表达式生成其初始序列号:

  ISN = M + F(localip, localport, remoteip, remoteport, secretkey)

其中M是4微秒计时器

4微秒计时器究竟是什么意思

(请不要因下面的内容偏离问题的主要焦点。这只是为了澄清我的一条评论)

这是一个困扰我的形象。

MD5 has replaced half MD4 from kernels 3.1, but I'm not sure whether the re-keying is avoided!

(MD5已经从内核3.1取代了MD4。但我不确定是否可以避免重新键入。 重启计数器在启动时设置为零(如果仍然使用)

1 个答案:

答案 0 :(得分:2)

为了避免因早期的TCP连接问题而收到过时段的麻烦,相关的RFC提出了一系列措施。

其中一项措施是以比实时连接允许的带宽更快的速度单调递增ISN,因此下次使用相同的打开连接(源IP,dest ip,源端口,dest端口)元组,使用的序列号与早期连接的TCP段中使用的序列号不一致。

RFC1185的附录中讨论了这个和其他机制。

显然,4μs定时器适用于2Mb / s网络。 Linux使用64 ns计时器。