1. 首页
  2. 考试认证
  3. 其它
  4. 窗口扩大选项-软件无线电原理与应用第二版

窗口扩大选项-软件无线电原理与应用第二版

上传者: 2024-07-07 08:12:41上传 PDF文件 12.68MB 热度 6次
24.4窗口扩大选项使T C P的窗口定义从16 bit增加为32 bit。这并不是通过修改T C P首部来实现的, T C P首部仍然使用16 bi t ,而是通过定义一个选项实现对16 bit的扩大操作( s c a l i n g o p e r a t i o n )来完成的。于是T C P在内部将实际的窗口大小维持为32 bit的值。在图1 8 - 2 0可以看到关于这个选项的例子。一个字节的移位记数器取值为0(没有扩大窗口的操作)和1 4。这个最大值1 4表示窗口大小为1 073 725 440字节(6 5 5 3 5×2 1 4 )。这个选项只能够出现在一个S Y N报文段中,因此当连接建立起来后,在每个方向的扩大因子是固定的。为了使用窗口扩大,两端必须在它们的S Y N报文段中发送这个选项。主动建立连接的一方在其S Y N中发送这个选项,但是被动建立连接的一方只能够在收到带有这个选项的S Y N之后才可以发送这个选项。每个方向上的扩大因子可以不同。如果主动连接的一方发送一个非零的扩大因子,但是没有从另一端收到一个窗口扩大选项,它就将发送和接收的移位记数器置为0。这就允许较新的系统能够与较旧的、不理解新选项的系统进行互操作。 Host Requirements RFC要求T C P接受在任何报文段中的一个选项(只有前面定义的一个选项,即最大报文段大小,仅在S Y N报文段中出现)。它还进一步要求T C P忽略任何它不理解的选项。这就使事情变得容易,因为所有新的选项都有一个长度字段(图1 8 - 2 0)。假定我们正在使用窗口扩大选项,发送移位记数为S,而接收移位记数则为R。于是我们从另一端收到的每一个16 bit的通告窗口将被左移R位以获得实际的通告窗口大小。每次当我们向对方发送一个窗口通告的时候,我们将实际的32 bit窗口大小右移S比特,然后用它来替换T C P首部中的16 bit的值。 T C P根据接收缓存的大小自动选择移位计数。这个大小是由系统设置的,但是通常向应用进程提供了修改途径(我们在2 0 . 4节中讨论了这个缓存)。一个例子如果在4 . 4 B S D的主机v a n g o g h . c s . b e r k e l e y . e d u上使用s o c k程序来初始化一个连接,我们可以观察到它的T C P计算窗口扩大因子的情况。下面的交互输出显示的是两个连续运行的程序,第1个指定接收缓存为128 000字节,而第2个的缓存则为220 000字节。图2 4 - 7显示了这两个连接的t c p d u m p输出结果(去掉了第2个连接的最后8行,因为没有262使用TCP/IP详解,卷1:协议下载我们键入这一行此处是它的回显键入文件结束字符以终止
下载地址
用户评论