目录
1.通过协议分析进一步明确TCP报文段结构中各字段语法语义;
2.能够描述TCP协议的序号确认机制、连接管理、RTT估算、流量控制机制。
联网的计算机;主机操作系统为Windows;WireShark等软件。
在这个实验中,我们将详细研究著名的TCP协议的行为。 通过分析从你的计算机向远程服务器传输150KB文件(包含Lewis Carrol的Alice’s Adventures in Wonderland的文本)时发送和接收的TCP报文段的跟踪来完成此操作。我们将研究TCP使用序列号和确认号来提供可靠的数据传输;我们将看到TCP的拥塞控制算法--慢启动和拥塞避免--在运行;我们将研究TCP的接收者的流量控制机制。 我们还将简要考虑TCP连接的设置,并测试你的计算机和服务器之间的TCP连接的性能(吞吐量和往返时间)。
在开始这个实验之前,需要复习课本中的3.5和3.7节。
1. 根据操作回答“五、实验报告内容”中的1-3题。
在开始探索TCP协议之前,需要使用Wireshark来获取文件从你的计算机到远程服务器的TCP传输的数据包跟踪。可以通过访问一个网页来实现,该网页允许输入存储在计算机上的文件名(该文件包含《爱丽丝梦游仙境》的ASCII文本),然后使用HTTP POST方法将该文件传输到一个Web服务器。 使用POST方法而不是GET方法,因为需要把大量的数据从你的计算机传输到另一台计算机。当然,在此期间需要运行Wireshark,以获得从你的计算机发送和接收的TCP报文段的抓取。
做如下操作:
(1)启动你的网络浏览器。进入http://gaia.cs.umass.edu/wireshark-labs/alice.txt,检索《爱丽丝梦游仙境》的ASCII副本。把这个文件储存在你电脑的某个地方。
(2)接下来进入Upload page for TCP Wireshark Lab。
(3)可以看到如下界面:

(4)使用此表单中的浏览按钮,输入你电脑中包含《爱丽丝梦游仙境》的文件名(全路径名称)(或手动输入)。先不要按 "上传alice.txt文件 "按钮。
(5)现在启动Wireshark并开始抓包(Capture->Start),然后在Wireshark Packet Capture Options屏幕上按OK(不需要在这里选择任何选项)。
(6)回到你的浏览器,按 "上传alice.txt文件 "按钮,将文件上传到gaia.cs.umass.edu服务器。 一旦文件被上传,一个简短的祝贺信息将显示在你的浏览器窗口。
(7)停止Wireshark数据包捕获。你的Wireshark窗口应该类似于下图所示的窗口。

如果你不能在实时网络连接上运行Wireshark,你可以下载一个数据包跟踪文件,[ 文件tcp-ethereal-trace-1.pcap,需要把它加载到Wireshark中,使用文件下拉菜单,选择打开,然后选择tcp-ethereal-trace-1文件来查看跟踪 ]。
(8)通过在Wireshark窗口顶部的显示过滤器规格窗口中输入 "tcp" 来过滤Wireshark窗口中显示的数据包。
2.根据操作回答“五、实验报告内容” 中的4-12题。
(1)更改Wireshark的“捕获数据包列表”窗口,以便它显示有关包含HTTP消息的TCP段的信息,而不是关于HTTP消息的信息。选择Analyze->Enabled Protocols。然后取消选中HTTP框并选择OK。如下所示:

3.根据操作回答“五、实验报告内容” 中的13题。
(1)在Wireshark的“捕获数据包列表”窗口中选择一个TCP段。然后选择菜单:统计->TCP流图->时间序列图(Stevens)。 可得到下图:

这里,每个点代表一个发送的TCP段,绘制该段的序列号与发送时间。请注意,一组相互叠加的点表示发送方背靠背发送的一系列数据包。
1-3:
1.将文件传输到gaia.cs.umass.edu的客户端计算机(源)使用的IP地址和TCP端口号是什么?
1&3.将文件传输到 gaia.cs.umass.edu 的客户端计算机(源)使用的IP地址为192.168.1.102,使用的TCP端口号为1161

2.gaia.cs.umass.edu的IP地址是什么?它在哪个端口号上发送和接收此次连接的TCP报文段?
gaia.cs.umass.edu的IP地址为128.119.245.12,使用端口号80发送和接收此次连接的TCP报文段

3.你的客户端计算机(源)用于将文件传输到gaia.cs.umass.edu的IP地址和TCP端口号是什么?
略,详见题1
4-12:
4.用于启动客户端计算机和gaia.cs.umass.edu之间的TCP SYN报文段的序列号是什么? 在该报文段中,有什么东西可以确定该段是SYN段?
用于启动客户端计算机和gaia.cs.umass.edu之间的TCP SYN报文段的序列号为 0

5.gaia.cs.umass.edu为回复SYN而向客户计算机发送的SYNACK段的序列号是什么? SYNACK段中的确认字段的值是多少? gaia.cs.umass.edu是如何确定这个值的?在该段中,有什么东西可以确定该段是SYNACK段?
gaia.cs.umass.edu为回复SYN而向客户计算机发送的SYNACK段的序列号为0;SYNACK段中的确认字段的值为1

ACK字段用于指示确认字段中的值是有效的,服务器接收到客户端的连接请求并且返回SYN-ACK 确认,这是三次握手的第二步
6.包含HTTP POST命令的TCP报文段的序列号是什么?
包含HTTP POST命令的TCP报文段的序列号为1

7.考虑将包含HTTP POST的TCP报文段作为TCP连接的第一个报文段。TCP连接中前六个报文段的序列号是什么(包括含有HTTP POST的段)? 每个报文段是在什么时候发送的? 每个报文段的ACK是什么时候收到的? 考虑到每个TCP报文段的发送时间和收到确认的时间之间的差异,这六个段的RTT值分别是多少? 在收到每个ACK后,估计RTT值是多少? 假设EstimatedRTT的值等于第一个报文段的测量RTT,然后用242页的EstimatedRTT方程计算出所有后续报文段的RTT。
7&8. TCP连接中前六个报文段的序列号,发送时间,接收时间及RTT值分别为:
运算公式:EstimatedRTT = (1 - a) × EstimatedRTT + a × SampleRTT(a 使用推荐值 0.125)
区段一:


EstimatedRTT=RTTforSegment1=0.02746s
区段二:


EstimatedRTT=0.875∗0.02746+0.125∗0.035557=0.0285s
区段三:


EstimatedRTT=0.875∗0.0285+0.125∗0.070059=0.0337s
区段四:


EstimatedRTT=0.875∗0.0337+0.125∗0.11443=0.0438s
区段五:


EstimatedRTT=0.875∗0.0438+0.125∗0.13989=0.0558s
区段六:


EstimatedRTT=0.875∗0.0558+0.125∗0.18964=0.0725
往返时延RRT统计表:

并点击切换方向

8.前六个TCP报文段的长度分别是多少?
略,详见图7
9.接收到的用于整个跟踪的最小可用缓冲区空间是多少?缺少接收器缓冲区空间会阻碍发送方吗?
最小可用缓冲区空间量为Win=5840

因为 TCP 的流量控制服务,所以缺少接收器缓冲区空间会限制发送方传送 TCP 区段
10.在跟踪文件中是否有任何重传的报文段?为了回答这个问题,你(在跟踪中)检查了什么?
在上文中打开往返时延统计表的二级菜单中选择选择序列号(Stevents)

通过检查序列号与时间,得出序列号与时间呈线性关系,因此没有重传
11.接收方通常在一次ACK中确认多少数据? 你能找出接收方每收到一个报文段就确认一次的情况吗?
接收器通常在 ACK 中确认1460bit的数据
TCP是累计确认的,一般接收方每隔一个接收到的区段才发送确认

如图第59号是对第53号和54号数据的确认,所以确认的数据为1460*2=2920bit
12.TCP连接的吞吐量(每单位时间传输的字节数)是多少? 解释一下你是如何计算这个数值的。
TCP吞吐量=总数据量/总传输时间

总数据量=1604091-1=164090bit(对于第4号数据段为1字节,对于第199号数据段,为164091字节,取两者之差)
如图:

第4号数据段是第一个TCP数据段

第202号数据段是最后的确认数据段
总传输时间:5.455830-0.026477=5.4294s
TCP吞吐量=164090/5.4294=30.222kb/s
13:
13.使用Time-Sequence-Graph(Stevens)绘图工具,查看从客户端发送到gaia.cs.umass.edu服务器的报文段的序列号与时间的关系。 你能确定TCP的慢启动阶段在哪里开始和结束,以及拥塞避免在哪里发生吗? 讨论一下测量的数据与我们在课本中研究的TCP的理想化行为的不同之处。
慢启动:指每次TCP接收窗口收到确认时都会增长; 增加的大小就是已确认段的数目

接开始,发送窗口大小呈指数型增长




参考博客:https://blog.csdn.net/weixin_42093700/article/details/120157370
参考文章:https://www.acwing.com/file_system/file/content/whole/index/content/4150491/
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.
一、机器人介绍 此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接
目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'
我想使用ruby-prof和JMeter分析Rails应用程序。我对分析特定Controller/操作/或模型方法的建议方法不感兴趣,我想分析完整堆栈,从上到下。所以我运行这样的东西:RAILS_ENV=productionruby-prof-fprof.outscript/server>/dev/null然后我在上面运行我的JMeter测试计划。然而,问题是使用CTRL+C或SIGKILL中断它也会在ruby-prof可以写入任何输出之前杀死它。如何在不中断ruby-prof的情况下停止mongrel服务器? 最佳答案
谈到现状,国内的软件测试行情目前呈现了两极分化的极端情况。一个是早期的手工测试人员吐槽工作不好做,即使有工作也是外包,而且薪资太低;一方面是很多互联网企业感叹自动化测试人才难找,有技术的自动化测试工程师,高薪难聘。这两者其实并不矛盾。手工测试工作难找也确实是目前真实的行情早期从事功能测试的手工测试人员,在测试方面大多采用手动、人工执行的方式查找软件缺陷和BUG,用行业术语来描述就是“点点点”。这种测试方式耗费大量人力和资源,工作效率却十分低下。在早期软件复杂和迭代程度不高的情况下,有资本的企业会“供养”一批这样的手工测试人员。但对测试员本身来讲,毫无技术难度的工作,和几乎没有保障的薪资水平,直
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对
文章目录认识unity打包目录结构游戏逆向流程Unity游戏攻击面可被攻击原因mono的打包建议方案锁血飞天无限金币攻击力翻倍以上统称内存挂透视自瞄压枪瞬移内购破解Unity游戏防御开发时注意数据安全接入第三方反作弊系统外挂检测思路狠人自爆实战查看目录结构用il2cppdumper例子2-森林whoishe后记认识unity打包目录结构dll一般很大,因为里面是所有的游戏功能编译成的二进制码游戏逆向流程开发人员代码被编译打包到GameAssembly.dll中使用il2ppDumper工具,并借助游戏名_Data\il2cpp_data\Metadata\global-metadata.dat
在笔者前面有一篇文章《驱动开发:断链隐藏驱动程序自身》通过摘除驱动的链表实现了断链隐藏自身的目的,但此方法恢复时会触发PG会蓝屏,偶然间在网上找到了一个作者介绍的一种方法,觉得有必要详细分析一下他是如何实现的进程隐藏的,总体来说作者的思路是最终寻找到MiProcessLoaderEntry的入口地址,该函数的作用是将驱动信息加入链表和移除链表,运用这个函数即可动态处理驱动的添加和移除问题。MiProcessLoaderEntry(pDriverObject->DriverSection,1)添加MiProcessLoaderEntry(pDriverObject->DriverSection,