实验项目:
Wireshark TCP协议分析
实验目的
1)TCP使用序列号和确认号提供可靠的数据传输;
2)观察 TCP的拥塞控制算法(慢启动和拥塞避免);
3)TCP接收段实现流量控制的机制;
4)简要地观察TCP连接设置,
5)并调查计算机和服务器之间TCP的连接性能(吞吐量和往返时延)。
实验环境
- Windows 10,操作系统;
- Firefox Version 76.0.1 (64 位) 浏览器;
- Wireshark Version 3.2.3;
- 互联网可访问。
实验方案
通过Wireshark捕获浏览器访问的html类型文件。捕获从计算机到远程服务器的批量 TCP 传输。下载爱丽丝梦游记(alice.txt)并且在进行上传同时进行Wireshark抓包操作。
实验步骤
本次实验中,在开始数据包捕获时,你是否设置了捕获过滤器?如果设置了,给出你输入的捕获过滤表达式,并说明该捕获表达式的含义。
解答:设置了捕获过滤器,且捕获过滤表达式为:host gaia.cs.umass.edu ,该捕获表达式的含义为仅捕获与gaia.cs.umass.edu 计算机之间的通信(会自动根据gaia.cs.umass.edu解析其对应的IP地址)。
gaia.cs.umass.edu 的 IP 地址是什么?在哪个端口号上发送和接收此连接的TCP区段?
解答:IP: 128.119.245.12,端口号:80。
将文件传输到 gaia.cs.umass.edu 的客户端计算机(源)使用的 IP 地址和TCP 端口号是什么?
解答:IP: 128.119.245.12;端口号:54681。
将显示过滤器设置为:tcp.port==54681,仅显示当前TCP连接中交换的报文。
TCP 基础
用于在客户端计算机和 gaia.cs.umass.edu 之间启动 TCP 连接的 TCP SYN 区段的序列号是什么?将报文段标识为SYN报文段的报文段有什么功能?
ANS:根据三次握手,客户端应该发送SYN请求建立连接,我找到发送的第一个请求并且发现客户端(我的电脑)将SYN标志标1用来请求建立连接。SEQ(序列号)Sequence number (raw): 3016317277(这是个随机值)【Sequence number: 0 (relative sequence number)】,这一步也是三次握手的第一步。
gaia.cs.umass.edu发送给客户端计算机以回复SYN的SYNACK报文段的序列号是多少?SYNACK报文段中的Acknowledgment栏位的值是多少?Gaia.cs.umass.edu是如何确定此 Acknowledgment的数值的?在将报文段标识为SYNACK报文段的报文段在连线中有什么功能?
ANS:根据 SYN-ACK 响应值序列号 SEQ=客户端 SEQ+1,求得SEQ(序列号) Acknowledgment number (raw): 3016317378【Acknowledgment number: 1 (relative ack number)】。
观察到除了 SYN 标志位,ACK(Acknoledment)标志位也设1,意思服务器接收到我的连接请求并且发 SYN-ACK 确认,这是三次握手的第二步。
包含 HTTP POST 命令的TCP报文段的序列号是多少?请注意,为了找到POST命令,您需要深入了解Wireshark窗口底部的数据包内容字段,在其DATA栏位中查找带有“POST”的报文段。
ANS: 含有POST的字段的TCP值SEQ: Sequence number (raw): 563428612【Sequence number: 1 (relative sequence number) 】。
- 将包含HTTP POST 的 TCP 报文段视为 TCP 连接中的第一个报文段。
在这个TCP连线中由客户端发送给gaia.cs.umass.edu服务器的前六个TCP报文段的序列号是什么(包括包含HTTP POST的段)?
每报文段发送的时间是什么时候?
收到的每个报文段的 ACK 是什么时候?
鉴于发送每个 TCP 报文段的时间与收到确认的时间之间的差异,六个报文段中每个报文段的 RTT 值是多少?收到每个 ACK 后,EstimatedRTT 值是什么?假设第一个 EstimatedRTT 的值等于第一个报文段的测量 RTT,然后使用课本的 EstimatedRTT 公式计算所有后续报文段。
NO.1 第1个TCP数据报文段
第1个TCP数据报文段的序号No.:223
TCP序列号SEQ: Sequence number (raw):3016317278(原始值RAW),1(相对值)
Sequence number: 706 (relative sequence number)
[Time since first frame in this TCP stream: 9.392207000 seconds]
[TCP Segment Len: 1460]
[Next sequence number: 2166 (relative sequence number)]
对应的ACK报文:无
NO.2 第2个 TCP数据报文段
TCP数据报文段的序号No.:224
TCP序列号SEQ:Sequence number (raw): 3016319443
Sequence number: 2166 (relative sequence number)
发送时间Timestamp value:
[Time since first frame in this TCP stream: 9.392207000 seconds]
[TCP Segment Len: 1460]
[Next sequence number: 3626 (relative sequence number)]
对应的ACK报文:无
NO.3 第3个 TCP数据报文段
TCP数据报文段的序号No.:225
TCP序列号SEQ:Sequence number (raw): 3016320903
Sequence number: 3626 (relative sequence number)
发送时间Timestamp value:
[Time since first frame in this TCP stream: 9.392207000 seconds]
[TCP Segment Len: 1460]
[Next sequence number: 5086 (relative sequence number)]
对应的ACK报文:无
NO.4 第4个 TCP数据报文段
TCP数据报文段的序号No.:226
TCP序列号SEQ:
Sequence number (raw): 3016322363
Sequence number: 5086 (relative sequence number)
发送时间Timestamp value:
[Time since first frame in this TCP stream: 9.392207000 seconds]
[TCP Segment Len: 1460]
[Next sequence number: 6546 (relative sequence number)]
对应的ACK报文:无
NO.5 第5个 TCP数据报文段
TCP数据报文段的序号No.:227
TCP序列号SEQ:
Sequence number (raw): 3016323823
Sequence number: 6546 (relative sequence number)
发送时间Timestamp value:
[Time since first frame in this TCP stream: 9.392207000 seconds]
[TCP Segment Len: 1460]
[Next sequence number: 8006 (relative sequence number)]
对应的ACK报文:无
NO.6 第6个 TCP数据报文段
TCP数据报文段的序号No.:227
TCP序列号SEQ:
Sequence number (raw): 3016325283
Sequence number: 8006 (relative sequence number)
发送时间Timestamp value:
[Time since first frame in this TCP stream: 9.392207000 seconds]
[TCP Segment Len: 1460]
[Next sequence number: 9466 (relative sequence number)]
相关问题解答
前六个 TCP 报文段的长度是多少?
六个 TCP 报文段的长度是=1460*6=8760
对于整个跟踪包,收到的最小可用缓冲区空间量是多少? 缺少接收器缓冲区空间是否会限制发送方传送 TCP 报文段?
收到的最小可用缓冲区空间量是64240;缺少接收器缓冲区空间会限制发送方传送TCP报文段。
在跟踪文件中是否有重传的报文段? 为了回答这个问题,您检查了什么(在跟踪包中)?
无重传的报文段,所有发送的数据包的SEC都是依序加大,服务器返回的确认ACK中的ACK number没有重复的。
接收器通常在 ACK 中确认多少数据? 您是否可以识别接收方每隔一个接收到的报文段才发送确认的情况。
接收方基本每隔10个左右的发送数据包才接收到1~2个确认报文,可见接收方是采用了累积确认的方式进行报文确认。
- TCP 连接的吞吐量(每单位时间传输的字节数)是多少? 解释你如何计算这个值。
吞吐量=数据传输大小/所用时间=153026/10.301818000
= 14854.2313(Byte/秒).
[Time since first frame in this TCP stream: 10.301818000 seconds]
TCP 拥塞控制
使用时序图(Stevens)绘图工具查看从客户端发送到 gaia.cs.umass.edu 服务器的报文段的序列号与时间关系图。您能否确定TCP的慢启动阶段的开始和结束位置,以及拥塞避免接管的位置?评论测量数据与我们在文本中研究的 TCP 的理想化行为的不同之处。文章来源:https://www.toymoban.com/news/detail-846841.html
文章来源地址https://www.toymoban.com/news/detail-846841.html
到了这里,关于网络协议---TCP协议分析(基于wireshark)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!