修改版实验三:Ethereal Lab —— TCP协议
实验_网络协议分析Ethereal

实验_网络协议分析Ethereal实验_网络协议分析Ethereal协议编号:XXXX甲方(委托方):名称:XXX公司地址:XXX省XXX市XXX区XXX街道XXX号联系方式:XXX-XXXXXXXX法定代表人:XXX乙方(被委托方):名称:XXX律所地址:XXX省XXX市XXX区XXX街道XXX号联系方式:XXX-XXXXXXXX法定代表人:XXX针对甲方委托乙方对实验_网络协议分析Ethereal进行法律服务,双方在平等自愿、遵守法律的基础上,达成以下协议:第一条索引与解释本协议的索引为“实验_网络协议分析Ethereal委托协议”,根据以下约定解释:1.1“甲方”:指根据本协议,向乙方提出网络协议分析Ethereal委托的一方。
1.2“乙方”:指根据本协议,作为网络协议分析Ethereal委托的承接方。
1.3“双方”:指本协议中的甲方和乙方。
第二条委托内容2.1甲方委托乙方对实验_网络协议分析Ethereal进行法律服务,具体包括但不限于分析网络协议相关资料、查阅法律法规、提供法律意见等。
2.2乙方在接到委托后,应当认真履行职责,对网络协议进行全面分析,包括但不限于协议条款解释、履行方式、期限等内容,并对分析结果提供专业、准确、及时的法律意见。
2.3甲方应协助乙方开展工作,如提供必要的相关资料、信息等。
第三条知情权和保密3.1本协议中涉及到的所有信息、资料等,均为双方之间的商业秘密,双方均应予以保密。
3.2双方在履行本协议过程中取得的用户信息和数据,均应本着合法、公正、公开的原则进行管理和使用,并严格保护用户信息和数据的隐私。
第四条权利及义务4.1甲方的权利:4.1.1拥有委托乙方对实验_网络协议分析Ethereal进行法律服务的权利,并要求乙方给予专业、及时、准确的法律意见。
4.2乙方的权利:4.2.1拥有对实验_网络协议分析Ethereal进行法律分析并提供专业、及时、准确的法律意见的权利。
tcp协议分析实验报告

TCP协议分析实验报告1. 引言TCP(传输控制协议)是一种面向连接的协议,用于在计算机网络中可靠地传输数据。
本实验旨在分析TCP协议的工作原理、数据包的格式和传输过程,并通过实验验证其可靠性和效率。
2. 实验环境在该实验中,我们使用了两台计算机作为实验设备,一台作为服务器,另一台作为客户端。
两台计算机通过以太网连接,并配置了相应的IP地址和子网掩码。
3. 实验步骤3.1 建立连接首先,客户端发送一个SYN包(同步包)到服务器的指定端口。
服务器收到SYN包后,发送一个SYN-ACK包(同步-确认包)作为响应。
客户端再次发送一个ACK包(确认包)给服务器,表示连接已建立。
3.2 数据传输一旦连接建立,客户端和服务器之间可以开始传输数据。
数据被分割成多个小的数据包,并使用TCP协议进行传输。
每个数据包都包含源端口、目的端口、序列号、确认号以及数据内容等字段。
3.3 确认和重传在传输过程中,接收方会发送确认包以确认已接收到的数据包。
如果发送方在一定时间内没有收到确认包,它会认为数据包丢失,然后重新发送该数据包。
这样可以确保数据的可靠性。
3.4 连接终止当数据传输完成后,客户端或服务器可以发送一个FIN包(结束包)来关闭连接。
接收到FIN包的一方发送一个ACK包作为确认,并关闭连接。
另一方在收到确认后也关闭连接。
4. 实验结果通过抓包工具,我们捕获并分析了在实验中传输的数据包。
我们观察到数据包的格式与TCP协议规定的格式相符,并且在传输过程中发现了确认和重传的情况,验证了TCP协议的可靠性。
5. 实验总结TCP协议是一种可靠的传输协议,在实验中我们深入了解了其工作原理和数据包的格式。
通过实验验证了TCP协议的可靠性和效率。
同时,我们也了解到了TCP协议在实际网络通信中的重要性和广泛应用。
参考文献•Tanenbaum, A. S., & Wetherall, D. J. (2011). 计算机网络(第5版).机械工业出版社.•Stevens, W. R., Wright, G., & Coppola, R. (1994). TCP/IP 详解卷1:协议. 机械工业出版社.本文档旨在介绍TCP协议的工作原理和实验验证过程,并不涉及具体的技术细节和算法解析。
[工学]协议分析软件Ethereal的使用
![[工学]协议分析软件Ethereal的使用](https://img.taocdn.com/s3/m/9d96b0b0011ca300a7c39078.png)
实验协议分析软件Ethereal 的使用一、实验目的和要求:熟悉掌握Ethereal软件的使用,并应用该软件分析Ethernet帧以及高级协议,从而能够加深对TCP/IP 协议栈上的参与通信的网络数据包结构以及通信方式有进一步的了解。
二、实验内容和原理1. 安装windows下的Ethereal及WinPcap软件。
2. 捕捉任何主机发出的DIX Ethernet V2(即Ethernet II)格式的帧(帧的长度字段>1500, 帧的长度字段实际上是类型字段),Ethereal的capture 的options中capture filter设置为:ether[12:2] > 1500 观察并分析帧结构,Ethernet II的帧(ether[12:2] > 1500)的上一层主要是哪些PDU?是IP、LLC还是其它哪种?IP3. 捕捉并分析局域网上的所有ethernet broadcast帧,Ethereal的capture 的options中capture filter设置为:ether broadcast(1). 观察并分析哪些主机在发广播帧,这些帧的高层协议是什么?ARP(2). 你的LAN的共享网段上连接了多少台计算机?1分钟内有几个广播帧?有否发生广播风暴?92台4. 捕捉局域网上主机发出或接受的所有ARP包capture 的options中capture filter设置为:arp host ip (1)主机上执行“arp –d ”清除arp cache.(2)在主机上ping 局域网上的另一主机(3)观察并分析主机发出或接受的所有ARP包,及arp包结构。
5. IP 分组的结构固 定 部分 可变 部分0 48 16192431版 本 标志 生 存 时 间协 议标 识服 务 类 型总 长 度 片 偏 移填 充首 部 检 验 和源 地 址 目 的 地 址可 选 字 段 (长 度 可 变) 比特 首部长度 01 2 3 4 5 6 7 D T R C 未用 优 先 级数 据 部 分首 部6、UDP 报文伪首部源端口目的端口长 度检验和数 据首 部UDP 长度源 IP 地址目的 IP 地址17 IP 数据报字节12 2 2 2 2 字节 发送在前数 据首 部 UDP 用户数据报附:1、Ethernet II的帧结构字节46 ~ 1500 目的地址源地址类型数据FCS目的地址:01:00:5e:22:17:ea源地址:00:1e:90:75:af:4f类型数据2、IP分组的结构版本首部长度服务类型总长度标识标志固 定 部分 可变 部分0 48 16192431版 本 标志 生 存 时 间协 议标 识服 务 类 型总 长 度 片 偏 移填 充首 部 检 验 和源 地 址 目 的 地 址可 选 字 段 (长 度 可 变) 比特 首部长度 01 2 3 4 5 6 7 D T R C 未用 优 先 级数 据 部 分首 部片偏移生存时间协议首部检验和源地址目的地址可选字段 数据3、 ARP 的报文格式硬件地址长度协议类型 发送方IP 地址(八位组0-1) 目标硬件地址(八位组2-5) 目标IP 地址(八位组0-3)发送方硬件地址(八位组0-3)硬件类型操作发送方硬件地址(八位组4-5) 发送方IP 地址(八位组2-3)协议长度目标硬件地址(八位组0-1)* 硬件类型指明发送方想知道的硬件接口类型。
Ethereal 分析数据报文

实验二利用网络嗅探工具Ethereal分析数据报文一、实验目的网络世界中,最基本的单元是数据包。
本实验内容作为将来各个实验的基础,培养对网络通讯协议底层的分析和认识,加强对网络的理解。
实验内容主要关注 ICMP、HTTP 包的检验。
1.学习网络嗅探工具 Ethereal 的使用。
2.利用抓包工具Ethereal,抓取ICMP包,完成对ICMP 包的分析工作。
明白 ICMP 包的结构。
结合 TCP/IP 的模型,分析 ICMP 包各层的功能,以及各层通信使用的地址,了解 ICMP 请求和响应包的 ICMP 协议号。
3.利用抓包工具 Ethereal,抓取 HTTP 包。
了解 HTTP 协议请求、响应包类型,结合课本学习知识完成的 HTTP 协议的剖析和掌握。
将来的课程实验中,需要使用该工具进行包分析,判断大多数安全和网络通讯问题。
二、实验环境1. 局域网环境2. Ethereal软件Ethereal 软件介绍Ethereal是一个网络数据包分析软件。
网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包资料。
网络数据包分析软件的功能可想像成"电工技师使用电表来量测电流、电压、电阻"的工作——只是将场景移植到网络上,并将网络线替换成电线。
三、实验任务1. 任务1:Ethereal 软件的基本功能使用2. 任务2:ICMP 数据报文的检测与分析3. 任务3:HTTP 数据报文的检测与分析四、实验步骤首先安装Ethereal和Winpcap。
任务1:Ethereal 软件的基本功能使用一、 打开 Ethereal,其界面如下图:二、在菜单的“capture”选项中设置抓包的相关参数,如下图:三、选择“interfaces”选项,对话框中显示可操作的网络适配器,如下图:四、通过“Prepare”或上级菜单“Option”选项,可以设置抓包模式、过滤器、数据包限制字节、存档文件模式、停止规则和名字解析等参数,如下图:设置完毕,就可以点击“Capture”,开始数据报文的捕获。
Ethereal协议分析实验指导

Ethereal协议分析实验指导Ethereal是一个开放源码的网络分析系统,也是目前最好的开放源码的网络协议分析器,支持Linux和windows平台。
Ethereal 基本类似于tcpdump,但 Ethereal 还具有设计完美的 GUI 和众多分类信息及过滤选项。
用户通过 Ethereal,同时将网卡插入混杂模式,可以查看到网络中发送的所有通信流量。
Ethereal网络协议分析软件可以十分方便直观地应用于计算机网络原理和网络安全的教学实验,网络的日常安全监测。
使用Ethereal能够非常有效地帮助学生来理解网络原理和协议、帮助学生理解实验现象和诊断实验故障。
一、Ethereal 协议分析软件下载及安装1.下载Ethereal 开源软件Ethereal是免费的,可以从官方网站下载最新版本。
以windows xp操作系统为例,如图2-1所示。
目前可下载最新版本为:Ethereal 0.99.0图2-1 下载Ethereal协议分析软件的界面2.安装Ethereal软件图2-2 Ethereal 安装界面双击Ethereal-setup-0.99.0.exe软件图标,开始安装。
图2-2为Ethereal安装界面。
选择欲安装的选件,一般选择默认即可,如图2-3图2-3选择欲安装的选件选择欲安装的目录,确定软件安装位置。
Ethereal软件的运行需要软件WinPcap的支持,WinPcap是libpcap library的Windows版本,Ethereal可通过WinPcap来劫取网络上的数据包。
在安装Ethereal时可以的过程中也会一并安装WinPcap,不需要再另外安装。
如图2-4所示图2-4选择安装WinPcap如果在安装Ethereal之前未安装Winpcap,可以勾选Install Winpcap 3.1 beta 4。
开始解压缩文件,接着开始安装,接着按Next就可以看到Ethereal的启动画面了。
TCP协议实验

TCP协议实验协议名称:TCP协议实验协议1. 引言TCP(传输控制协议)是一种面向连接的、可靠的传输层协议,广泛应用于互联网通信中。
本实验协议旨在通过实践操作,深入理解TCP协议的工作原理、特性和性能。
2. 实验目的本实验旨在帮助学生通过实际操作,加深对TCP协议的理解,包括如下方面:- 学习TCP协议的基本工作原理;- 掌握TCP协议的连接建立、数据传输和连接释放过程;- 熟悉TCP协议的可靠性机制和流量控制;- 了解TCP协议的拥塞控制机制和性能优化策略。
3. 实验环境- 操作系统:Windows 10 / macOS / Linux- 软件工具:Wireshark(用于网络数据包的捕获和分析)4. 实验任务本实验包括以下任务:任务1:TCP连接建立和释放- 步骤1:准备两台计算机,并确保网络连接正常。
- 步骤2:使用Wireshark捕获计算机A和计算机B之间的TCP连接建立和释放过程的数据包。
- 步骤3:分析捕获到的数据包,了解TCP连接建立和释放的过程、相关字段的含义和作用。
任务2:TCP数据传输和可靠性机制- 步骤1:准备两台计算机,并确保网络连接正常。
- 步骤2:使用Wireshark捕获计算机A向计算机B发送数据的过程中的数据包。
- 步骤3:分析捕获到的数据包,了解TCP的数据传输机制、序号和确认号的作用、超时重传机制等。
任务3:TCP流量控制和拥塞控制- 步骤1:准备两台计算机,并确保网络连接正常。
- 步骤2:使用Wireshark捕获计算机A向计算机B发送大量数据时的数据包。
- 步骤3:分析捕获到的数据包,了解TCP的流量控制机制、滑动窗口的作用以及拥塞控制的原理。
任务4:TCP性能优化- 步骤1:准备两台计算机,并确保网络连接正常。
- 步骤2:使用Wireshark捕获计算机A和计算机B之间进行TCP通信时的数据包。
- 步骤3:分析捕获到的数据包,了解TCP的性能优化策略,如快速重传、快速恢复、拥塞避免等。
利用Ethereal分析TCP数据包
利用Ethereal分析TCP数据包一.分析过程:1.图1 TCP协议图图2 TCP协议的内容图3 TCP协议的数据包2.数据分析1)分析:546代表的是Frame的序号,54 bytes代表的是54字节的数据包的长度2)分析:其中代表的是MAC地址字节: 6 6 2以太网的MAC帧格式目的地址:00 e0 5c 15 f1 cd(十六进制)源地址:00 1f d0 b8 da 78(十六进制)类型:一般类型字段的值是0x0800是,就是宝石上层使用的是IP数据报。
如果类型字段分值是0x8137则宝石该帧是由Novell IPX发过来的。
3)分析:版本:使用的是IP协议版本号为4(即IPv4)首部长度:20个字节的长度服务类型(新版本称区分服务):00,这个字段只有在使用区分服务时,才起作用。
在一般的情况下都不使用这个字段的。
总长度:40字节,总长度指的是首部和数据之和的长度标识:d0 34(十六进制)IP软件在存储器中维持一个计时器,每产生一个数据报,计时器就加1,并将此值赋给标志字段。
标志:001(二进制),目前标志只有两位有意义:标志最低位记为MF(More Fragment)。
MF=1表示后面“还有分片”的数据报,MF=0表示这已是若干数据报片中的最后一个。
标志中间的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0是才允许分片。
片偏移:0,0000,0000,0000(二进制)生存时间:80(十进制128s)生存时间表明的是数据报在网络中的寿命,一般以秒作为其单元。
协议:协议字段指出次此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分交给那个处理过程。
首部检验和:5167(二进制:0101,0001,0110,0111)这个字段值检验数据报的首部,但不包括数据部分。
源IP地址:192.168.1.3目的IP地址:219.133.60.34)源端口号:1157目的端口号:80(HTTP)序列号:73 71 72 cb确认号:24 ce 1c a0首部长度:20字节保留:00,0000UGR:0, URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据ACK:1, ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
TCP协议实验
TCP协议实验协议名称:TCP协议实验协议协议编号:[编号]生效日期:[日期]1. 引言本协议旨在规范和指导TCP协议实验的相关操作和流程,确保实验的顺利进行并获取准确的实验结果。
本协议适用于所有参与TCP协议实验的实验人员。
2. 实验目的本实验旨在深入理解TCP协议的工作原理,掌握TCP协议的基本操作和功能,并通过实验验证TCP协议的可靠性和效率。
3. 实验要求3.1 实验设备参与实验的人员需具备以下设备:- 一台计算机- 安装有TCP/IP协议栈的操作系统- 网络连接设备(例如以太网卡)3.2 实验环境实验环境应满足以下要求:- 稳定的网络连接- 适当的网络带宽和延迟- 实验所需的软件和工具3.3 实验内容实验人员应按照以下步骤进行实验:1. 准备实验环境:确保实验设备和网络环境符合要求。
2. 实验准备:安装和配置实验所需的软件和工具。
3. 实验设计:根据实验目的设计合适的实验方案。
4. 实验执行:按照实验方案进行实验操作。
5. 数据收集:记录实验过程中的数据和结果。
6. 数据分析:对实验数据进行分析和评估。
7. 结果总结:总结实验结果并得出结论。
4. 实验步骤4.1 准备实验环境确保实验设备和网络环境符合要求,包括:- 确保计算机正常工作,操作系统安装完好。
- 确保网络连接设备正常工作,网络连接稳定。
4.2 实验准备安装和配置实验所需的软件和工具,包括:- 安装TCP/IP协议栈。
- 安装网络抓包工具,用于捕获和分析网络数据包。
4.3 实验设计根据实验目的设计合适的实验方案,包括:- 设定实验的网络拓扑结构,确定实验中的发送方和接收方。
- 设定实验中的数据传输量和传输速率。
- 设定实验中的网络延迟和丢包率。
4.4 实验执行按照实验方案进行实验操作,包括:- 启动发送方和接收方的程序。
- 发送方向接收方发送数据。
- 接收方接收数据并发送确认。
- 发送方接收确认并继续发送数据。
4.5 数据收集记录实验过程中的数据和结果,包括:- 捕获和保存实验中的网络数据包。
TCP协议实验
TCP协议实验协议名称:TCP协议实验协议协议目的:本协议旨在规定TCP协议实验的具体步骤和要求,确保实验过程的准确性和可重复性,以提高学生对TCP协议的理解和实践能力。
实验内容:1. 实验目标:1.1 理解TCP协议的工作原理和基本概念;1.2 掌握TCP协议的连接建立和断开过程;1.3 熟悉TCP协议的数据传输机制;1.4 学会使用网络调试工具分析TCP连接过程。
2. 实验环境:2.1 操作系统:任意支持TCP协议的操作系统;2.2 网络环境:可以使用本地环回地址或局域网环境。
3. 实验工具:3.1 Wireshark:用于抓包和分析网络数据;3.2 Telnet:用于模拟TCP连接。
4. 实验步骤:此处将详细描述TCP协议实验的步骤,以确保实验的准确性和可重复性。
4.1 实验前准备:4.1.1 确保实验所需的操作系统和网络环境已准备就绪;4.1.2 安装并配置Wireshark和Telnet工具。
4.2 实验步骤:4.2.1 打开Wireshark工具,开始抓包;4.2.2 打开命令行界面,输入telnet命令,连接到目标主机;4.2.3 在Telnet会话中执行TCP连接建立过程;4.2.4 在Wireshark中分析抓包数据,观察TCP连接建立过程;4.2.5 在Telnet会话中执行数据传输过程;4.2.6 在Wireshark中分析抓包数据,观察TCP数据传输过程;4.2.7 执行TCP连接断开过程;4.2.8 在Wireshark中分析抓包数据,观察TCP连接断开过程。
4.3 实验记录:4.3.1 在实验过程中记录每个步骤的操作和观察结果;4.3.2 记录Wireshark抓包数据的关键信息,如源IP地址、目标IP地址、端口号等。
4.4 实验分析:4.4.1 根据实验记录和Wireshark抓包数据,分析TCP连接建立和断开的细节过程;4.4.2 分析TCP数据传输的可靠性和效率。
tcp协议实验总结
tcp协议实验总结TCP协议实验总结前言本文对TCP协议实验进行总结,旨在探讨TCP协议的基本原理和实际应用,并提供一些实验中的注意事项和经验分享。
正文1. TCP协议简介•TCP(Transmission Control Protocol)是一种面向连接的、可靠的网络传输协议。
•TCP协议通过三次握手建立连接,在数据传输过程中保证数据的可靠性和有序性。
•TCP协议支持流量控制和拥塞控制,以确保网络传输的稳定性和可靠性。
2. TCP协议实验设计•设计合适的实验拓扑结构,包括服务器和多个客户端,以模拟真实网络环境。
•实验过程中,要确保服务器和客户端之间的正常通信,包括建立连接、数据传输和连接终止。
•针对不同的实验目的,可以设计不同的测试场景和负载条件,以验证TCP协议的性能和稳定性。
3. 实验经验分享•在实验过程中,要确保服务器和客户端的配置正确,并且网络连通。
•注意调整合适的实验参数,如超时时间、拥塞窗口大小等,以探索不同情况下TCP协议的行为表现。
•在进行实验时,可以使用抓包工具(如Wireshark)进行数据包分析,并通过统计数据(如RTT、丢包率)评估实验结果。
结尾本文对TCP协议实验进行了总结和分析,通过实验可以更加深入地理解TCP协议的工作原理和性能特点。
在今后的网络应用开发过程中,可以更加准确地使用和优化TCP协议,以提供更高质量的网络传输服务。
注意:文章内不得出现HTML字符、网址、图片和电话号码等内容。
4. 实验注意事项•在进行实验前,要充分了解并熟悉TCP协议的基本原理和相关概念,以便更好地设计和执行实验。
•在实验过程中,要保证实验环境的稳定性和可靠性,避免其他因素对实验结果的影响。
•实验中应尽量避免大量数据的传输,以免产生网络拥塞,影响实验结果的准确性。
•实验完成后,要及时整理和分析实验数据,并进行合适的可视化展示,以便更好地理解和演示实验结果。
5. 实验应用推广•TCP协议是互联网中最常用的传输协议之一,广泛应用于各种网络应用中,如Web浏览器、邮件和文件传输等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:Ethereal Lab —— TCP协议 一、实验目的 通过这次实验,详细地研究TCP协议在以下几个方面的运行机制:(1)TCP为了提供可靠的数据传输所采用的序列号和确认号机制;(2)TCP拥塞控制算法——慢启动与拥塞避免算法的执行;(3)TCP的流量控制算法;(4)TCP连接的建立过程以及TCP连接的性能(吞吐量和RRT时间)。 二、实验原理
TCP协议为应用进程之间提供面向连接、全双工、可靠的数据传输服务,是传输层最为重要的协议之一。TCP报文分为头部和数据区两个部分,头部最小长度为20个字节,TCP报文格式定义如下图:其中序号指该报文段数据区首字节的序号(TCP把数据看作有序的字节流),确认号是期望从对方获得的下一个字节的序号,窗口大小是接收方告知发送方它可用的缓冲区大小。
TCP是面向连接的传输层协议,发送数据前必须通过三次“握手”建立连接,首先客户端发送连接请求(此时SYN=1,ACK=0);然后服务器接受请求,分配缓存和变量,返回响应(此时SYN=1,ACK=1);客户端接受响应,分配缓存和变量,返回响应(此时SYN=0, ACK=1),TCP连接建立。 TCP发送方每发送一个报文段,就启动一个重传定时器,如果在规定的时间内没有收到接收方返回的确认,重传定时器超时,发送方将重传该报文。从发出数据到接收到确认的往返时间记作RTT(Round Trip Time).在原始算法中,重传定时器的定时宽度为Timeout=β*EstimatedRTT,其中EstimatedRTT为估算的从发出数据到接收到确认的往返时间。而EstimatedRTT=α* EstimatedRTT+(1-α)*SampleRTT(注:本实验α取0.875),这里SampleRTT是采样得到的从发出数据到接收到确认的往返时间。 TCP采用“慢启动、拥塞避免、 快速重传、快速恢复”的拥塞控制算法,利用拥塞窗口变量(cwnd)控制发送速度。其中慢启动是指TCP刚建立连接时将拥塞窗口变量cwnd设置为1个报文段大小,然后以指数方式放大cwnd,直到大于等于ssthresh(初始为最大拥塞窗口一半),进入拥塞避免阶段,进入拥塞避免阶段后,TCP采用线性增加方式放大cwnd。无论是慢启动阶段还是拥塞避免阶段,如果发生重传定时器超时的现象,就必须回到慢启动阶段,cwnd设置为1个报文段大小, ssthresh设置为上一次拥塞窗口值cwnd的一半。 三、实验步骤与实验问题探讨【注:实验步骤应用(x),问题用[x]】
1.捕捉从你主机到远程服务器的一次大数据量的TCP传输。 在开始研究TCP以前,我们需要在你主机与远程服务器之间进行一个文件的TCP传输,并利用Ethereal来获取TCP传输所传递的一系列数据包。你可以访问一个网页去获取一个文件(这个文件包括了《艾丽丝仙境历险记》的ASCII码文本),存到你的主机上,然后利用HTTP的Post方法将该文件传至Web服务器。既然我们是从你的主机向另一个主机传送大量数据,我们将使用POST方法而不是GET方法。当然,在这一过程中我们将运行Ethereal来获取TCP报文段序列。 按如下步骤操作: (1)打开你的浏览器,访问下列网址: http://gaia.cs.umass.edu/ethereal-labs/alice.txt去获取Alice in Wonderland的ASCII备份,把该文件存到你主机上的某地。 (2)然后访问下列网址:http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html (3)你将看到如下画面。 (4)使用“Browse”按钮输入你主机上含《Alice》文本的文件名,目前还不要按“Upload Alice.txt file”钮。 (5)现在启动Ethereal开始抓包,按“Ethereal Packet Capture Options”界面上的“OK“键(这里我们不需要选任何选项)。 (6)返回你的浏览器,按“Upload alice.txt file”键去上传文件至服务器gaia.cs.umass.edu,一旦文件上传成功,将在浏览器窗口显示一个简短的文件提示。
(7)停止Ethereal的抓包,你的Ethereal窗口看起来与下图相似。 (8)如果你无法上网,你可以下载一个trace文件包,它是遵照上述步骤在作者机器上捕捉的2。尽管你可能已经获取了自己的数据,但是在研究下面的一些问题时你可能会发现下载一个trace文件包是很有价值的。 (注释2:下载http://gaia.cs.umass.edu/ethereal-labs/ethereal-traces.zip文件,解压文件tcp-ethereal-trace-1.文件中的数据是由运行于作者机器上的Ethereal捕获的,机器执行的步骤本文正文所述.一旦你获取了trace文件,利用“File-Open”选择tcp-ethereal-trace-1文件,将它装入Ethereal,即可查看捕获数据内容) 2.初探捕获数据包 在分析TCP连接的细节之前,让我们先大体看一下trace文件.首先要过滤一下显示在Ethereal窗口的数据包,即在Ethereal窗口上方的显示过滤规则窗口输入”tcp”(小写,无引号,输入完后不要忘记回车),你看到的将是在你主机和gaia.cs.umass.edu之间传送的一系列TCP和HTTP数据包。你应该可以看到包含SYN字段的三次握手过程,可以看到一个HTTP POST数据报和一系列”TCP segment of a reassembled PDU”数据报被从你的主机发往gaia.cs.umass.edu。这是Ethereal的一种特殊方式:表明使用了多个TCP报文段来携带一个HTTP信息,你还应看到从gaia.cs.umass.edu返回到你主机的TCP确认报文。 打开被Ethereal捕获的数据包文件tcp-ethereal-trace-1(参见注释2)。回答如下问题: [1]向gaia.cs.umass.edu传送文件的客户端所使用的IP地址和TCP端口号是多少?要回答这个问题,可能最简单的方法是选择一个HTTP信息包,研究携带它的TCP数据包的细节,可以使用details of the selected packet header window来查看 [2]gaia.cs.umass.edu的IP地址是什么?采用什么端口号来收发TCP报文段? 若你能创建自己的trace文件,回答下列问题(自己在网络环境下做实验): [3]你的主机使用什么IP地址和TCP端口号向远程服务器传送文件? 3.TCP基础 回答下列关于TCP报文段的问题: [4]被用于初始化TCP连接的“第一次握手”报文段的序列号是多少?在该报文段中,其标识位SYN、ACK取值为多少? [5]为了响应客户端主机的“第一次握手”,gaia.cs.umass.edu发送了SYN ACK报文段(即“第二次握手”),SYN ACK的序列号是多少?在该报文段中,其标识位SYN、ACK取值为多少? [6]包含HTTP POST命令的TCP报文段的序列号是多少?注意:要找到这个POST命令,你需要仔细查看位于Ethereal窗口底部的数据包内容区域,在它的数据域中有一个“POST”字段, [7]假定包含HTTP POST命令的TCP报文段是TCP连接中的第一个报文段,在TCP连接中前六个报文段的序列号是多少(包括那个包含HTTP POST命令的报文段在内)?每个报文段在什么时间被发送?对被接收的每个报文段返回的ACK是什么时候收到的?鉴于每个TCP报文段被发送的时间与对它的确认被收到的时间之间的差值,这六个报文段每一个的往返时延是多少(RRT)?每收到一个ACK后,EstimatedRTT的值是多少?假定第一个报文段的Estimated RTT值与被测的RTT值相等,将其他后续报文段的Estimated RTT值根据实验原理部分介绍的公式进行计算。 注:Ethereal有一个非常好的特色,它可以帮助你绘制被发送的TCP报文段的RTT图。从“listing of captured packets”窗口选择一个被从你主机发往gaia.cs.umass.edu的TCP报文段,然后选Statistics->TCP Stream Graph->Round Trip Time Graph. [8]这六个TCP报文段的长度是多少? 3 (注3:在tcp-ethereal-trace-1文件中所有TCP报文段均少于1460字节。这是因为该trace文件的数据是在一台安装了以太网卡的机器上采集的,这种网卡将IP数据包的最大长度限定为1500字节(40字节的TCP/IP报头和1460字节的TCP载荷)。这个1500字节值是被以太网允许的标准最大长度。如果你的trace文件显示一个TCP长度大于1500字节,而你的计算机使用一个以太网连接,那么Ethereal正报告一个错误的TCP报告段长度;也可能它只显示了一个大的TCP报文段而不是多个小的报文段,而你的计算机实际上可能正传递着多个小的报文段,正如它所收到的ACK所显示的那样。这种在报文段长度上的不一致是由于以太网卡驱动和Ethereal软件的交互导致。如果你的主机存在这种不一致,我们推荐你采用下载的trace文件。) [9]在整个trace文件中,接收方宣布的可用缓冲区空间的最小值是多少?有没有出现由于接收方缓冲区已满而阻碍了发送方发送数据的情况? [10]在trace文件中,有被重传的报文段吗?为了回答这个问题你将检查什么信息? [11]在一个ACK包中接收方通常确认几个报文段?你能找到一些例子说明接收方正在确认多个被接收的报文段吗? [12]TCP连接的吞吐量(每单位时间被传送字节)是多少?解释你是怎么计算这个值的? 4.TCP拥塞控制 现在让我们检查一下单位时间从客户端到服务器发送数据量。我们并不是从Ethereal窗口的原始数据来计算,而是使用Ethereal的一项TCP画图功能——Time-Sequence-Graph(Stevens)来画图表示已得到的数据。 选择“listing of captured-packets”窗口中的一个TCP报文段,然后选择菜单Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens),你将看到一幅类似下图的图,这幅图是根据trace文件tcp-ethereal-trace-1中捕获的数据生成。