实验 6 传输层协议分析

28
北北北北北北北北北北北北北 北北北北北北北北北北北北北 北北 北北 6 6 北北北北北北 北北北北北北 200 200 6.05 6.05

Upload: tamara-green

Post on 03-Jan-2016

109 views

Category:

Documents


8 download

DESCRIPTION

实验 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 报文过滤 。. 总体说明. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验实验 6 6 传输层协议分析传输层协议分析

2002006.056.05

Page 2: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

总体说明总体说明 4.14.1 节实验使用节实验使用 WindowsWindows 系统,实验步骤按系统,实验步骤按

书本;书本; 4.24.2 节实验同时使用节实验同时使用 WindowsWindows 系统和系统和 LinuxLinux

系统,实验步骤按补充教材;系统,实验步骤按补充教材; 4.34.3 节实验使用节实验使用 WindowsWindows 系统,实验步骤按系统,实验步骤按

此补充教材。此补充教材。 两个人为一组(两个人为一组( PCAPCA 和和 PCBPCB 为一组,为一组, PCCPCC 和和

PCDPCD 为一组);为一组); TCPTCP 实验中实验中 PCAPCA (( PCCPCC )为发送端,)为发送端, PCBPCB

(( PCDPCD )为接收端。)为接收端。 TCPTCP 实验中使用实验中使用 EtherealEthereal 截报文时切记截报文时切记启用启用

TCPTCP 报文过滤报文过滤。。

Page 3: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

总体说明总体说明 在在 LinuxLinux 系统下做的实验先在本地磁盘保存相系统下做的实验先在本地磁盘保存相

关实验数据,待此系统下所有实验(关实验数据,待此系统下所有实验( 4.24.2 节实验节实验11 、、 22 、、 33 )做完后再改动)做完后再改动 PCPC 机机 IPIP 地址设置地址设置,将相关实验数据上传,将相关实验数据上传 FTPFTP 服务器服务器(( 192.192.169.200192.192.169.200 );并同时清空保存在);并同时清空保存在本地磁盘目录本地磁盘目录 /root/DATA//root/DATA/ 中的实验数据。中的实验数据。

在在 WindowsWindows 系统下做的实验数据在切换系统下做的实验数据在切换LinuxLinux 系统前上传系统前上传 FTPFTP 服务器。因为每次启动服务器。因为每次启动系统磁盘自动清空前次改动。系统磁盘自动清空前次改动。

各实验的实验分析工作,可随实验同步进行,也各实验的实验分析工作,可随实验同步进行,也可做完所有实验后进入可做完所有实验后进入 WindowsWindows 系统再从系统再从FTPFTP 服务器下载本组实验数据进行,完成实验报服务器下载本组实验数据进行,完成实验报告。告。

Page 4: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

TCPTCP 协议测试软件协议测试软件 关于“关于“ TCPTCP 协议测试软件”的休眠设置的协议测试软件”的休眠设置的

解疑说明:解疑说明: 接收端中有“休眠时间”和“计数器阀值”两接收端中有“休眠时间”和“计数器阀值”两

个与休眠有关的参数,此处休眠指的个与休眠有关的参数,此处休眠指的是“是“ TCPTCP 协议测试软件”应用程序进程在从协议测试软件”应用程序进程在从套接字中读取套接字中读取 nn 次(由“计数器阀值”设置次(由“计数器阀值”设置)数据后开始休眠,即应用程序进程停止从套)数据后开始休眠,即应用程序进程停止从套接字中读取数据,而此时处于内核态接字中读取数据,而此时处于内核态的“的“ TCPTCP 协议模块”仍在工作。 协议模块”仍在工作。

Page 5: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验内容实验内容 TCPTCP 协议分析协议分析 使用使用 TCPTestTCPTest 程序分析程序分析 TCPTCP 报文首部信报文首部信

息、息、 TCPTCP 连接的建立过程、连接的建立过程、 TCPTCP 连接的撤销过连接的撤销过程、滑动窗口机制和拥塞控制机制。程、滑动窗口机制和拥塞控制机制。

UDPUDP 协议分析协议分析 使用模拟通讯程序使用模拟通讯程序 UDPTestUDPTest 发送消息数发送消息数据,并使用据,并使用 EthrealEthreal 软件截获报文,分析软件截获报文,分析UDPUDP 协议的报文格式。并进而了解和理解协议的报文格式。并进而了解和理解UDPUDP 协议的运行机理。协议的运行机理。

Page 6: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验原理 — 实验原理 — TCPTCP 协议简介协议简介

TCPTCP 协议 — 协议 — Transfer Control Transfer Control ProtocolProtocol

特点:特点:

传输之前建立 TCP 连接

传输结束撤销 TCP 连接

滑动窗口

可靠传输技术

可靠的

面向连接的

Page 7: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验原理 — 实验原理 — TCPTCP 报文格式报文格式

1616 位源端口号位源端口号 1616 位目的端口号位目的端口号

3232 位顺序号位顺序号

3232 位确认号位确认号

URGURG ACKACK PSHPSH RSTRST SYNSYN FINFIN 1616 位窗口大小位窗口大小

1616 位紧急指针位紧急指针1616 位校验和位校验和

选项选项

数据数据

Page 8: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验原理 — 实验原理 — TCPTCP 建立连接过建立连接过程程

PC PC

AAPC BPC B

syn seq=N syn seq=N

ctl=synctl=syn

syn seq=M ctl=syn syn seq=M ctl=syn

ack=N+1ack=N+1

seq=N+1 ctl=ack seq=N+1 ctl=ack

ck=M+1ck=M+1

数据 数据

时间时间 时间时间

Page 9: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验原理 — 实验原理 — TCPTCP 撤销连接过撤销连接过程程

PC PC

AAPC BPC B

时间时间 时间时间

Fin PFin P

Ack P+1Ack P+1

Ack Q+1Ack Q+1

Fin QFin Q

Page 10: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

拥塞控制-滑动窗口拥塞控制-滑动窗口 发送窗口发送窗口

接收窗口接收窗口 :: 接收端空闲的接收缓存的大小接收端空闲的接收缓存的大小

Page 11: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

滑动窗口-发送窗口变化滑动窗口-发送窗口变化

Page 12: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

糊涂窗口综合症糊涂窗口综合症 含义含义

接收方通告了一个小的窗口接收方通告了一个小的窗口 发送方发送少量的数据发送方发送少量的数据 导致传输效率降低导致传输效率降低

解决解决 接收方不通告小窗口:推迟确认接收方不通告小窗口:推迟确认 发送方:发送方: NagleNagle 算法(尽量一次发送较大数算法(尽量一次发送较大数

据)据)

Page 13: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

慢启动和拥塞避免慢启动和拥塞避免 接收窗口(接收窗口( rwndrwnd )的变化)的变化 拥塞窗口(拥塞窗口( cwndcwnd ))的变化的变化 慢启动:按照指数函数增加慢启动:按照指数函数增加 cwndcwnd 拥塞避免:按照线性函数增加拥塞避免:按照线性函数增加 cwndcwnd

Page 14: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

慢启动和拥塞避免慢启动和拥塞避免

Page 15: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

拥塞控制拥塞控制 网络拥塞的处理网络拥塞的处理 ssthresh=cwnd/2ssthresh=cwnd/2 超时和重传超时和重传 超时重传时间:超时重传时间: RTORTO

平均往返时延:平均往返时延: RTTRTT

修正的修正的 KarnKarn 算法算法 窗口探查技术:探查报文的发送间隔窗口探查技术:探查报文的发送间隔 快重传和快恢复:定性分析快重传和快恢复:定性分析 体会上述方法的协同工作。体会上述方法的协同工作。

Page 16: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验原理 — 实验原理 — UDPUDP 协议简介协议简介 UDPUDP 协议 — 协议 — User Datagram User Datagram

ProtocolProtocol

无连接无连接

不可靠的不可靠的

不需要建立连接不需要建立连接

Page 17: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验原理 — 实验原理 — UDPUDP 报文格式报文格式

1616 位源端口号位源端口号

1616 位长度位长度 1616 位校验和位校验和

1616 位目的端口号位目的端口号

数据数据

Page 18: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

软件介绍软件介绍

Page 19: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

Page 20: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

实验内容实验内容 TCPTCP 协议基本分析实验协议基本分析实验 TCPTCP 拥塞控制实验拥塞控制实验 UDPUDP 协议分析实验协议分析实验 TCPTCP 编程实验(选做)编程实验(选做)

Page 21: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

TCPTCP 协议分析协议分析 网络连接图,网络连接图, PCAPCA (( PCCPCC )和)和 PCBPCB (( PCDPCD )都进)都进

WindowsWindows 系统,实验步骤按书本不变 系统,实验步骤按书本不变 22 人一小组,共用交换机和路由器各人一小组,共用交换机和路由器各 11台。台。

Vlan 2 Vlan 3

E0/24

E0/23

E0/2

E0/1

PCAPCB

IP : 192.168.1.2

网关: 192.168.1.1

IP : 192.168.2.2

网关: 192.168.2.1

E0/1 : 192.168.2.1E0/0 : 192.168.1.1

Page 22: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

滑动窗口机制和窗口侦查机制分析滑动窗口机制和窗口侦查机制分析 同上图同上图 步骤步骤

按照图按照图 4-104-10 所示进行组网,确保组网正确和路由器、所示进行组网,确保组网正确和路由器、 PCPC 接口接口IPIP 地址配置正确。地址配置正确。

PCAPCA (( PCCPCC )在)在 LinuxLinux 下打开一个新的“终端命令行”,使下打开一个新的“终端命令行”,使用命令启动用命令启动 EtherealEthereal 软件,进行报文截获。 软件,进行报文截获。

PCAPCA (( PCCPCC )(即发送端)在)(即发送端)在 LinuxLinux 下“终端命令行”中运下“终端命令行”中运行脚本来初始化“行脚本来初始化“ TCPConnectionTCPConnection 实时监控模块”: 实时监控模块”:

PCAPCA (( PCCPCC )(即发送端)在)(即发送端)在 LinuxLinux 下打开一个新的“终端下打开一个新的“终端命令行”,使用命令启动命令行”,使用命令启动 TCPTestTCPTest 程序,程序,

在在 PCAPCA (( PCCPCC )(即发送端)的“终端命令行”中运行脚本)(即发送端)的“终端命令行”中运行脚本来读取“来读取“ TCPConnectionTCPConnection 实时监控模块”已记录的此实时监控模块”已记录的此 TCPTCP连接期间的相关参数数据: 连接期间的相关参数数据:

分析文件分析文件 send2-send2- 组座号(或组座号(或 receive2-receive2- 组座号)和组座号)和 send2-send2-组座号组座号 -tcpsndwnddata.txt-tcpsndwnddata.txt ,体会滑动窗口机制。 ,体会滑动窗口机制。

Page 23: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

慢启动、拥塞避免及拥塞处理和超时与重传机制分析慢启动、拥塞避免及拥塞处理和超时与重传机制分析 在路由器上配置端口转发速率为在路由器上配置端口转发速率为 10Mbps 10Mbps 在在 PCAPCA (( PCCPCC )(即发送端)和)(即发送端)和 PCBPCB (( PCDPCD )(即)(即

接收端)重新开始接收端)重新开始 EtherealEthereal 报文截获。启用报文截获。启用 TCPTCP 报文报文过滤 过滤

发送一个发送一个 6MB6MB 的文件,的文件, TCPTestTCPTest 程序参数设置如图程序参数设置如图4-184-18 和图和图 4-194-19 所示所示

在在 PCAPCA (( PCCPCC )(即发送端)的“终端命令行”中运)(即发送端)的“终端命令行”中运行脚本来读取“行脚本来读取“ TCPConnectionTCPConnection 实时监控模块”已记实时监控模块”已记录的此录的此 TCPTCP 连接期间的相关参数数据 连接期间的相关参数数据

更改路由器上的端口转发速率为更改路由器上的端口转发速率为 8Kbps 8Kbps 在在 PCAPCA (( PCCPCC )(即发送端)和)(即发送端)和 PCBPCB (( PCDPCD )(即)(即

接收端)重新开始接收端)重新开始 EtherealEthereal 报文截获。 报文截获。 发送一个发送一个 100KB100KB 的文件,的文件, TCPTestTCPTest 程序参数设置仅程序参数设置仅

发送端将要发送的文件处改成发送端将要发送的文件处改成 /root/snd100k.txt/root/snd100k.txt ,,其他设置均同图其他设置均同图 4-184-18 和图和图 4-19 4-19

读取数据,分析结果读取数据,分析结果

Page 24: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

快重传和快恢复算法分析 快重传和快恢复算法分析 配置配置 PCBPCB (( PCDPCD )的)的 eth0eth0 接口接口 IPIP 地址 地址 在在 PCBPCB (( PCDPCD )(即接收端)的“终端命令)(即接收端)的“终端命令

行”中装载“行”中装载“ TCPConnectionTCPConnection丢包内核模块丢包内核模块”: ”:

在在 PCAPCA (( PCCPCC )(即发送端)和)(即发送端)和PCBPCB (( PCDPCD )(即接收端)重新开始)(即接收端)重新开始EtherealEthereal 报文截获 报文截获

发送一个发送一个 300KB300KB 的文件,的文件, TCPTestTCPTest 程序参数程序参数设置如图设置如图 4-204-20 和图和图 4-214-21 所示检查参数设置无所示检查参数设置无误后误后 PCBPCB (( PCDPCD )点击“接收”,然后)点击“接收”,然后 PCAPCA(( PCCPCC )点击“发送”。 )点击“发送”。

在在 PCAPCA (( PCCPCC )(即发送端)的“终端命令行)(即发送端)的“终端命令行”中运行脚本来读取“”中运行脚本来读取“ TCPConnectionTCPConnection 实时实时监控模块”已记录的此监控模块”已记录的此 TCPTCP 连接期间的相关参连接期间的相关参数数据:数数据:

Page 25: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

糊涂窗口综合症和糊涂窗口综合症和 NagleNagle 算法分析算法分析 将所有将所有 PCPC 都切换到都切换到WindowsWindows 操作系统 操作系统 配置好配置好 PCAPCA (( PCCPCC )和)和 PCBPCB (( PCDPCD

)的接口)的接口 IPIP 地址,并分别启动地址,并分别启动 EtherealEthereal进行报文截获 进行报文截获

分别启动分别启动 TCPTestTCPTest 程序。发送一个程序。发送一个300KB300KB 的文件 的文件

重新发送一个重新发送一个 300KB300KB 的文的文件,件, TCPTestTCPTest 程序参数设置如下程序参数设置如下

分析文件分析文件 send6-send6- 组座号、组座号、 receive6-receive6-组座号和组座号和 send7-send7- 组座号、组座号、 receive7-receive7-组座号,体会糊涂窗口综合症和组座号,体会糊涂窗口综合症和 NagleNagle算法作用。 算法作用。

Page 26: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

UDPUDP 协议分析协议分析

UDP 协议分析组网

Page 27: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

UDPUDP 设计性实验(选作)设计性实验(选作) 本实验补充的内容就是基于本实验补充的内容就是基于 C/C++C/C++ 语言语言或者或者 JAVAJAVA 语言使用套接字技术,编写基语言使用套接字技术,编写基于于 UDPUDP 协议的可靠数据传输程序,并通协议的可靠数据传输程序,并通过实验进行验证。过实验进行验证。

基于基于 UDPUDP 协议的可靠数据传输程序的设协议的可靠数据传输程序的设计和实现可参考计和实现可参考 TFTPTFTP 协议协议 [1][1] 的设计和的设计和实现。实现。 [1] RFC 1350[1] RFC 1350 ,, TFTP Version 2TFTP Version 2

Page 28: 实验 6  传输层协议分析

北航计算机学院教学实验中心北航计算机学院教学实验中心

下周实验下周实验 研究生 网络管理研究生 网络管理 本科生 应用层本科生 应用层