TCP/IP协议学习记录之二十二:TCP的未来和性能

    路径MTU发现

        路径MTU是当前在两个主机之间的路径上任何网络上的最小MTU,如果一个待转发的IP数据报被设置成“不要分片”,而其长度又超过MTU,那么路由器将返回ICMP不可达差错;

       T C P的路径M T U发现按如下方式进行:在连接建立时, T C P使用输出接口或对端声明的M S S中的最小 M T U作为起始的报文段大小。路径 M T U发现不允许 T C P超过对端声明的 M S S。如果对端没有指定一个 M S S,则默认为5 3 6。一个实现也可以按为每个路由单独保存路径M T U信息。
         一旦选定了起始的报文段大小,在该连接上的所有被 T C P发送的I P数据报都将被设置 D F比特。如果某个中间路由器需要对一个设置了 D F标志的数据报进行分片,它就丢弃这个数据报,并产生一个I C M P的“不能分片”差错。如果收到这个 I C M P差错, T C P就减少段大小并进行重传。如果路由器产生的是一个较新的该类I C M P差错,则报文段大小被设置为下一跳的 M T U减去I P和T C P的首部长度。如果是一个较旧的该类 I C M P差错,则必须尝试下一个可能的最小 M T U。当由这个 I C M P差错引起的重传发生时,拥塞窗口不需要变化,但要启动慢启动。
         由于路由可以动态变化,因此在最后一次减少路径 M T U的一段时间以后,可以尝试使用一个较大的值(直到等于对端声明的 M S S或输出接口 M T U的最小值)。

长肥管道

    一个连接的容量表示为
             c a p a c i t y (b) = b a n d w i d t h (b/s) × ro u n d-t r i p t i m e ( s )
        并称之为带宽时延乘积。也可称它为两端的管道大小。

        具有大的带宽时延乘积的网络被称为长肥网络( Long Fat Network ,即 L F N,发音为“e l e f a n ( t ) s”),而一个运行在 L F N上的T C P连接被称为长肥管道。

窗口扩大选项

      窗口扩大选项使T C P的窗口定义从16 bit增加为32 bit。这并不是通过修改 T C P首部来实现的, T C P首部仍然使用 16 bit ,而是通过定义一个选项实现对 16 bit 的扩大操作 ( scaling operation)来完成的。于是T C P在内部将实际的窗口大小维持为 32 bit的值。

    这个选项只能够出现在一个 S Y N报文段中,因此当连接建立起来后,在每个方向的扩大因子是固定的。为了使用窗口扩大,两端必须在它们的 S Y N报文段中发送这个选项。主动建立连接的一方在其 S Y N中发送这个选项,但是被动建立连接的一方只能够在收到带有这个选项的S Y N之后才可以发送这个选项。每个方向上的扩大因子可以不同。如果主动连接的一方发送一个非零的扩大因子,但是没有从另一端收到一个窗口扩大选项,它就将发送和接收的移位记数器置为 0。这就允许较新的系统能够与较旧的、不理解新选项的系统进行互操作。

时间戳选项

     时间戳选项使发送方在每个报文段中放置一个时间戳值。接收方在确认中返回这个数值,从而允许发送方为每一个收到的 A C K计算RT T(往返时间)。

       在连接建立阶段,对这个选项的规定与窗口扩大选项类似。主动发起连接的一方在它的 S Y N中指定选项。只有在它从另一方的 S Y N中收到了这个选项之后,该选项才会在以后的报文段中进行设置。我们已经看到接收方 T C P不需要对每个包含数据的报文段进行确认,许多实现每两个报文段发送一个 A C K。
 

PAWS:防止回绕的序号

    PAW S算法不需要在发送方和接收方之间进行任何形式的时间同步。接收方所需要的就是时间戳的值应该单调递增,并且每个窗口至少增加 1。
 

T/TCP

   为事务用的T C P扩展,即 T / T C P,允许一个客户 /服务器的请求-应答序列在通常的情况下只使用三个报文段来完成。它避免使用三次握手,并缩短了 T I M E _ WA I T状态,其方法是为每个主机高速缓存少量的信息,这些信息曾用来建立过一个连接。它还在包含数据报文段中使用S Y N和F I N标志;

NOTES:TCP的最高速运行速率的真正上限是由TCP的窗口大小和光速(往返时间)决定的;

猜你喜欢

转载自blog.csdn.net/cxy19931018/article/details/81382392
今日推荐