关于TCP协议的SACK选项功能详细解读

文章作者 100test 发表时间 2007:09:29 12:01:35
来源 100Test.Com百考试题网


  1. 前言

  TCP通信时,如果发送序列中间某个数据包丢失,TCP会通过重传最后确认的包开始的后续包,这样原先已经正确传输的包也可能重复发送,急剧降低了TCP性能。为改善这种情况,发展出SACK(Selective Acknowledgment, 选择性确认)技术,使TCP只重新发送丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到等。

  2. SACK选项

  SACK信息是通过TCP头的选项部分提供的,信息分两种,一种标识是否支持SACK,是在TCP握手时发送;另一种是具体的SACK信息。

  2.1 SACK允许选项

         类型值: 4

        --------- --------- 

       | Kind=4  | Length=2|

        --------- --------- 

  该选项只允许在有SYN标志的TCP包中,也即TCP握手的前两个包中,分别表示各自是否支持SACK.

  2.2 SACK选项

  选项类型: 5

  选项长度: 可变,但整个TCP选项长度不超过40字节,实际最多不超过4组边界值。

              -------- -------- 

                         | Kind=5 | Length |

        -------- -------- -------- -------- 

       |      Left Edge of 1st Block       |

        -------- -------- -------- -------- 

       |      Right Edge of 1st Block      |

        -------- -------- -------- -------- 

       |                                   |

       /            . . .                  /

       |                                   |

        -------- -------- -------- -------- 

       |      Left Edge of nth Block       |

        -------- -------- -------- -------- 

       |      Right Edge of nth Block      |

        -------- -------- -------- -------- 

  该选项参数告诉对方已经接收到并缓存的不连续的数据块,注意都是已经接收的,发送方可根据此信息检查究竟是哪个块丢失,从而发送相应的数据块。

  * Left Edge of Block

  不连续块的第一个数据的序列号。

  * Right Edge of Block

  不连续块的最后一个数据的序列号之后的序列号。表示(Left Edge - 1)和(Right Edge)处序列号的数据没能接收到。



相关文章


OSI第二层网络架构安全要素
软交换网络中的关键路由技术详细分析
Cisco路由器配置--反转多路复用的妙用
关于TCP协议的SACK选项功能详细解读
在CISCO3550上封堵端口防病毒
思科3500系列交换机的基本配置命令
Catalyst6509防火墙模块配置
巧设寄存器重设思科路由器密码
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛