实验四传输层参考答案市公开课金奖市赛课一等奖课件_第1页
实验四传输层参考答案市公开课金奖市赛课一等奖课件_第2页
实验四传输层参考答案市公开课金奖市赛课一等奖课件_第3页
实验四传输层参考答案市公开课金奖市赛课一等奖课件_第4页
实验四传输层参考答案市公开课金奖市赛课一等奖课件_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

试验四-传播层参考答案计算机学院教学试验中心-6-10第1页第1页总览:动静结合TCP协议理解静:TCP报文格式,首部各字段;动:协议运营各种机制连接建立、释放传播管理:定期器管理即超时与重传机制流量控制:滑动窗口机制拥塞控制:慢启动、拥塞避免、快重传、快恢复糊涂窗口综合症避免:发送端Nagle算法、接受端推迟确认技术第2页第2页数据传播要点(兼解疑)TCP是全双工,即TCP每端既可发送数据也可接受数据。每个TCP连接中都有两条数据“流”,TCP每端发出报文中“序列号”字段只用于表示自己所发送“数据流”数据序号,“确认号”字段只用于表示(确认)自己所接受“数据流”数据序号,且每次在自己发送数据时捎带确认“窗口”字段只用于表示给自己所接受“数据流”接受窗口大小。试验场景设置只启用了TCP每一端一个功效,即一端只发送数据另一端只接受数据,并从这个角度将TCP两端分别称作发送方和接受方。相称于只启用了TCP单工功效,只启用和分析了TCP连接中一个“流”第3页第3页题1参考答案连接建立方式:三次握手;PCA:积极打开方(C);PCB:被动打开方(S)。先点发送后点接受连接没法成功注意:(有时先点发送后点接受间隔很短也会连接成功,这是由于发出SYN报文后一段时间没有收到SYN+ACK报文,会重复几次发送SYN报文试探)原因:C/S模式,Server没启,Client也就连接不上了。假如没有应用进程被动打开,则积极打开应用进程也就无法成功建立起一个连接。结合看TCP状态机,必须有被动打开方才干连第4页第4页TCP状

态变迁图参考书籍:(美)W.RichardStevens著,范建华等译《TCP/IP协议详解,卷一:协议》,机械工业出版社,计算机科学丛书,4月第5页第5页题2、4要点连接建立三次握手,连接释放四次握手能够结合TCP状态机连接建立过程:“Flags字段”SYN、ACK标识位。连接释放过程:“Flags字段”FIN、ACK标识位。第6页第6页题3要点:选项字段--MSS连接建立时协商参数“选项(Option)字段”

MaximumSegmentSize+--------+--------+---------+--------+ |00000010|00000100|maxsegsize|+--------+--------+---------+--------+Kind=2Length=4MaximumSegmentSizeOptionData:16bits试验报文中十六进制数值:020405b4第7页第7页题3要点:以太网帧最大传播单元(MTU)限制:1500字节;最小传播单元限制:46字节。为何有最大?最小?参考AST《计算机网络》第四版第8页第8页题3、5参考答案MSS=最大MTU长度–IP首部固定(最小)长 度–TCP首部固定(最小)长度

=1500-20-20=1460--题3TCP数据部分长度计算公式--题5,要区别题3要点:结合IP首部各字段、TCP首部各字段=(IP总长度字段(16bits)值-IP首都长度字段(4bits)值*4-TCP首部长度字段(4bits)值*4)字节IP、TCP首都长度字段值以32bits(4bytes)为单位第9页第9页滑动窗口机制要点窗口左边沿定义窗口指针定义窗口右边沿定义注意:查看数据文献tcpsndwnddata.txt体会发送窗口改变,同时推断接受窗口改变第10页第10页题6(1)要点要点:结合慢启动第11页第11页题6(3)要点事实上,6(3)题就是发送方和接受方窗口同时前、后问题,分为两种情况:发送方发送DATA报文,接受方窗口同时前、后问题接受方发送ACK报文,发送方窗口同时前、后问题窗口同时:在网络中没有报文时,包括接受方收到发送方发出所有报文,发送方收到接受方发出所有报文, 发送方窗口与接受方窗口左边沿、指针应当是同样(同时)。第12页第12页题6(3)发送方发送DATA报文DATA报文到达接受方前DATA报文到达接受方后,并与发送方窗口同时第13页第13页题6(3)接受方发送ACK报文ACK报文到达发送方前ACK报文到达发送方后,并与接受方窗口同时第14页第14页窗口同时问题小结窗口左边沿是由接受方发送ACK报文驱动改变;接受方发送ACK报文后其接受窗口左边沿向右滑动;发送方在收到ACK报文后其发送窗口左边沿也随之向右滑动。窗口指针是由发送方发送DATA报文驱动改变;发送方发送DATA报文后其发送窗口指针向右滑动;接受方在收到DATA报文后其接受窗口指针也随之向右滑动。接受窗口右边沿与接受缓存、接受方确认数据都相关系;在接受缓存足够情况下,接受方确认数据,其接受窗口左边沿向右滑动,接受窗口右边沿也向右滑动,满足接受窗口最大值65535;在接受缓存不够情况下,无法满足接受窗口最大值65535,则接受方确认数据,其接受窗口左边沿向右滑动,而接受窗口右边沿停滞不动,对外表现为接受方向发送方发送ACK报文时其通告接受窗口越来越小。发送窗口右边沿与发送方拥塞窗口cwnd、接受方通告接受窗口rwnd相关在任何时候,其值=发送窗口左边沿+min[cwnd,rwnd]。第15页第15页题6(2)要点主要是接受方窗口与缓存关系第16页第16页题6(2)图例演示1/2-接受方

第17页第17页题6(2)图例演示2/2-接受方第18页第18页题6(2)参考答案假如接受缓存不小于65535,在接受窗口值连续减少前接受端已开始休眠。假如接受缓存小于等于65535,在接受窗口值连续减少时接受端开始休眠。能够明显看出接受端开始休眠是X1号报文由于其后通告接受窗口越来越小,(左边沿在不断向右移动,而右边沿不再移动),接受方在窗口范围外可用缓存已被使用完,表明接受方在窗口范围外可用缓存被已确认数据占据着,应用程序进程没有再从缓存中读取这些已确认数据,即表明其已开始休眠。第19页第19页题6(4)要点窗口收缩定义:右边沿向左移动窗口合拢定义:左边沿向右边沿靠近窗口张开定义:右边沿向右移动接6(2)图例演示,继续第20页第20页题6(4)参考答案窗口收缩普通不发生窗口合拢发生在接受窗口连续减小期间窗口张开发生在休眠结束后通告大窗口时第21页第21页题7要点与答案窗口侦查报文指是Keep-Alive报文每相邻两条窗口侦查报文Keep-Alive报文时间差构成数据序列规律:成倍增长规律t1t2t3t4t5t6t7……△t1=t2-t1……窗口侦查报文发送或接受时间相邻两条窗口侦查报文时间差△t2=t3-t2△t3=t4-t3△t2=2△t1△t3=2△t2….△tn=2△tn-1第22页第22页题8(1)答案慢启动初始值sthread=65535,snd_cwnd=2;RFC2581慢启动初始值要求。snd_cwnd*1460<ssthread,慢启动阶段。发送窗口计算snd_wnd=min[cwnd,rwnd]rcv_wnd=65535,snd_cwnd*1460=2920;因此snd_wnd=min[snd_cwnd,rcv_wnd]=snd_cwnd*1460=2920;snd_wnd_right=snd_wnd_left+snd_wnd。第23页第23页题8(2)答案ssthread不变=65535,每收到一个ACK报文,snd_cwnd加1。由于snd_cwnd*1460<ssthread,处于慢启动阶段,每收到一个ACK,snd_cwnd至多增长1个MSS数值(即随RTT时间而指数增长)。第24页第24页题8(2)—验证规律答案能够。现象(普通情况下)

:发送方初次发送2个DATA报文,其后维持在两个确认报文之间发送3个DATA报文。原因:在发送方发满当前发送窗口snd_wnd情况下(慢启动初始发满两个DATA报文),收到接受方1个ACK报文时,由于接受方每收到2个DATA报文,发送1个ACK报文对其进行确认,那么在维持当前发送窗口snd_wnd不变情况下,发送方可再次发送2个DATA报文,同时由于慢启动机制,收到一个正常ACK报文拥塞窗口cwnd值加1,在cwnd远小于接受窗口rwnd时,snd_wnd就等于cwnd即snd_wnd加1,发送方还可再发送1个DATA报文,这样发送方共可发送3个DATA报文。第25页第25页题8(2)—验证规律题定量分析归纳试验现象(普通情况下)发送方:初次发送2个DATA报文,其后维持在两个确认报文之间发送3个DATA报文。接受方:接受方每收到2个DATA报文,发送1个ACK报文对其进行确认。第26页第26页规律分析--初始初始:snd_wnd=min[snd_cwnd,rcv_wnd]=2*MSS;snd&noAck_data=0*MSS;useable_wnd=2*MSS注:假设每个发送报文大小都是1个MSS第27页第27页规律分析--第1步发送2个DATA报文snd_wnd=2*MSS;snd&noAck_data=2*MSS;useable_wnd=0*MSS收到1个ACK报文snd_wnd=snd_wnd_old+1*MSS=3*MSS;snd&noAck_data=snd&noAck_data_old–2*MSS=0*MSS;useable_wnd=1*MSS+2*MSS=3*MSS第28页第28页规律分析--第2步发送3个DATA报文snd_wnd=3*MSS;snd&noAck_data=3*MSS;useable_wnd=0*MSS收到1个ACK报文snd_wnd=snd_wnd_old+1*MSS=4*MSS;snd&noAck_data=snd&noAck_data_old–2*MSS=1*MSS;useable_wnd=1*MSS+2*MSS=3*MSS第29页第29页规律分析--第3步发送3个DATA报文snd_wnd=4*MSS;snd&noAck_data=4*MSS;useable_wnd=0*MSS收到1个ACK报文snd_wnd=snd_wnd_old+1*MSS=5*MSS;snd&noAck_data=snd&noAck_data_old–2*MSS=2*MSS;useable_wnd=1*MSS+2*MSS=3*MSS第30页第30页规律分析--第4步发送3个DATA报文snd_wnd=5*MSS;snd&noAck_data=5*MSS;useable_wnd=0*MSS收到1个ACK报文snd_wnd=snd_wnd_old+1*MSS=6*MSS;snd&noAck_data=snd&noAck_data_old–2*MSS=3*MSS;useable_wnd=1*MSS+2*MSS=3*MSS……第31页第31页规律归纳规律分析--第n步发送3个DATA报文snd_wnd=(n+1)*MSS;snd&noAck_data=(n+1)*MSS;useable_wnd=0*MSS收到1个ACK报文snd_wnd=snd_wnd_old+1*MSS=(n+2)*MSS;snd&noAck_data=snd&noAck_data_old–2*MSS=(n-1)*MSS;useable_wnd=1*MSS+2*MSS=3*MSS……第32页第32页题8(3)要点与答案有超时报文,网络拥塞,实行拥塞处理X号报文,ssthread=max(cwnd/2,2*MSS)(RFC);cwnd=1;超时,表明网络有拥塞。在正常传播后,将依次处于慢启动、拥塞避免阶段其后第一阶段:ssthread不变,cwnd值每收到一个ACK报文就加1。由于snd_cwnd*1460<=ssthread,慢启动阶段。其后第二阶段:ssthread不变,cwnd值每通过一个RTT增长一个SMSS*SMSS/cwnd大小。由于snd_cwnd*1460>ssthread,拥塞避免阶段。第33页第33页题9要点正常传播期间:RTO计算算法超时重传期间:Karn算法RTO=2*RTO_old第34页第34页题9(1)参考答案两种速率下重传时间有很大差异,因为RTO值是依据RTT(平均往返时间)值而加权计算得出;而RTT值又是依据ACK报文抵达而测量出往返时间样本而加权计算得出;因为速率不同,两种速率下在DATA报文发出到ACK报文抵达时间差会有很大差距。三次重传时间呈加倍关系,Karn算法起作用。第35页第35页题9(2)参考答案分别稳定在RTO1和RTO2。发生超时时,RTT值不变,由于RTT改变主要依据ACK报文到达才干得到往返时间样本进而更新RTT值,而RTO在每次重传发生时则加倍。原因是Karn算法起作用。继续正常报文传播时,RTT伴随ACK报文到来一度变大,由于超时期间没有收到任何ACK报文,新到达ACK报文使得往返时间样本急剧增大,按平均往返时间计算算法更新RTT值;RTO值不再加倍但还是很大,由于超时结束,Karn算法不再起作用,又开始按照RTT值进行更新计算(依据重传超时时间计算算法计算),而此时RTT值很大。第36页第36页题9附注按RFC1122要求将RTT和RTO初始值设置为:RTT=0秒,RTO=3秒。由于Linux这些时间值以10毫秒为单位,试验数据文献中表现为SRTT=0;RTO=300;且RTO最小值为200毫秒,最大值为120秒。试验数据文献中表现为20和1;Linux中RTT最小80毫秒,试验数据文献中表现为8第37页第37页题10要点快重传算法针对收到三个重复ACK报文后,即重传重复ACK序号那条DATA报文快恢复算法针对收到三个重复ACK报文后,对拥塞窗口修正第38页第38页题10(1)参考答案X5、X6、X7号报文。不等报文超时,马上进行报文重传,收到三个重复确认,认为报文丢失,快重传。第39页第39页题10(2)参考答案在第三个重复ACK到达时,ssthread=max(cwnd/2,2*MSS)(RFC);cwnd=min[cwnd,已发送报文数–已到达接受方但未正式确认报文+重传报文数+3]。收到三个重复确认,快恢复算法。RTT和RTO无改变,由于往返时间测量是依据ACK报文到达情况来计算,而此时网络并未真正拥塞,只是偶然报文传播犯错,因此RTT测量不受影响,从而RTO没有改变。第40页第40页题10(3)参考答案有。ssthread不变,cwnd=min[cwnd,已发送报文数–已到达接受方但未正式确认报文+重传报文数+3]。在没有重复ACK报文后即开始接受正常ACK报文,ssthread不变,cwnd值每通过一个RTT增长一个SMSS*SMSS/cwnd大小。由于snd_cwnd*1460>ssthread,拥塞避免阶段。第41页第41页题11(1)参考答案启用Nagle算法传播过程数据长度普通都以MSS长度发送;而禁用Nagle算法传播过程数据长度普通都以“

温馨提示

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

评论

0/150

提交评论