【计网实验】Lab Exercise – TCP

Lab Exercise – TCP

实验要求:

查看TCP (Transmission Control Protocol)的详细信息。TCP是Internet上使用的主要传输层协议。

实验操作:

一、TCP报文捕获

  1. 找到一个中等大小的资源的URL,使用的是HTTP,而不是HTTPS下载该资源。确保它是一个单一的资源,而不是一个包含许多内联资源的web页面(例如a.html)。比如 http://sigcomm.org/paper.pdf(但是这个要cookie,不然连不上)
    我用的是http://mapp.alicdn.com/1635733544972TiyMc7FEtdYZzhq.jpg

  2. 在命令行输入 wget http://mapp.alicdn.com/1635733544972TiyMc7FEtdYZzhq.jpg,结果如下,表示能成功连接。
    在这里插入图片描述

  3. 打开wireshark,用tcp and host xx.xx.xx进行过滤xx.xx.xx是获取资源的网址。如,我的是.

  4. 再次在命令重复第2步。然后wireshark里面可以看到捕获的TCP数据报如下。
    在这里插入图片描述

二、TCP结构

在跟踪中间的任何地方选择一个协议列为TCP的长包。在中间面板中展开TCP协议部分(通过使用“+”扩展器或图标)。除HTTP响应的第一个HTTP GET包和最后一个HTTP响应包外,所有的报文都应该被列为TCP。选择一个长数据包可以确保我们看到的是从服务器到你的计算机的下载数据包。查看协议层,在TCP块之前看到一个IP块。这是因为TCP段是在IP中携带的。下表是TCP部分的各字段解释。

源端口和目的端口source port& destination port这是TCP在IP地址之外添加的地址。源端口很可能是80,因为数据包是由web服务器发送的,而标准web服务器端口是80
序号sequence number它给出了第一个有效负载字节在字节流中的位置。
确认号acknowledgement它告诉反向字节流中最后接收到的位置。也是期望收到下一个报文段的第一个数据字节的序号。
首部长度header length给出了TCP报头的长度
标记flags有多个标志位,包括【紧急位、确认位、推送位、复位位、同步位、终止位】
校验和checksum校验范围是首部和数据两部分
(可能有)负载TCPplayload携带被传输的字节

使用Wireshark可以观察到的TCP报头字段的位置和字节大小。不要分解Flags字段,或任何Options字段,如果你发现某些TCP字段共享一个字节,那么将它们分组。画出TCP报头结构。
图源网络

三、TCP连接的建立和释放

三次握手:
为了查看到TCP连接建立的时候的数据报,使用tcp.flags.syn==1进行过滤。结构如下:
在这里插入图片描述
要求:在你的跟踪中画一个三次握手的时间序列图。

在建立连接的过程中,TCP SYN报文通过Options在两端协商参数。每一端都通过在SYN中包含适当的选项向另一端描述其功能,通常两端都必须支持在此期间使用的行为。

问题:在SYN数据包上,TCP包含了哪些选项字段以供跟踪。
答:ACK字段和SYN字段。

连接释放:
最后,在下载完成后关闭TCP连接。这通常在FIN (Finalize)环节中完成。每一方向另一方发送FIN,并确认收到FIN;这类似于三次握手。或者,当一端发送RST (Reset)时,连接可能突然断开。此报文不需要被对方确认。
要求:和前面一样,画出连接释放的时序图。

四、TCP数据传输

查看数据传输情况:
在wireshark里面点击统计-IO图标。弹出界面如下
在这里插入图片描述

接下来依次进行以下操作

  1. 间隔选择10毫秒
  2. Y轴单位改为Bits
  3. Display Filter:填入tcp.srcport==80
  4. 点击“+”,在新的条目的Display Filter里面填入tcp.dstport==80
    最终得到两条线,红色的表示下载速率,蓝色的表示上传速率,如下所示:

在这里插入图片描述

回答问题:

  1. 当TCP连接正常的时候,下载方向的粗略数据速率(以包/秒或位/秒为单位)是多少?
    答:大约是2.5Mbps

  2. 内容占下载率的百分比是多少?展示你的计算。
    答:使用tcp.srcport==80 进行过滤,找到任意一个中间位置的大型包。可以看到,总的数据量为1514B=12112bits。而TCP携带的内容占1460B。所以内容占下载率的96.43%。

在这里插入图片描述

  1. 由于ACK报文,上传方向的粗略速率(比特/秒)是多少?
    答:缩放坐标轴后可以看到,速率大约为81.7Kbps。

  2. 如果最近从服务器接收到的TCP段的序列号是X,那么下一个传输的TCP段携带的ACK号是什么?
    答:下一个报文ACK号是X加上这个报文的长度的。

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值