还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验6传输层实验传输层实验发送方初始序号sequencenumber记录表,请填写:
1、根据
2.6中步骤3回答TCP的连接和建立采用的是三次握手方式PCA是二动打开方CPCB是被动打开方S先点击发送再点击接收,会出现什么问题?为什么?答先点击发送再点击接受会导致连接失败,而且如果没有应用进程被动打开,那么主动打开的应用进程无法建立连接因为C/S模式下,若Server没有启动,那么Client就连接不上服务器和客户端的结合需要看TCP状态机,必须存在被动打开方才能够连接
2、根据
2.6中步骤5结合预习报告,分析TCP连接的建立过程,根据TCP建立过程的三个报文,先填写下表
3、根据
2.6中步骤6回答TCP连接建立时,其报文首部与其它TCP报文不同,有一个Option”字段,它的作用是什么,值为多少?结合IEEE
802.3协议规定的以太网最大帧长度分析此数据是怎样得出的答Option字段的值中包含一个最大报文段长度MaximumsegmentsizeMSS取C/S两方承载的MSS中取较小的值MSS应用于数据传送阶段,在本实验中得到的MSS值是1460字节前三个重复ACK的报文序号
422、
426、
428.在第三个重复ACK报文到达后,发送方立即进行报文重传因为发送端连续收到3个重复的ACK报文时,即可认为某一段报文丢失并且网络仍能够进行正常报文传输,因此不必等待那个报文的定时器超时,而直接重传那个认为是丢失的报文段在前三个重复的ACK报文到达期间,ssthresh和cwnd有何变化?RTT和RTO有何变化?为什么?答第三个重复的ACK报文到达时,ssthresh=maxcwnd/22=cwnd/2=18/2=9;cwnd=mincwnd已发送的报文数一已接收但未确认的报文数+重传的报文数+3=17RTT和RTO没有变化,因为重复的ACK确认和重传的报文不会影响RTT的值,且没有超时重传因此RTO也不变在第三个重复ACK报文后是否还有重复ACK报文到达?随之直至传输结束,ssthresh和cwnd有何变化,呈何种规律?为什么有此规律?答还有重复ACK报文到达接收重复ACK报文期间,ssthresh不变,cwnd=mincwnd已发送的报文数一已接收但未确认的报文数+重传的报文数+
3.没有重复ACK报文后,ssthresh不变,将cwnd缩小到ssthresh并使用拥塞避免算法,发送方每收到cwnd个非重复的ACK报文,cwnd加
1.
12.根据364中“糊涂窗口综合症和Nagle算法分析”步骤4回答分别分析两次TCP传输过程中数据发送部分的前面几条报文,结合TCPTest程序参数设置,分析其数据长度的变化,并解释为什么?答启用Nagle算法,除了带PUSH标志的报文外其他报文的数据长度都为MSS1460;因为发送缓存被设置为2000每次写入字节数为800会判断当前数据是否有发送缓存一半1000或一个MSS1460因此写入第一个800后不会发送,写入第二个800后共1600则发送一个MSSQ460长度报文,还剩140再写入第三个800后共940不够缓存一半1000继续写入第四个800共1740再发送一个MSS1460长度报文,还剩
280.不启用Nagle算法,数据长度为800—有数据写入缓存就发送在两次TCP传输过程中,窗口通告为0后,窗口张开时通告的第一个窗口大小分别是多少?为什么?答:54[TCPKeep-Alive]547551234[ACK]Seq=1220025220Ack=1229173234Win=5840Len=060[TCPZeroWindow]1234~54755[ACK]Seq=1229173234Ack=1220025221Win=0Len=060[[TCPWindowUpdate]123454755[ACK]Seq=1229173234Ack=1220025221Win=1460Len=
0754、药花丁:上记…丁运口;…而kjMgg二逍茄5近芨工晨记连否行§5范・证ee访6…屋岸亍而启用Nagle算法,窗口张开时通告的第一个窗口大小为1460;因为会采用推迟确认技术,接收缓存的可用空间至少达到总空间的一半50000或一个MSS1460才会进行窗口通告54[TCPKeep-Alive]57240今1234[ACK]Seq=2497709695Ack=2484049329Win=5840Len=060[TCPZeroWindow]1234今57240[ACK]Seq=2484049329Ack=2497709696Win=0Len=0601TCPWindowUpdate]1234♦57240[ACK]Seq=2484049329Ack=2497709696Win=800Len=
060、讦而…诺苟…访虎屋无屋;.芸535…『近方…藁石工匾45353西…A”工3方为3治鼠冠E356m£3不启用Nagle算法,窗口张开时通告的第一个窗口大小为800;有小窗口则立即通告通过这两次TCP传输实验,比较分析Nagle算法的作用答Nagle算法能有效避免糊涂窗口综合征的现象发送端通过推迟发送缓存中的数据,避免小数据的不断发送;接收端通过延迟确认和窗口通告,同样能避免发送端发送小数据OIEEE
802.3协议规定的以太网最大帧长度为1518字节MSS=以太网最大帧长度一以太网帧头和帧尾18一IP首部固定长度20一TCP首部固定长度20=1518-18-20-20=
14604、根据
2.6中步骤7结合预习报告,分析TCP连接的释放过程,选择TCP连接撤消的四个报文,将报文信息填入下表
5、根据
2.6中步骤8分析TCP数据传送阶段的前8个报文,将报文信息填入下表请写出TCP数据部分长度的计算公式数据传送阶段第一个报文的序号字段值是否等于连接建立时第三个报文的序号?答:TCP数据部分长度=IP总长度字段值一IP首部长度字段值x4—TCP首部长度字段值x4等于
6.根据中“滑动窗口机制和窗口侦查机制分析”步骤6回答分析数据发送部分的前几条报文,描述发送方发送窗口的变化,并解释为什么?答接收方每一个ack中的窗口大小字段每次递增2920即rwnd每次递增2920因为数据发送部分前几条报文时处于慢启动状态,每收到一个ack发送方cwnd就会加1发送窗口uminlcwndrwnd]=cwnd因此发送窗口的大小随着cwnd增长指出从哪个序号的报文能够看出接收端开始休眠,并解释理由答序号为173的报文接收端开始休眠可以看到从序号173之后的报文,右边沿不再移动,表明接收方在窗口范围外的可用缓存被已确认的数据占据着,说明接收端的应用程序进程已经不再从缓存中读取数据了,即表明其已开始休眠
(3)分析文件send2-组座号-tcpsndwnddata.txt选中三次握手连接建立后的前4条报文记录(3条DATA报文、1条ACK报文,序号为
4、
5、
6、7)记下发送方发送窗口的相关值(rcv_wndsnd_wnd_leftsnd_wnd_pointsnd_wnd_left+cwndsnd_wnd_left+rcv_wnd(snd_wnd_point-left))o按下表分析计算接收方(及发送方)的窗口的相关值4号报文sender--data--receiver5号报文sender——data-™receiver6号报文sender——data-receiver7号报文receiver--ack--sender4根据文件send2-组座号-tcpsndwnddata.txt中发送方的发送窗口相关值进行分析,接收方开始休眠后,描述接收窗口的变化,指出窗口收缩、窗口合拢、窗口张开对应的开始报文序号,并记下send2-组座号-tcpsndwnddata.txt文件中的对应报文的数值,己录pkt_seqnopkt_type答o接收方开始休眠后,接收窗口的右边沿不再移动,而左边沿和指针不断右移,导致窗口合拢此时接收窗口不断变小,直至成为零窗口接收方结束休眠后,应用程序进程重新开始读取缓存数据,接收窗口的右边沿向右移动,导致窗口张开,此时接收窗口重新变大,发送方重新开始发送数据【窗口收缩】未出现【窗口合拢】pkt_seqnopkt_typeRorS_seqnosnd_ssthreshsnd_cwndrcv_wndsnd_wnd_leftsnd_wnd_pointersnd_wnd_left+cwndsnd_wnd_left+rcv_wndsnd_wnd_pointer-left【窗口张开】167rcv_ack5221474836473173003268294333268294333268746933268367330pkt_seqnopkt_typeRorS_seqnosnd_ssthreshsndcwnd180rcv_ack59214748364731rcv_wnd1460snd_wnd_left326838193snd_wnd_pointer326838193snd_wnd_left+cwnd326883453snd_wnd_left+rcv_wnd326839653snd_wnd_pointer-left
0.根据361中“滑动窗口机制和窗口侦查机制分析”步骤7回答写出窗口侦查开始的报文序号,窗口侦查报文数据长度、窗口侦查报文发送的时间规律答:开始的报文序号为630报文数据长度为0时间规律相邻的窗口侦查报文发送时间间隔翻倍增加.根据中“慢启动、拥塞避免及拥塞处理和超时与重传机制分析”步骤9回答选中第一条发送数据的报文记录,记下其ssthresh和cwnd值是多少?为何为此值?按发送窗口的计算公式计算出当前的发送窗口snd_wnd值并记下此时的发送窗口左边沿snd_wnd_left值并计算出此时的发送窗口右边沿答:ssthresh=2147483647cwnd=3;此时发送端未发现网络拥塞,因此ssthresh未被设置慢启动开始时,cwnd被设置为2而在建立TCP连接时收到了一个ACK报文,因此cwnd就会加1变成3snd_wnd=minsnd_cwndrcv_wnd=min3xl4605840=4380snd_wnd_left=3150675337sndwndright=sndwndleft+sndwnd=3150679717在随后的发送数据报文中,ssthresh和cwnd值有何变化,呈何种规律?为什么呈此种规律?发送的报文是否可以验证这一规律?答:Ssthresh一直不变,因为此时发送端未发现网络拥塞,因此ssthresh未被设置此时处于慢启动状态,cwnd每收到一个ACK报文就会加L一直到36后就不再增加发送的报文可以验证这一规律指出ssthresh和cwnd值有突然变化的报文序号,为何会有这种变化?此后直至结束的ssthresh和cwnd值有何变化,呈何种规律?为什么?答ssthresh和cwnd值有突然变化的报文序号为3874;因为路由器的eO/O端口断开,发送报文时设置的定时器超时,即发送端没有按时收到确认报文,发送端认为网络拥塞,ssthresh=maxcwnd/22=18并设置拥塞窗口cwnd=1当cwndssthresh18时使用拥塞避免算法每收到cwnd个非重复的ACK报文.cwnd就会加1再一直增加到36后就不再增加
9.根据中“慢启动、拥塞避免及拥塞处理和超时与重传机制分析”步骤10回答对Wireshark截获的报文进行分析,分别记下TCP传输过程中发送第一条重传报文的序号,并请用截获报文的时间字段分别计算出在两种转发速率下第一条重传报文和其对应的原始发送报文的时间差、第二条重传报文和其对应的原始发送报文的时间差分析同种速率下和两种转发速率下两次重传的时间差,结合题
(2)对此现象做出解释答RTT=axRTT_old+1—axRTT_new正常传输期间RTO=pxRTT超时重传期间RTO=YxRTO.old同种速率下,每次重传的时间差为上一次的2倍;两种转发速率下重传的时间差取决于各自的平均往返时延RTT转发速率越高,平均往返时延越小,则重传时间差也越小对send3-组座号-tcprtodata.txt和send4-组座号-tcprtodata.txt文件进行分析在正常传输时,两种速率下的TCP连接的RTO时间分别稳定在多少?在发生报文超时重传时,RTT和RTO值有何变化?特别是RTO值有何特定变化规律?为什么?继续正常报文传输时RTT和RTO值又有何变化?为什么答10Mbps传输速率下,RTO时间稳定在230ms;80Kbps传输速率下,RTO时间稳定在4163mso发生报文超时重传时,RTT不变,RTO双倍增大;因为RTO=yxRTO_old(Y=2)而在超时重传时没有收到ACK报文,因此RTT不变继续正常报文传输时RTT和RTO值会先变小然后重新趋于稳定;因为在超时重传期间,接收方把缓冲的数据给处理完了,刚开始能跟刚建立TCP连接时一样快速回复ACK报文课外查阅相关资料,对RTT和RTO值的变化做出定量的计算和分析建议阅读《用TCP/IP进行网络互联,第一卷》(第四版)中译本,[美]DouglasE.Comer林瑶等译,电子工业出版社;其第13章中对RTT、RTO等的计算有比较详细的阐述,Linux下对此的实现相同
10.根据363中步骤1继续上一节的实验,配置路由器,取消对接口的速率限制请写出命令[Router-EthernetO/O]undoqoslroutbound[Router-EthernetO/1]undoqoslroutbound
11.根据中“快重传和快恢复算法分析”步骤6回答
(1)请写出前三个重复ACK的报文序号在第三个重复ACK报文到达后,发送报文发生什么变化?为什么?答:实验名称实验班号学号姓名发送方初始序号TCP协议基本分析周五上午ZY1906812李泽霖4272716823滑动窗口机制和窗口侦查机制分析周五上午ZY1906812李泽霖326667532慢启动、拥塞避免及拥塞处理和超时重传机制实验周五上午ZY1906812李泽霖3150675336468841012快重传和快恢复实验周五上午ZY1906812李泽霖1945360164糊涂窗口综合症和Nagle算法分析实验周五上午ZY1906812李泽霖12198236603988224377字段名称第一条报文第二条报文第三条报文报文序号345SequenceNumber427271682342767888424272716824AcknowledgementNumber042727168244276788843Ack011Syn110字段名称笫一条报文笫二条报文第三条报文第四条报文报文序号529533537538SequenceNumber4273072164427678884342767888434273072735AcknowledgementNumber4276788843427307273542730727354276788844Ack1111Fin1010报文序号报文种类发送/确认序号字段确认号字段数据长度被确认报文序号窗口6发送42727168244276788843140058407发送42727182244276788843146058408发送42727196844276788843146058409确认4276788843427271822406840010发送427272114442767888431460584011发送427272260442767888431460584012确认42767888434272719684071168013发送4272724064427678884314605840ShowTCPsenderssomevalucesaboutsndwnd:pkt_seqnopkt_typeRorS_seqnosnd_ssthreshsnd_cwndrcv_wndsnd_wnd_leftsnd_wnd_pointer$nd_wnd_left+cwndsnd_wnd_left+rcv_wndsnd_wnd_pointer-left1snd\on_syn121474836472032666753232666753332667045232666753212rcv_con_syn_ack121474836472584032666753332666753332667045332667337303snd_con_ack2214748364735846326667533326667533326671913326673373e4snd_data321474836473584832666753332666893332667191332667337314005snd^data4214748364735846326667533326670393326671913326673373286G6snd_data52147483647358463266675333266718533266719133266733734320rcv_ack22147483647484003266689333266718533266747733266773332920rcv_wndsnd_wnd_leftsnd_wnd_pointersnd_wnd_left+cwnd和snd_wnd_left+rcv_wndsnd_wnd_point-left发送方发出报文58403266675333266689333266719133266733731400发送窗口右边沿=minsnd_wnd_left+cwndsnd_wnd_left+rcv_wnd=326671913通告的接收窗口接收窗口左边沿接收窗口指针接收窗口右边沿在接收缓存中的数据量(即未确认的数据)接收方接至ljDATA前58403266675333266675333266733730接收方接至UDATA后58403266675333266689333266733731400rcv_wndsnd_wnd_leftsnd_wnd_pointersnd_wnd_left+cwnd和snd_wnd_left+rcv_wndsnd_wnd_point-left发送方发出报文58403266675333266703933266719133266733732860发送窗口右边沿=minsnd_wnd_left+cwndsnd_wnd_left+rcv_wnd=326671913通告的接收窗口接收窗口左边沿接收窗口指针接收窗口右边沿在接收缓存中的数据量(即未确认的数据)接收方接至UDATA前58403266675333266689333266733731400接收方接至IjDATA后58403266675333266703933266733732860rcv_wndsnd_wnd_leftsnd_wnd_pointersnd_wnd_left+cwnd和snd_wnd_left+rcv_wndsnd_wnd_point-left发送方发出报文58403266675333266718533266719133266733734320发送窗口右边沿=minsnd_wnd_left+cwndsnd_wnd_left+rcv_wnd=326671913通告的接收窗口接收窗口左边沿接收窗口指针接收窗口右边沿在接收缓存中的数据量(即未确认的数据)接收方接至UDATA前58403266675333266703933266733732860接收方接至UDATA后58403266675333266718533266733734320通告的接收窗口接收窗口左边沿接收窗口指针接收窗口右边沿在接收缓存中的数据量即未确认的数据接收方发出ACK84003266689333266718533266773332920rcv_wndsnd_wnd_leftsnd_wnd_pointersnd_wnd_left-i-cwnd和snd_wnd_left+rcv_wndsnd_wnd_point-left发送方接到ACK后84003266689333266718533266747733266773332920发送窗口右边沿=minsnd_wnd_left+cwndsnd_wnd_left+rcv_wnd=326674773发送方接至ACK前58403266675333266718533266719133266733734320发送窗口右边沿=minsnd_wnd_left+cwndsnd_wnd_left+rcv_wnd=
326671913629126.141164FCPTCP60[TCPZerowindow]39102・1234[ACK]Seq-326836733Ack-322354901Win«S84eLen«146e1234-39102[ACK]Seq=322354901Ack=326838193Win=0Len=
0631126.366673TCP69[TCPZerowindow]1234-39192[ACK]Seq-322354991Ack-326838193Win-0Len-
0633126.813263TCP54[TCPKeep-Alive]39102-1234ACK]Seq=326838192Ack=322354901Win=5840Len=
0634126.814155TCP60[TCPZerowindow]1234-39102[ACK]Seq=322354901Ack=326838193Win=0Len=
0637127.705757TCP54[TCPKeep-Alive]39102-1234[ACK]Seq326838192Ack-322354991Win-5840Len0ShowTCPsenderssomevalucesaboutsndwnd:pkt_seqnopkt_typeRorS_seqnosnd_ssthreshsnd_cwndrcv_wnd1snd_con_syn1-21474836472一0一2rcv_con_syn_ack12147483647258403snd_con_ack22147483647358404snd_data3214748364735840pkt_seqnopkt_typeRorS_seqnosnd_ssthreshsnd_cwndrcv_wnd1一snd_con_syn1一21474836472一0一2rcv_con_syn_ack1■2147483647258403snd_con_ack22147483647358404snd_data32147483647358405snd_data42147483647358406snd_data52147483647358407rcv_ack22147483647484008snd_data62147483647484009snd_data721474836474840010rcv_ack3214748364751168011snd-data8214748364751168012snd_data9214748364751168013rcv_ack4214748364761460014snd_data10214748364761460015snd_data11214748364761460016rcv_ack5214748364771752017snd_data12214748364771752018snd_data13214748364771752019rcv_ack6214748364782044020snd_data14214748364782044021snd_data15214748364782044022revack721474836479233603872rcv_ack1297214748364736467203873snd_data2576214748364736467203874snd_data2577214748364736467203874timeout2577181467203874timeout2577181467203874timeout2577181467203892snd_data2589187467203893rcv_ack1304188467203894snd_data2590188467203895snd_data2591188467203896rcv_ack1305189467203897snd_data2592189467203898snd_data2593189467203899rcv_ack13061810467203900snd_data25941810467203901snd_data25951810467203902rcv_ack13071811467203903snd_data25961811467203904snd_data25971811467203905rcv_ack13081812467203906snd_data25981812467203907snd_data25991812467203908rcv_ack13091813467203909snd_data26001813467203910snd_data26011813467203911rcv_ack1310181446720当cwndssthresh180^t使用慢启动算法,每收到一个ACKcwnd就会加
1.3922snd_data26091817467203923rcv-ack13141818467203924snd_data26101818467203925snd_data26111818467203926rcv_ack13151819467203927snd_data26121819467203928snd_data26131819467203929snd_data26141819467203930rcv_ack13161819467203931snd_data26151819467203932snd_data26161819467203933rcv_ack13171819467203934snd_data26171819467203935snd_data26181819467203936rcv_ack13181819467203937snd_data26191819467203938snd_data26201819467203939rcv_ack13191819467203940snd_data26211819467203941snd_data26221819467203942rcv_ack13201819467203943snd_data26231819467203944snd_data26241819467203945rcv_ack1321181946720第一个重传时间差第二个重传时间差第三个重传时间差10Mbps
0.
2293850.
4600590.91999780Kbps
4.
1644448.
32759516.
652668422178.
264254423178.
264270424178.26432842S
178.264382;192JTCPTCPTCP661234—42585[ACK]Seq-1953212580Ack-1945385785Win-46729len«0SLE-1945386765SRE-1945388225151442585-1234[ACK]Seq=194Me8665Ack=195321258eWin«5840ien«146«1S144258s-1234[ACK]Seq^l94S410125Ack=1953212580Win=5840Len=1460151442585«1234[ACK]Seq-194S411S8SAck1953212S8eWin-S840Len-
1460426178.
2644341921682.2192・168・
1.2TCP66[TCPDupACK422*1]1234♦42585[ACK]Seq-1953212580Ack94538578万Win・46720SLE・194S386765SRE・
1945389685427178.264446TCP151442585-1234[ACK]Seq-194S413e4SAck-19S321258eWin-584eLen«
1466428178.264499TCP66[TCPDupACK422»2]1234-42S85[ACK]Seq=19S3212580Ack=1945385785Win=46720len=0SLE=1945386765SRE=194S39114S
429178.264S11TCPieM[TCPFastRetransaission]42S8S-»1234[WHACK1945385785Ack-1953212S80Win-S40l.n・980。