首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
欢迎光临中国IT实验室思科频道
您现在的位置: 中国IT实验室 >> Cisco >> 网络协议 >> TCP/IP >> 文章正文

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

文章来源中国IT实验室收集整理 作者佚名 更新时间2007-9-28 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

  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)处序列号的数据没能接收到。

[1] [2] [3] 下一页  

【责编:Kittoy】
中国IT教育
相关产品和培训
文章评论
 友情推荐精华
 专题推荐

 ·HSRP热备份路由协议配置
 ·思科认证考试中心查询专题
 ·TCP/IP 协议专题
 ·利用RIP路由协议搭建网络
 ·引领潮流 千兆组网专题
 ·无“线”风光,配置实战专题
 ·访问控制列表(ACL)应用专题
 ·VLAN(虚拟局域网)实用专题
 ·大型实用解决方案专题目
 ·亲密接触QoS专题
 今日更新
 认证培训
 频道精选
 思科频道导航