实验四-传输层参考答案课件_第1页
实验四-传输层参考答案课件_第2页
实验四-传输层参考答案课件_第3页
实验四-传输层参考答案课件_第4页
实验四-传输层参考答案课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

实验四-传输层参考答案16、自己选择的路、跪着也要把它走完。17、一般情况下)不想三年以后的事,只想现在的事。现在有成就,以后才能更辉煌。18、敢于向黑暗宣战的人,心里必须充满光明。19、学习的关键--重复。20、懦弱的人只会裹足不前,莽撞的人只能引为烧身,只有真正勇敢的人才能所向披靡。实验四-传输层参考答案实验四-传输层参考答案16、自己选择的路、跪着也要把它走完。17、一般情况下)不想三年以后的事,只想现在的事。现在有成就,以后才能更辉煌。18、敢于向黑暗宣战的人,心里必须充满光明。19、学习的关键--重复。20、懦弱的人只会裹足不前,莽撞的人只能引为烧身,只有真正勇敢的人才能所向披靡。实验四-传输层参考答案计算机学院教学实验中心2006-6-10总览:动静结合TCP协议的理解静:TCP报文格式,首部各字段;动:协议运行的各种机制连接建立、释放传输管理:定时器管理即超时与重传机制流量控制:滑动窗口机制拥塞控制:慢启动、拥塞避免、快重传、快恢复糊涂窗口综合症避免:发送端Nagle算法、接收端推迟确认技术TCP的状

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

MaximumSegmentSize+--------+--------+---------+--------+ |00000010|00000100|maxsegsize|+--------+--------+---------+--------+Kind=2Length=4MaximumSegmentSizeOptionData:16bits实验报文中的十六进制数值:020405b4题3要点:以太网帧最大传输单元(MTU)限制:1500字节;最小传输单元限制:46字节。为什么有最大?最小?参考AST《计算机网络》第四版题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)为单位滑动窗口机制要点窗口左边沿定义窗口指针定义窗口右边沿定义注意:查看数据文件tcpsndwnddata.txt体会发送窗口的变化,同时推断接收窗口的变化题6(1)要点要点:结合慢启动题6(3)要点实际上,6(3)题就是发送方和接收方窗口同步前、后的问题,分为两种情况:发送方发送DATA报文,接收方窗口同步前、后问题接收方发送ACK报文,发送方窗口同步前、后问题窗口同步:在网络中没有报文时,包括接收方收到发送方发出的所有报文,发送方收到接收方发出的所有报文, 发送方窗口与接收方窗口的左边沿、指针应该是一样的(同步)。题6(3)发送方发送DATA报文DATA报文到达接收方前DATA报文到达接收方后,并与发送方窗口同步题6(3)接收方发送ACK报文ACK报文到达发送方前ACK报文到达发送方后,并与接收方窗口同步窗口同步问题小结窗口的左边沿是由接收方发送ACK报文驱动变化的;接收方发送ACK报文后其接收窗口左边沿向右滑动;发送方在收到ACK报文后其发送窗口左边沿也随之向右滑动。窗口的指针是由发送方发送DATA报文驱动变化的;发送方发送DATA报文后其发送窗口指针向右滑动;接收方在收到DATA报文后其接收窗口指针也随之向右滑动。接收窗口的右边沿与接收缓存、接收方确认数据都有关系;在接收缓存足够的情况下,接收方确认数据,其接收窗口左边沿向右滑动,接收窗口右边沿也向右滑动,满足接收窗口的最大值65535;在接收缓存不够的情况下,无法满足接收窗口的最大值65535,则接收方确认数据,其接收窗口左边沿向右滑动,而接收窗口右边沿停滞不动,对外表现为接收方向发送方发送ACK报文时其通告的接收窗口越来越小。发送窗口的右边沿与发送方的拥塞窗口cwnd、接收方通告的接收窗口rwnd有关在任何时候,其值=发送窗口左边沿+min[cwnd,rwnd]。题6(2)要点主要是接收方窗口与缓存的关系题6(2)图例演示1/2-接收方

题6(2)图例演示2/2-接收方题6(2)参考答案如果接收缓存大于65535,在接收窗口值持续减少前接收端已开始休眠。如果接收缓存小于等于65535,在接收窗口值持续减少时接收端开始休眠。能够明显看出接收端开始休眠是X1号报文因为其后通告的接收窗口越来越小,(左边沿在不断向右移动,而右边沿不再移动),接收方在窗口范围外的可用缓存已被使用完,表明接收方在窗口范围外的可用缓存被已确认的数据占据着,应用程序进程没有再从缓存中读取这些已确认的数据,即表明其已开始休眠。题6(4)要点窗口收缩定义:右边沿向左移动窗口合拢定义:左边沿向右边沿靠近窗口张开定义:右边沿向右移动接6(2)图例演示,继续题6(4)参考答案窗口收缩一般不发生窗口合拢发生在接收窗口持续减小期间窗口张开发生在休眠结束后通告大窗口时题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题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。题8(2)答案ssthread不变=65535,每收到一个ACK报文,snd_cwnd加1。因为snd_cwnd*1460<ssthread,处于慢启动阶段,每收到一个ACK,snd_cwnd至多增加1个MSS的数值(即随RTT时间而指数增加)。题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报文。题8(2)—验证规律题定量分析归纳实验现象(一般情况下)发送方:首次发送2个DATA报文,其后维持在两个确认报文之间发送3个DATA报文。接收方:接收方每收到2个DATA报文,发送1个ACK报文对其进行确认。规律分析--初始初始:snd_wnd=min[snd_cwnd,rcv_wnd]=2*MSS;snd&noAck_data=0*MSS;useable_wnd=2*MSS注:假设每个发送报文大小都是1个MSS规律分析--第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规律分析--第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规律分析--第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规律分析--第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……规律归纳规律分析--第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……题8(3)要点与答案有超时报文,网络拥塞,实施拥塞处理X号报文,ssthread=max(cwnd/2,2*MSS)(RFC2001);cwnd=1;超时,表明网络有拥塞。在正常传输后,将依次处于慢启动、拥塞避免阶段其后的第一阶段:ssthread不变,cwnd值每收到一个ACK报文就加1。因为snd_cwnd*1460<=ssthread,慢启动阶段。其后的第二阶段:ssthread不变,cwnd值每经过一个RTT增加一个SMSS*SMSS/cwnd的大小。因为snd_cwnd*1460>ssthread,拥塞避免阶段。题9要点正常传输期间:RTO计算算法超时重传期间:Karn算法RTO=2*RTO_old题9(1)参考答案两种速率下重传时间有很大差别,因为RTO值是根据RTT(平均往返时间)值而加权计算得出;而RTT值又是根据ACK报文到达而测量出的往返时间样本而加权计算得出;由于速率的不同,两种速率下在DATA报文发出到ACK报文到达的时间差会有很大的差距。三次重传时间呈加倍关系,Karn算法起作用。题9(2)参考答案分别稳定在RTO1和RTO2。发生超时时,RTT值不变,因为RTT的变化主要依据ACK的报文到达才能得到往返时间样本进而更新RTT值,而RTO在每次重传发生时则加倍。原因是Karn算法起作用。继续正常报文传输时,RTT随着ACK报文的到来一度变大,因为超时期间没有收到任何ACK报文,新到达的ACK报文使得往返时间样本急剧增大,按平均往返时间计算算法更新RTT值;RTO值不再加倍但还是很大,因为超时结束,Karn算法不再起作用,又开始按照RTT的值进行更新计算(依据重传超时时间计算算法计算),而此时RTT值很大。题9附注按RFC1122规定将RTT和RTO的初始值设置为:RTT=0秒,RTO=3秒。由于Linux这些时间值以10毫秒为单位,实验数据文件中表现为SRTT=0;RTO=300;且RTO的最小值为200毫秒,最大值为120秒。实验数据文件中表现为20和12000;Linux中RTT最小80毫秒,实验数据文件中表现为8题10要点快重传算法针对收到三个重复ACK报文后,即重传重复ACK序号的那条DATA报文快恢复算法针对收到三个重复ACK报文后,对拥塞窗口的修正题10(1)参考答案X5、X6、X7号报文。不等报文的超时,立即进行报文的重传,收到三个重复确认,认为报文丢失,快重传。题10(2)参考答案在第三个重复ACK到达时,ssthread=max(cwnd/2,2*MSS)(RFC2001);cwnd=min[cwnd,已发送的报文数–已到达接收方但未正式确认的报文+重传的报文数+3]。收到三个重复确认,快恢复算法。RTT和RTO无变化,因为往返时间的测量是根据ACK报文的到达情况来计算的,而此时网络并未真正的拥塞,只是偶尔报文传输出错,因此RTT的测量不受影响,从而RTO没有变化。题10(3)参考答案有。ssthread不变,cwnd=min[cwnd,已发送的报文数–已到达接收方但未正式确认的报文+重传的报文数+3]。在没有重复ACK报文后即开始接收正常ACK报文,ssthread不变,cwnd值每经过一个RTT增加一个SMSS*SMSS/cwnd的大小。因为snd_cwnd*1460>ssthread,拥塞避免阶段。题11(1)参考答案启用Nagle算法的传输过程数据长度一般都以MSS长度发送;而禁用Nagle算法的传输过程数据长度一般都以“每次写入套接字的字节数”长度发送;Nagle算法的原理和作用:发送方在连接建立开始发送数据时,立即按序发送缓存中的数据(必须<=1*MSS),后续数据的发送由数据是否足以填满发送缓存的一半或一个MSS长度决定。而不启用Nagle算法时发送方则是有数据就发。题11(2)参考答案通告的第一个窗口大小是X(>=1*MSS);接收端的推迟确认技术:

温馨提示

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

评论

0/150

提交评论