TCP 计算机网络实验报告.docx
- 文档编号:28744171
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:29
- 大小:1.85MB
TCP 计算机网络实验报告.docx
《TCP 计算机网络实验报告.docx》由会员分享,可在线阅读,更多相关《TCP 计算机网络实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
TCP计算机网络实验报告
陕西师范大学 计算机网络 实验报告
实验五探索TCP协议
一、实验目的
1.熟悉并掌握wireshark的操作。
2.通过实验分析并掌握TCP是如何进行数据传输的,及其如何实现拥塞控制、流量控制等
二、实验器材
1.PC机电脑一台。
2.下载wireshark软件并安装
三、实验内容
通过实验分析并掌握TCP是如何进行数据传输的,及其如何实现拥塞控制、流量控制等
四、问题回答
1.CapturingabulkTCPtransferfromyourcomputertoaremote
Server
2.Afirstlookatthecapturedtrace
1.WhatistheIPaddressandTCPportnumberusedbytheclientcomputer(source)
thatistransferringthefiletogaia.cs.umass.edu?
Toanswerthisquestion,it’s
probablyeasiesttoselectanHTTPmessageandexplorethedetailsoftheTCP
packetusedtocarrythisHTTPmessage,usingthe“detailsoftheselectedpacket
headerwindow”(refertoFigure2inthe“GettingStartedwithWireshark”Labif
you’reuncertainabouttheWiresharkwindows).
答:
clientcomputer(source):
IPaddress:
192.168.1.102
TCPportnumber:
1161
2.WhatistheIPaddressofgaia.cs.umass.edu?
Onwhatportnumberisitsending
andreceivingTCPsegmentsforthisconnection?
答:
theIPaddressofgaia.cs.umass.edu:
IPaddress:
128.119.245.12
portnumber:
80
3.Ifyouhavebeenabletocreateyourowntrace,answerthefollowingquestion:
WhatistheIPaddressandTCPportnumberusedbyyourclientcomputer(source)totransferthefiletogaia.cs.umass.edu?
答:
Myclientcomputer:
IPaddress:
10.2.136.30
3.TCPBasics
Answerthefollowingquestions;
4.WhatisthesequencenumberoftheTCPSYNsegmentthatisusedtoinitiatethe
TCPconnectionbetweentheclientcomputerandgaia.cs.umass.edu?
Whatisit
inthesegmentthatidentifiesthesegmentasaSYNsegment?
答:
sequencenumber:
0;syn被设置为1说明是syn段。
5.WhatisthesequencenumberoftheSYNACKsegmentsentbygaia.cs.umass.edu
totheclientcomputerinreplytotheSYN?
WhatisthevalueoftheACKnowledgementfieldintheSYNACKsegment?
Howdidgaia.cs.umass.edudeterminethatvalue?
WhatisitinthesegmentthatidentifiesthesegmentasaSYNACKsegment?
答:
ThesequencenumberoftheSYNACKsegmentsentbygaia.cs.umass.eduis:
0;
SYNACKsegment中ACKnowledgement的值为1;
ACKnowledgementnumber的值为SYN消息中sequencenumber加上1所得;
SYN和Acknowledgementf都置为1说明这是一个SYNACKsegment.
6.WhatisthesequencenumberoftheTCPsegmentcontainingtheHTTPPOST
command?
NotethatinordertofindthePOSTcommand,you’llneedtodiginto
thepacketcontentfieldatthebottomoftheWiresharkwindow,lookingfora
segmentwitha“POST”withinitsDATAfield.
答:
第四号报文段是包含HTTPPOST命令的TCPsegment.且报文段的序列号为1.
7.ConsidertheTCPsegmentcontainingtheHTTPPOSTasthefirstsegmentinthe
TCPconnection.WhatarethesequencenumbersofthefirstsixsegmentsintheTCPconnection(includingthesegmentcontainingtheHTTPPOST)?
Atwhattimewaseachsegmentsent?
WhenwastheACKforeachsegmentreceived?
GiventhedifferencebetweenwheneachTCPsegmentwassent,andwhenitsacknowledgementwasreceived,whatistheRTTvalueforeachofthesixsegments?
WhatistheEstimatedRTTvalue(seepage249intext)afterthereceiptofeachACK?
AssumethatthevalueoftheEstimatedRTTisequaltothemeasuredRTTforthefirstsegment,andtheniscomputedusingtheEstimatedRTTequationonpage249forallsubsequentsegments.Note:
WiresharkhasanicefeaturethatallowsyoutoplottheRTTforeachoftheTCPsegmentssent.SelectaTCPsegmentinthe“listingofcapturedpackets”windowthatisbeingsentfromtheclienttothegaia.cs.umass.eduserver.Thenselect:
Statistics->TCPStreamGraph->RoundTripTimeGraph.
Segment1
Segment2
Segment3
Segment4
Segment5
Segment6
答:
前6个报文段为No.4,5,7,8,10,11.对应的ACK分别为No.6,9,12,14,15,16.
前6个报文段截图如下:
报文段的序列号为每个报文段的首字节加1,所以序列号为:
Segment1sequencenumber:
1
Segment2sequencenumber:
566
Segment3sequencenumber:
2026
Segment4sequencenumber:
3486
Segment5sequencenumber:
4946
Segment6sequencenumber:
6406
报文段的发送时间和相应ACK的到达时间如下表:
:
Sendtime
ACKreceivedtime
RTTseconds
Segment1
0.026477
0.053937
0.02746
Segment2
0.041737
0.077294
0.035557
Segment3
0.054026
0.124085
0.070059
Segment4
0.054690
0.169118
0.11443
Segment5
0.077405
0.217299
0.13989
Segment6
0.078157
0.267802
0.18964
EstimatedRTT=0.875*EstimatedRTT+0.125*SampleRTT
接受到报文段1之后的EstimatedRTT为:
EstimatedRTT=RTTforsegment1=0.02746second
接受到报文段2之后的EstimatedRTT为:
EstimatedRTT=0.875*0.02764+0.125*0.035557=0.0285sencond
接受到报文段3之后的EstimatedRTT为:
EstimatedRTT=0.875*0.0285+0.125*0.070059=0.0337second
接受到报文段4之后的EstimatedRTT为:
EstimatedRTT=0.875*0.0337+0.125*0.11443=0.0438second
接受到报文段5之后的EstimatedRTT为:
EstimatedRTT=0.875*0.0438+0.125*0.13989=0.0558second
接受到报文段6之后的EstimatedRTT为:
EstimatedRTT=0.875*0.0558+0.125*0.18964=0.0725second
8.WhatisthelengthofeachofthefirstsixTCPsegments?
答:
前6个段的长度分别为:
565、1460、1460、1460、1460、1460字节。
9.Whatistheminimumamountofavailablebufferspaceadvertisedatthereceived
fortheentiretrace?
Doesthelackofreceiverbufferspaceeverthrottlethe
sender?
答:
接收方通知给发送方的最低窗口大小为5840字节,即在服务器端传回的第一个ACK中的窗口大小。
接收方的窗口大小没有抑制发送方的传输速率,因为窗口大小从5840逐步增加到62780,窗口大小始终大于发送方发送的分组的容量。
10.Arethereanyretransmittedsegmentsinthetracefile?
Whatdidyoucheckfor(in
thetrace)inordertoanswerthisquestion?
答:
没有,从TCP报文段的序列号中可以得出以上结论。
从上图中的时间—序号图可以看出,从源端发往目的端的序号逐渐递增,如果这其中有重传的报文段,则其序号中应该有小于其临近的分组序号的分组,在图中未看到这样的分组,所以没有被重传的分组。
11.HowmuchdatadoesthereceivertypicallyacknowledgeinanACK?
Canyou
identifycaseswherethereceiverisACKingeveryotherreceivedsegment?
答:
右下图得,接收方在一个ACK确认的数据大小一般为1460字节。
TheAcknowledgedsequencenumberandtheAcknowledgeddata:
Acknowledgedsequencenumber
Acknowledgeddata
ACK1
566
566
ACK2
2026
1460
ACK3
3486
1460
ACK4
4946
1460
ACK5
6406
1460
ACK6
7866
1460
ACK7
9013
1147
ACK8
10473
1460
ACK9
11933
1460
ACK10
13393
1460
ACK11
14853
1460
报文段确认数据为2920bytes=1460*2bytes,即129541-12621=2920.
12.Whatisthethroughput(bytestransferredperunittime)fortheTCPconnection?
Explainhowyoucalculatedthisvalue.
答:
TCP吞吐量计算很大程度上取决于所选内容的平均时间。
作为一个普通的吞吐量计算,在这问题上,选择整个连接的时间作为平均时间段。
然后,此TCP连接的平均吞吐量为总的传输数据与总传输时间的比值。
传输的数据总量为TCP段第一个序列号(即第4段的1字节)和最后的序列号的ACK(第202段的164091个字节)之间的差值。
因此,总数据是164091-1=164090字节。
整个传输时间是第一个TCP段(即4号段0.026477秒)的时间和最后的ACK(即第202段5.455830秒)时间的差值。
因此,总传输时间是5.455830-0.026477=5.4294秒。
因此,TCP连接的吞吐量为164090/5.4294=30.222KByte/sec
13.UsetheTime-Sequence-Graph(Stevens)plottingtooltoviewthesequencenumberversustimeplotofsegmentsbeingsentfromtheclienttothegaia.cs.umass.eduserver.CanyouidentifywhereTCP’sslowstartphasebeginsandends,andwherecongestionavoidancetakesover?
CommentonwaysinwhichthemeasureddatadiffersfromtheidealizedbehaviorofTCPthatwe’vestudiedinthetext.
答:
慢启动阶段即从HTTPPOST报文段发出时开始,但是无法判断什么时候慢启动结束,拥塞避免阶段开始。
慢启动阶段和拥塞避免阶段的鉴定取决于发送方拥塞窗口的大小。
拥塞窗口的大小并不能从时间—序号图(time-sequence-graph)直接获得。
然而在一个发送方中未被确认的数据量(即inflight数据量)不会超过CongWin(拥塞窗口)和RcvWindow(接收窗口)中的最小值,即LastByteSend-LastByteAcked<=min{CongWin,RcvWindow}。
同时,在第9题中看到,接收方通告给发送方的窗口大小并没有遏制发送速率。
因此,未被确认的数据量(即inflight数据量),是由拥塞窗口决定的,所以通过发出而未被确认的数据量(即inflight数据量),我们可以估计拥塞窗口大小的下界。
下表列出了部分inflight数据量,从表中可以看出拥塞窗口的下界>=8192(因为inflightdata从未超过8192)。
但是,从第10题(即从时间—序号图)得,没有分组丢失(不管是超时,还是三个冗余ACK),因此无法判断什么时候慢启动结束,拥塞避免阶段开始。
Type
No.
Seq.
ACKedseq.
inflightdata
Data
4
1
565
Data
5
566
2025
ACK
6
566
1460
Data
7
2026
2920
Data
8
3486
4380
ACK
9
2026
2920
Data
10
4946
4380
Data
11
6406
5840
ACK
12
3486
4380
Data
13
7866
5527
ACK
14
4096
4917
ACK
15
6006
3007
ACK
16
7866
1147
ACK
17
9013
0
Data
18
9013
1460
Data
19
10473
2920
Data
20
11933
4380
Data
21
13393
5840
Data
22
14853
7300
Data
23
16313
8192
ACK
24
10473
6732
ACK
25
11933
5272
ACK
26
13393
3812
ACK
27
14853
2352
ACK
28
16313
892
ACK
29
17205
0
Data
30
17205
1460
Data
31
18665
2920
Data
32
20125
4380
Data
33
21585
5840
Data
34
23045
7300
Data
35
24505
8192
ACK
36
18665
6732
ACK
37
20125
5272
ACK
38
21585
3812
ACK
39
23045
2352
ACK
40
24505
892
ACK
41
25397
0
Data
42
25397
1460
Data
43
26857
2920
Data
44
28317
4380
Data
45
29777
5840
Data
46
31237
7300
Data
47
32697
8192
ACK
48
26857
6732
ACK
49
28317
5272
ACK
50
29777
3812
ACK
51
31237
1752
ACK
52
33589
0
Data
53
33589
6732
Data
54
35049
5272
Data
55
36509
3812
Data
56
37969
2352
Data
57
39429
892
Data
58
40889
0
ACK
59
35049
6732
ACK
60
37969
3812
ACK
61
40889
892
ACK
62
41781
0
Data
63
41781
1460
Data
64
43241
2920
Data
65
44701
4380
Data
66
46161
5840
Data
67
47621
7300
Data
68
49081
8192
ACK
69
44701
5272
ACK
70
47621
2352
ACK
71
49973
0
Data
72
49973
1460
Data
73
51433
2920
Data
74
52893
4380
Data
75
54353
5840
Data
76
55813
7300
Data
77
57273
8192
ACK
78
52893
5272
ACK
79
55813
2352
ACK
80
58165
0
Data
81
58165
1460
TCP的发送方会试探性的发送数据(即慢启动阶段),如果太多的数据使网络拥塞了,那么发送方会根据AIMD算法进行调整。
但是在实际中,TCP的行为主要依赖于应用程序怎么设计。
在这次抓包中,在发送方还可以发送数据的时候,已经没有数据可发了。
在web应用中,有些web对象比较小,在慢启动还没有结束之前,传送就结束啦,因此,传送小的web对象受到TCP慢启动阶段的影响,导致较长的延迟。
14.Answereachoftwoquestionsaboveforthetracethatyouhavegatheredwhenyoutransferredafilefromyourcomputertogaia.cs.umass.edu。
答:
慢启动阶段即从HTTPPOST报文段发出时开始,但是无法判断什么时候慢启动结束,拥塞避免阶段开始。
慢启动阶段和拥塞避免阶段的鉴定取决于发送方拥塞窗口的大小。
拥塞窗口的大小并不能从时间—序号图(time-sequence-graph)直接获得。
然而在一个发送方中未被确认的数据量(即inflight数据量)不会超过CongWin(拥塞窗口)和RcvWindow(接收窗口)中的最小值,即LastByteSend-LastByteAcked<=min{Cong
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCP 计算机网络实验报告 计算机网络 实验 报告