分析TCP特性

一、实验名称 分析TCP特性

二、实验目的 

1. 掌握使用Wireshark分析俘获TCP踪迹文件的基本技能;

2. 深刻理解TCP重要的工作机理和过程。

三、实验内容和要求 

1. 本机与远程服务器的TCP踪迹文件;

 2. 熟悉TCP踪迹文件;

3. 分析TCP序号、确认号和流量控制工作过程;

4. 分析TCP拥塞控制机理。

四、实验环境

1. 运行windows 10 操作系统的PC一台。

2. PC具有以太网卡一块,通过双绞线与校园网相连;或者具有适合的踪迹文件。

3. 每台PC运行程序协议分析仪 Wireshark。

五、操作方法和实验具体步骤

1. 俘获本机与远程服务器的TCP踪迹文件

在开始研究TCP工作机制之前,需要使用Wireshark来俘获从本机到远程服务器之间的TCP踪迹文件。为此,可以从本机浏览器打开某Web网站上的网页,用HTTP协议下载包括文本文件在内的对象。与此同时,在本机上运行Wireshark俘获本机收发的TCP报文段并存入踪迹文件 tcp.cap中。为了便于比较,可以从因特网上下载现成的踪迹文件进行分析,相关URL是 http:/lgaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip。

熟悉TCP踪迹文件

打开tcp-ethereal-trace-1.pcap文件,可以看到俘获机器与gaia.cs.umass.edu的 Web 服务器之间交互的TCP和HTPP报文序列(参见图1)。

选择一个报文,观察其各层次协议间的包含关系。观察HTTP与 TCP之间关系是如何体现的?从俘获报文列表窗口右侧,可以发现发起三次握手的SYN报文,也可以发现一系列交互的HTTP报文。

回答下列问题:

与gaia.cs.umass.edu传输文件的源主机所使用IP地址和端口号是什么?

IP地址:192.168.1.102

端口号:1161

gaia.cs.umass.edu服务器所使用IP地址和端口号是什么?

IP地址:128.119.245.12

端口号:80

(3 )前6个TCP报文段的每个长度各为多长?

分别为62、62、54、619、1514、60(字节)。

76f5f3c223014877b2f34d5400273d4b.png

 

图1 分析TCP踪迹文件

分析TCP序列/应答编号和流量控制

为分析TCP序号和确认号,可以从分组列表中观察,也可以点击“Statitics/Flow Graph",出现如图2所示的本机与服务器之间的图分析结果。

观察该图,回答下列问题:

(4)用于发起与服务器TCP连接的TCP SYN报文段的序号是多少?在该报文段中标识其为SYN报文段的标志是什么?

序号是0;通过查看图表中的中间绿色行,点显示SYN的箭头,可以识别连接建立时的SYN报文;字段中SYN为1,表明了这是一个SYN报文段。

(5)服务器应答上述 TCP SYN报文段的SYN ACK 报文段的序号是什么?在该SYNACK报文段的ACK应答字段中的值是多少?服务器是怎样确定这个 ACK值的?在该报文段中标识其作为SYNACK报文段的标志是什么?

   序号是Seq=0;ACK=1,其等于SYN报文段中的值为求1,标志位是Flags=0x012

(6)接收方的ACK报文应答的数据一般为多长?如何确定接收方是对哪个报文段进行应答的?

    一般为1460bytes。TCP的报文到达确认(ACK),是对接到的数据的最高序列号的确认,并向发送端返回一个下次接受时期望的TCP数据报的序列号(ACK Number)。

(7)观察TCPSYN报文段达到的时间以及SYNACK报文段回复的时间。它们与后继请求和应答报文对之间的时间差一样吗?

    不一样。

(8)接收方通常的可用缓存的量是一样大的吗?最小量是多少?出现了为抑制发送方而减少接收缓存空间的情况吗?

在整个路径中接收端的可能最小的缀存空间是5084个字节,显示了服务器发送的第一个确认的大小。在接收缓存达到最大的值17520字节之前接收窗口大小稳定增长。发送方不会因为接受缓存空间不足而受到影响。

(9)在踪迹文件中有重传报文段吗?如何检查是否出现了这种情况?

没有,从表中可以看出从源端发往目的地的序号逐渐增加,如果这其中有重传的报文段,则其序号中应该有小于其临近的分组序号的分组,图中未看到这样的分组,故没有重发片段。

(10)对该TCP连接,吞吐量是多大?解释计算所使用的方法。

TCP吞吐量计算很大程度上取决于所选内容的平均时间。作为一个普通的吞吐量计算,在这问题上,选择整个连接的时间作为平均时间段。然后,此TCP连接的平均吞吐量为总的传输数据与总传输时间的比值。传输的数据总量为TCP段第一个序列号(即第4段的1字节)和最后的序列号的ACK(第201段的164041个字节)之间的差值。因此,总数是164041-1 = 164040字节。整个传输时间是第一个TCP段(即4号段0.026477秒)的时间和最后的 ACK(即第201段5.447887秒)时间的差值。因此,总传输时间是5.447887-0.026477 = 5.42141秒。因此,TCP连接的吞吐为164040/5.42141=30.257 KByte/s.

3ea5a32d2857437b9628f42669060e5d.png

 

图2TCP流图分析

分析应用层内容

本实验中的应用层是HTTP,该协议的可靠传输基于TCP得到的。通过分析TCP报文序列可以得到HTTP传输的内容。为此,点击TCP三次握手之间的第4号报文,发现它是一条从本机向服务器发送HTTP POST命令的报文,请求Web服务器发送特定的页面对象。对于后继报文,也可以发现以ASCII 明文发送的应用层内容。

559e78d8e9624e14aea322677cf077de.png

 

图3 Follow TCP Stream 界面

对于分析应用层内容,Wireshark提供了一个很好的工具。点击“Analyze/Follow TCPStream",可打开如图3所示界面,显示了该TCP流的应用层相关信息。

(11)分析一下HTTP传输的是大约什么内容?

    是一本书,《爱丽丝梦游仙境》(Alice’s Adventures in Wonderland)。

(12)如果Web页面传输的是图片或视频对象,会出现什么情况?

    会出现传输失败。

分析TCP拥塞控制

前面实验已经为你用Wireshark分析报文序列打下了有用的基础。应当说它是一件枯燥(尽管十分有用)的工作,下面使用Wireshark提供的分析大量TCP报文时的图形工具。

点击"Statistics/TCP Stream Graph/Throughput Gragh)",得到如图4所示的界面。图中的每个点表示在某时刻该TCP连接的吞吐量。

 

图4分析TCP序列吞吐量的时序图

(13)根据图43分析的吞吐量分布曲线,解释哪部分对应的是TCP慢启动阶段和拥塞避免阶段。

    0-0.1s慢启动,0.3s内拥塞避免。

(14)图示曲线是否与课文中的理论分析曲线一致?为什么?

    不一致,因为图示的曲线中的坐标与课本中的坐标单位不一致。

实验心得体会

通过本次实验,

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一.项目简介 基于UDP的聊天系统 要求: 1.应用 IO 进程 线程 进程间通信, 网络相关内容。 2.C/S模型 3.僵尸进程一定要求处理 4.服务器尽量写成守护进程 5.应用链表保存在线用户信息 6.将所有用户信息保存到sqlite数据库中 7.能够导出相关数据到文本文档中(如聊天记录。。) 二.分工与描述 功能:1.(数据库及其涉及函数、查看在线用户、登录、注册) 2.(makeflie、私聊群聊完善) 3.(写入文件(存取聊天记录)、帮助文档、超级用户) 文档:三人共同完成 三.需求分析及界面设计 1. 引言 编写基于UDP的网络聊天室,该文档是给项目的需求分析,包括编写目的,项目要实现的功能,如何实现该项目。 1.1 编写目的 该项目是为分析基于UDP的网络聊天室项目的需求设计的,开发基于UDP的网络聊天室实现不同客户端的通信功能,具有重大意义,最终可以实现不同用户畅聊的功能。 1.2 项目风险 ●无; 1.3 文档约定 ●无; 1.4 预期读者和阅读建议 ●开发人员;全读 ●测试人员;了解 ●文档编写入员。全读 1.5 产品范围 ●Linux涉及UDP领域; 1.6 参考文献 ●基于UDP的聊天系统需求报告 ●基于UDP的聊天系统详细设计 2. 综合描述 这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。 2.1 产品的状况 描这是基于UDP的网络聊天室,基于Linux系统,用于聊天。 特点:  1)便捷性:摆脱了传统的通信方式,利用网络的廉价性,可以使用户更加自由地相互交流。  2) 安全性:网络环境下,用户可以针对地去了解自己想要了解的信息,交流时可以使用虚拟的身份, 一定程度上很好地保护了用户的个人隐私信息。  3) 实时性:用户只要与想要通信的另一方取得联系,即可想面对面对话一样交流。 2.2 产品的功能 ●实现登录 注册 聊天 查看在线用户 返回在线用户列表 下线等功能; 2.3 用户类和特性 ●无; 2.4 运行环境 ●Linux系统; 2.5 设计和实现上的限制 确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容: ●必须使用的特定技术、工具、编程语言和数据库; 1)Linux C编程工具:GCC和GDB  2)文件I/O操作 技术 3)文件属性及目录操作  4)终端控制与信号处理  5)进程控制  6)进程间通信  7)流式套接字编程  8)线程管理 9)数据库工具sqlite3 ●避免使用的特定技术、工具、编程语言和数据库;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值