网络协议分析-TCP和UDP协议
一、实验目的
1.了解TCP/IP协议中的传输层协议。
2.了解TCP、UDP报文结构。
3.掌握TCP连接建立和拆除过程。
二、实验内容
1.利用Ethereal来观察pcattcp命令产生的UDP数据。
2.利用Ethereal来观察pcattcp命令产生的TCP数据。
三、实验环境
主机2台。1台为服务器;1台作为客户机。
四、实验步骤
1.主机地址配置
(1)配置主机IP地址及子网掩码。
2.启动Ethereal,设置过滤器,开始捕捉。
(1)在客户机上运行Ethereal。
(2)选择Ethereal菜单Capture Interface,选择本地连接所在接口。(3)设置包捕捉过滤器。在捕获选项设置窗口中,设置过滤器为udp其余选项不变。(4)点击Start按钮开始捕获数据包。
3.从客户机上发送UDP数据到服务器
(1)在服务器的命令窗口下输入:
pcattcp–r–u–p6000【在端口6000上接收UDP数据】
(2)在客户机上命令窗口下输入:
pcattcp–t–u–p6000–l500–n l192.168.1.1【向服务器端口6000上发送1个长度为500字节的UDP数据】
4.停止数据包捕捉
点击客户机上Ethereal的捕捉窗口中的Stop按钮,停止数据包捕捉。
5.查看捕获的数据包
(1)在Ethereal中查看捕获的UDP数据。
(2)查看实际捕获的UDP数据包的个数。
(3)注意客户机和服务器的端口号,记录UDP各个报文中的总长度等字段。
(4)保存捕获结果。
6.捕获从客户机发送到服务器的TCP数据
(1)设置包捕捉过滤器为tcp。
(2)开始捕捉。
(3)在服务器上输入命令:
pcattcp–r–p6000【在端口6000上接收TCP数据】
(4)在客户机上输入命令:
pcattcp–t–p6000–l500–n l192.168.1.1【向服务器端口6000上发送1个长度为500字节的TCP数据】
(5)点击捕捉窗口中的Stop按钮。
(6)查看捕获的数据包
u记录捕获的TCP报文的个数,注意客户机的端口号。
u记录TCP建立连接时的3个报文详细信息。注意其中的标志位(ACK、SYN)、序号、确认号。
u记录TCP拆除连接时的报文的详细信息。注意其中的标志位(ACK、FIN)、序号、结束标志。
u记录第1个和第2个TCP报文中的头部选项。
(7)保存有关结果。
7.捕获从客户机向服务器发送数据,但服务器相应端口没有程序接收时产生的数据
(1)设置包捕捉过滤器为tcp。
(2)开始捕捉。
(3)在客户机上输入命令:
pcattcp–t–p6000–l500–n l192.168.1.1【向服务器端口6000上发送1个长度为500字节的TCP数据】
(4)点击捕捉窗口中的Stop按钮。
(5)查看捕获的数据包
u记录捕获的TCP报文的个数。
u记录服务器相应的报文。TCP头部标志位为:RST+ACK。
u记录客户机在建立连接时的尝试次数。
(6)保存有关结果。
五、实验要求
1.记录UDP协议头部结构。
2.描述TCP建立连接的过程。
3.描述TCP拆除连接的过程。
4.记录TCP建立连接时的TCP头部选项,并描述其作用。
5.记录TCP协议中连接一个主机上不存在的端口时,连接双方的处理过程。
六、思考
1.UDP和TCP所能支持的报文长度分别是多少?两者一样吗?尝试利用pcattcp发送长度大于64kB的UDP报文,可以吗?观察有关结果。
2.TCP协议头部中接收窗口的作用是什么?观察在持续发送TCP数据中该字段的变化情况。
3.TCP连接中采用的序号有多少位?会产生回绕现象吗?即有两个序号相同,但是数据不同的报文同时存在吗?