280 likes | 522 Views
实验 6 传输层协议分析. 200 6.05. 总体说明. 4.1 节实验使用 Windows 系统,实验步骤按书本; 4.2 节实验同时使用 Windows 系统和 Linux 系统,实验步骤按补充教材; 4.3 节实验使用 Windows 系统,实验步骤按此补充教材。 两个人为一组( PCA 和 PCB 为一组, PCC 和 PCD 为一组); TCP 实验中 PCA ( PCC )为发送端, PCB ( PCD )为接收端。 TCP 实验中使用 Ethereal 截报文时切记 启用 TCP 报文过滤 。. 总体说明.
E N D
实验6 传输层协议分析 2006.05
总体说明 • 4.1节实验使用Windows系统,实验步骤按书本; • 4.2节实验同时使用Windows系统和Linux系统,实验步骤按补充教材; • 4.3节实验使用Windows系统,实验步骤按此补充教材。 • 两个人为一组(PCA和PCB为一组,PCC和PCD为一组); • TCP实验中PCA(PCC)为发送端,PCB(PCD)为接收端。 • TCP实验中使用Ethereal截报文时切记启用TCP报文过滤。
总体说明 • 在Linux系统下做的实验先在本地磁盘保存相关实验数据,待此系统下所有实验(4.2节实验1、2、3)做完后再改动PC机IP地址设置,将相关实验数据上传FTP服务器(192.192.169.200);并同时清空保存在本地磁盘目录/root/DATA/中的实验数据。 • 在Windows系统下做的实验数据在切换Linux系统前上传FTP服务器。因为每次启动系统磁盘自动清空前次改动。 • 各实验的实验分析工作,可随实验同步进行,也可做完所有实验后进入Windows系统再从FTP服务器下载本组实验数据进行,完成实验报告。
TCP协议测试软件 • 关于“TCP协议测试软件”的休眠设置的解疑说明: • 接收端中有“休眠时间”和“计数器阀值”两个与休眠有关的参数,此处休眠指的是“TCP协议测试软件”应用程序进程在从套接字中读取n次(由“计数器阀值”设置)数据后开始休眠,即应用程序进程停止从套接字中读取数据,而此时处于内核态的“TCP协议模块”仍在工作。
实验内容 • TCP协议分析 使用TCPTest程序分析TCP报文首部信息、TCP连接的建立过程、TCP连接的撤销过程、滑动窗口机制和拥塞控制机制。 • UDP协议分析 使用模拟通讯程序UDPTest发送消息数据,并使用Ethreal软件截获报文,分析UDP协议的报文格式。并进而了解和理解UDP协议的运行机理。
实验原理 — TCP协议简介 • TCP协议 —Transfer Control Protocol 特点: 传输之前建立TCP连接 可靠的 传输结束撤销TCP连接 滑动窗口 面向连接的 可靠传输技术
16位源端口号 16位目的端口号 32位顺序号 32位确认号 16位窗口大小 URG ACK PSH RST SYN FIN 16位校验和 16位紧急指针 选项 数据 实验原理 — TCP报文格式
syn seq=N ctl=syn syn seq=M ctl=syn ack=N+1 PC A PC B seq=N+1 ctl=ack ck=M+1 数据 实验原理 — TCP建立连接过程 时间 时间
Fin P Ack P+1 PC A PC B Fin Q Ack Q+1 实验原理 — TCP撤销连接过程 时间 时间
拥塞控制-滑动窗口 • 发送窗口 • 接收窗口:接收端空闲的接收缓存的大小
糊涂窗口综合症 • 含义 • 接收方通告了一个小的窗口 • 发送方发送少量的数据 • 导致传输效率降低 • 解决 • 接收方不通告小窗口:推迟确认 • 发送方:Nagle算法(尽量一次发送较大数据)
慢启动和拥塞避免 • 接收窗口(rwnd)的变化 • 拥塞窗口(cwnd)的变化 • 慢启动:按照指数函数增加cwnd • 拥塞避免:按照线性函数增加cwnd
拥塞控制 • 网络拥塞的处理 ssthresh=cwnd/2 • 超时和重传 超时重传时间:RTO 平均往返时延:RTT 修正的Karn算法 • 窗口探查技术:探查报文的发送间隔 • 快重传和快恢复:定性分析 体会上述方法的协同工作。
实验原理 — UDP协议简介 • UDP协议 —User Datagram Protocol 无连接 不需要建立连接 不可靠的
16位源端口号 16位目的端口号 16位长度 16位校验和 数据 实验原理 — UDP报文格式
实验内容 • TCP协议基本分析实验 • TCP拥塞控制实验 • UDP协议分析实验 • TCP编程实验(选做)
E0/0:192.168.1.1 E0/1:192.168.2.1 PCA PCB Vlan 2 E0/23 Vlan 3 E0/1 E0/24 E0/2 IP:192.168.2.2 网关:192.168.2.1 IP:192.168.1.2 网关:192.168.1.1 TCP协议分析 • 网络连接图,PCA(PCC)和PCB(PCD)都进Windows系统,实验步骤按书本不变 • 2人一小组,共用交换机和路由器各1台。
滑动窗口机制和窗口侦查机制分析 • 同上图 • 步骤 • 按照图4-10所示进行组网,确保组网正确和路由器、PC接口IP地址配置正确。 • PCA(PCC)在Linux下打开一个新的“终端命令行”,使用命令启动Ethereal软件,进行报文截获。 • PCA(PCC)(即发送端)在Linux下“终端命令行”中运行脚本来初始化“TCPConnection实时监控模块”: • PCA(PCC)(即发送端)在Linux下打开一个新的“终端命令行”,使用命令启动TCPTest程序, • 在PCA(PCC)(即发送端)的“终端命令行”中运行脚本来读取“TCPConnection实时监控模块”已记录的此TCP连接期间的相关参数数据: • 分析文件send2-组座号(或receive2-组座号)和send2-组座号-tcpsndwnddata.txt,体会滑动窗口机制。
慢启动、拥塞避免及拥塞处理和超时与重传机制分析慢启动、拥塞避免及拥塞处理和超时与重传机制分析 • 在路由器上配置端口转发速率为10Mbps • 在PCA(PCC)(即发送端)和PCB(PCD)(即接收端)重新开始Ethereal报文截获。启用TCP报文过滤 • 发送一个6MB的文件,TCPTest程序参数设置如图4-18和图4-19所示 • 在PCA(PCC)(即发送端)的“终端命令行”中运行脚本来读取“TCPConnection实时监控模块”已记录的此TCP连接期间的相关参数数据 • 更改路由器上的端口转发速率为8Kbps • 在PCA(PCC)(即发送端)和PCB(PCD)(即接收端)重新开始Ethereal报文截获。 • 发送一个100KB的文件,TCPTest程序参数设置仅发送端将要发送的文件处改成/root/snd100k.txt,其他设置均同图4-18和图4-19 • 读取数据,分析结果
快重传和快恢复算法分析 • 配置PCB(PCD)的eth0接口IP地址 • 在PCB(PCD)(即接收端)的“终端命令行”中装载“TCPConnection丢包内核模块”: • 在PCA(PCC)(即发送端)和PCB(PCD)(即接收端)重新开始Ethereal报文截获 • 发送一个300KB的文件,TCPTest程序参数设置如图4-20和图4-21所示检查参数设置无误后PCB(PCD)点击“接收”,然后PCA(PCC)点击“发送”。 • 在PCA(PCC)(即发送端)的“终端命令行”中运行脚本来读取“TCPConnection实时监控模块”已记录的此TCP连接期间的相关参数数据:
糊涂窗口综合症和Nagle算法分析 • 将所有PC都切换到Windows操作系统 • 配置好PCA(PCC)和PCB(PCD)的接口IP地址,并分别启动Ethereal进行报文截获 • 分别启动TCPTest程序。发送一个300KB的文件 • 重新发送一个300KB的文件,TCPTest程序参数设置如下 • 分析文件send6-组座号、receive6-组座号和send7-组座号、receive7-组座号,体会糊涂窗口综合症和Nagle算法作用。
UDP协议分析 UDP协议分析组网
UDP设计性实验(选作) • 本实验补充的内容就是基于C/C++语言或者JAVA语言使用套接字技术,编写基于UDP协议的可靠数据传输程序,并通过实验进行验证。 • 基于UDP协议的可靠数据传输程序的设计和实现可参考TFTP协议[1]的设计和实现。 • [1] RFC 1350,TFTP Version 2
下周实验 • 研究生 网络管理 • 本科生 应用层