GPRS011TCPIP特性及应用.pptx_第1页
GPRS011TCPIP特性及应用.pptx_第2页
GPRS011TCPIP特性及应用.pptx_第3页
GPRS011TCPIP特性及应用.pptx_第4页
GPRS011TCPIP特性及应用.pptx_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Guangzhou HANTELE Communication Co.LTD TCP/IP特性及应用 GPRS-011 课堂纪律 2.上课应带上笔和笔记本,做好笔记 3.精神饱满,积极参与课堂学习和讨论 4.不迟到、不早退,请假需与讲师说明 1.手机必须处于静音状态,原则上尽量不使用电话 课程目标 通过对课程的学习,您将能够学到: 1. TCP实现的主要机制原理 2. TCP实现的主要参数介绍 3. TCP在现网中的应用 1. TCP实现的主要机制原理 2. TCP实现的主要参数介绍 3. TCP在现网中的应用 目录 延迟应答机制 延迟应答机制产生的背景:减少报文重传数量和 ACK 数量能有效提高无线自组网中 TCP 的传输性能。 在RFC1122 中,提出了延迟ACK策略来减少ACK数量(TCP_DA)。接收方收到一个报文 后,等待TcpDelAckTicks Timer(默认200 ms),这期间若有回送数据报文就捎带 ACK,如果收到 TcpAckFrequency 个连续的数据报文或等待超时则发送 1 个独立ACK 。延迟ACK的应用虽然减少了ACK数量,但非及时的确认有时会影响发送方的发送效 率,限制了TCP在启动阶段的数据率增加。另外,延迟ACK会影响RTT的正确估计, 对TCP整体性能造成一定影响。 有关 Delay ACK的详细内容参阅: RFC 1122: Requirements for Internet Hosts - Communication Layers. SACK选择性应答机制 +-+-+ | Kind=5 | Length | +-+-+-+-+ | Left Edge of 1st Block | +-+-+-+-+ | Right Edge of 1st Block | +-+-+-+-+ | | / . . . / | | +-+-+-+-+ | Left Edge of nth Block | +-+-+-+-+ | Right Edge of nth Block | +-+-+-+-+ SACK选项 选项类型: 5 选项长度: 可变,但整个 TCP选项长度不超过40字节,实际最多不超过4组 边界值。 当选择了时间戳选项时,SACK不能超 过3组边界值。 该选项参数告诉对方已经接收到并缓存的不连续 的数据块,注意都是已经接收的,发送方可根据 此信息检查究竟是哪个块丢失,从而发送相应的 数据块。 * Left Edge of Block 不连续块的第一个 数据的序列号。 * Right Edge of Block 不连续块的 最后一个数据的序列号之后的序列号。表示(Left Edge - 1)和(Right Edge)处序列号的数据没能接收 到。 SACK主要作用:通过SACK选项可以使TCP发送方只发送丢失的数据而不用发送后续 全部数据,提高了数据的传输效率。 SACK选择性应答机制 携带SACK的响应信息 Tcp.ac k Left Edge Right Edge 接收方发起携带SACK的响应消息,该消息携带重要字段:ACK number、Left Edge、Right Edge。 其中ACK Number表示告知发送方“我已收到在此序列号之前所有的数据包。” Left Edge和Right Edge有两种情况,表达意思也不一样。 1、当Right EdgeTcp.ack时,告知发送方“我收到ACK序列号之前所有的数据包和L-R序列 号之间的数据包”, 发送方收到这样的ACK包,即可判断接收方在当前时刻没有收到ACK序列号到Left Edge之 间的数据包。可能出现乱序或者丢包。 慢启动机制 当新建连接时,cwnd初始化为1或2个最大报文段(MSS)大小,发送端开始按照拥塞窗口 大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。使用慢开始算法 后,每经过一个窗口发送轮次,拥塞窗口 cwnd 就加倍。 注:一个发送轮次指把拥塞窗口 cwnd 所允许发送的报文段都连续发送出去,并收到了 对已发送的最后一个字节的确认。 这样cwnd的值就随着发送窗口发送轮次呈指数级增长,事实上,慢启动的速度一点也 不慢,只是它的起点比较低一点而已。可以简单计算下: 开始 - cwnd = 1 经过1个发送轮次后 - cwnd = 2*1 = 2 经过2个发送轮次后 - cwnd = 2*2= 4 经过3个发送轮次后 - cwnd = 4*2 = 8 如果带宽为W,那么经过RTT*log2W时间可占满带宽。 拥塞避免机制 从慢启动可以看到,cwnd可以很快的增长上来,从而最大程度利用网络带宽资源,但 是cwnd不能一直这样无限增长下去,一定需要某个限制。TCP使用了一个叫慢启动门限 (ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。对于大 多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。拥塞避免的主要思想是加 法增大,也就是cwnd的值不再指数级往上升,开始加法增加。此时当窗口中所有的报 文段都被确认时,cwnd的大小加1,cwnd的值就随着发送轮次开始线性增加,这样就 可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。 慢开始门限 ssthresh 的用法如下: 当 cwnd ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。 当发生超时重传时,采取如下算法: Ssthresh设置为当前Cwnd的一半,并且至少为两个MSS单元大小。即 Ssthresh=Max(Cwnd/2(Ssthresh=2*MSS)) Cwnd重新初始化。 慢启动 拥塞避免 超时重传 上图是一个FTP上传事件的Cwnd变化趋势图,可以明显看到慢启动过程中Cwnd以指 数形式增长,在拥塞避免阶段改为线性增长。超时重传将被TCP进程认为TCP连接已 拥塞崩溃,将重新开始数据传输,即重新进入慢启动状态。 慢启动与拥塞避免实例 快重传机制 快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以 让发送方及早知道有报文段没有到达接收方。 发送方只要一连收到(Tcp_Dupack_Fast_Retransmit Default=3)个重复确认就应 当立即重传对方尚未收到的报文段。 不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。 快恢复机制 当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢启动门限 ssthresh 减半。但接下去不执行慢启动算法。 由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢启动算法,即拥塞窗口 cwnd 现在不设置为 1,而是设置为慢启动门限 ssthresh 减半后+3*MSS的数值,然后 开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。 从连续收到三个重复的确认转入快恢复 “乘法减小” 拥塞避免 “加法增大” 24 2468101214161820220 0 4 8 12 16 20 拥塞窗口 cwnd 收到 3 个重复的确认 执行快重传算法 慢启动 拥塞避免 “加法增大” Cwnd=24/2+3=15 超时重传机制 T C P提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确 认都有可能会丢失。T C P通过在发送时设置一个定时器来解决这种问题。如果当定时器 溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重 传的策略,即怎样决定超时间隔和如何确定重传的频率。 当发生超时重传时,重新开始慢启动状态,采取如下算法: Ssthresh设置为当前Cwnd的一半,并且至少为两个MSS单元大小。即 Ssthresh=Max(Cwnd/2(Ssthresh=2*MSS)) Cwnd重新初始化。 小节(标题字体32号,黑体) 2.正文采用24号字体,宋体,但根据具体情况可灵活 调整(行间距1.5倍) 1.目标或章节总结可以采用表框的形式 1. TCP实现的主要机制原理 2. TCP实现的主要参数介绍 3. TCP在现网中的应用 目录 参数介绍 KeepAliveTime KeepAliveTime 值控制 TCP/IP 尝试验证空闲连接是否完好的频率。如果这段时间内没有 活动,则会发送保持活动信号。启动 regedit 命令,浏览至 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 注册表子键 ,然后创建或设置名为 KeepAliveTime 的新 REG_DWORD 值。为该值设置适当的毫秒 数。 TcpMaxDataRetranmission TcpMaxDataRetranmission 值定义了 TCP/IP 通过现有连接重新发送未返回应答的数据 段的次数。 缺省情况下,Windows 会重新发送未返回应答的数据段 5 次。 启动 regedit 命令,浏览至 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 注册表子 键,然后创建或设置名为 TcpMaxDataRetransmissions 的新 REG_DWORD 值。 参数介绍 TcpAckFrequency TcpAckFrequency 值确定了 TCP/IP 发送应答消息的频率。缺省情况下,Windows 使用值 2( 每隔一个分段应答一次)。该值的有效范围是 0 到 255,其中 0 表示使用缺省值(2)。 启动 regedit 命令,浏览至 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesAdapter Id 注册表子键(其中 AdaperId 表示将受影响的网络适配器),然后创建或设置名为 TcpAckFrequency 的新 REG_DWORD 值。 TcpDelAckTicks 项: TcpipParametersInterfacesinterface 数值类型: REG_DWORD - 数字 有效范围: 0-6 默认值: 2(200 毫秒) 说明:指定每个接口上延迟 ACK 计时器所使用 100 毫秒间隔的个数。默认情况下,延 迟 ACK 计时器为 200 毫秒。将该数值设置为 0,将禁用延迟确认,计算机就会立即确 认所收到的每个数据包。 参数介绍 Tcp1323Opts 项: TcpipParameters 数值类型: REG_DWORD - 数字(标志) 有效范围: 0、1、2、3 0(禁用 RFC 1323 选项)1(仅启用窗口缩放)2(仅启用时间戳)3(两个选项均启用 ) 默认值: 没有数值;默认行为如下所示:除非要求提供,否则不要启用选项。 GlobalMaxTcpWindowSize 项: TcpipParameters 数值类型: REG_DWORD - 字节数 有效范围: 0-0x3FFFFFFF(十进制为 1073741823;但是当连接到其它支持 RFC 1323 窗口缩放的系统时,可以获得大于 64 KB 的数值,它在本文的 TCP 部分进 行了讨论。另外,必须使用 Tcp1323Opts 注册表参数启用窗口缩放。) 默认值: 默认情况下,该参数不存在。 参数介绍 SackOpts 项: TcpipParameters 数值类型: REG_DWORD - 布尔值 有效范围:0、1(false、true) 默认值: 1 (true) 说明: 该参数控制选择性确认(SACK,在 RFC 2018 中定义)支持是否启用 TcpWindowSize 项: TcpipParameters, TcpipParametersInterfaceinterface 数值类型: REG_DWORD - 字节数 有效范围: 0-0x3FFFFFFF(十进制为 1073741823)。 实际上,TCP/IP 栈将设置值舍入 到最接近的最大段大小 (MSS) 的倍数。仅当连接到支持 RFC 1323 窗口缩放的其它系统 时,方可获得大于 64 KB 的数值 。 小节(标题字体32号,黑体) 2.正文采用24号字体,宋体,但根据具体情况可灵活 调整(行间距1.5倍) 1.目标或章节总结可以采用表框的形式 1. TCP实现的主要机制原理 2. TCP实现的主要参数介绍 3. TCP在现网中的应用 目录 三步握手中的关键点 三步握手中需要重点关注的知识点: a) 三步握手信令流程 b) 序列号 c) Window Size d) Window Scale e) MSS f)SACK 1.tcp.ack=0.tcp.seq+1 2.tcp.ack=1.tcp.seq+1 注:因为一个SYN 将占用 一个序号,所以要加 1 序列号和确认号 序列号是TCP协议中最重要的核心内容之一,基于序列号,TCP才能保证传送数据 包的顺序,才能谈得上可靠传输。 M-TRiX软件中的TCP字段: TCP Sequence Number:序列号(tcp.seq) TCP Ack Number:确认号(tcp.ack) TCP Next Sequence Number:下一个序列号(tcp.nxtseq) 注:tcp.nxtseq在协议规范中是没有的,此处是为了辅助分析而由软件定义添加 的。Tcp.nxtseq=tcp.seq+数据包长度。数据包长度在IP化网络中等于ip2.len- ip.hdr_len-tcp.hdr_len,传统2M传输网络中等于ip.len-tcp.hdr_len。 SACK应用实例 #9消息携带SACK字段,告知发送方“已收到#5前所有数据包和#7数据包。”隐藏信息为“当 前时刻,#6数据包没有收到!” #10.tcp.ack=3522694067=#7.tcp.nxtseq。说明接收方已经接收到4067前所有数据。 发送方收到#9消息时,认为该消息是#8消息的重复包(tcp.seq、tcp.ack一致),此时 Tcp_Dupack_Fast_Retransmit计数器+1,当收到#10时,便可知晓仅是数据包乱序,随 后将重置Tcp_Dupack_Fas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论